InteleServiceStack

<back to all web services

RestSmsRequest

import Foundation
import ServiceStack

// @DataContract(Namespace="http://schemas.datacontract.org/2004/07/PushSmsLib.Dto")
public class RestSmsRequest : Codable
{
    /**
    * API Username. Usually your customer id
    */
    // @DataMember(Name="Username")
    // @ApiMember(DataType="string", Description="API Username. Usually your customer id", IsRequired=true, Name="Username", ParameterType="form")
    // @StringLength(128)
    public var Username:String

    /**
    * API Password
    */
    // @DataMember(Name="Password")
    // @ApiMember(DataType="string", Description="API Password", IsRequired=true, Name="Password", ParameterType="form")
    // @StringLength(128)
    public var Password:String

    /**
    * Collection of messages to send
    */
    // @DataMember(Name="Messages")
    // @ApiMember(Description="Collection of messages to send", IsRequired=true, Name="Messages", ParameterType="form")
    public var Messages:[RestSmsMessageReq] = []

    required public init(){}
}

// @DataContract(Namespace="http://schemas.datacontract.org/2004/07/PushSmsLib.Dto")
public class RestSmsMessageReq : Codable
{
    /**
    * Gateway number. Default 99700999 for cross country delivery, non premium messages
    */
    // @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 var Gateway:String

    /**
    * Originator address. Defaults to gateway number if not set. Maximum 11 chars if using alphanumeric value. See documentation for full details.
    */
    // @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 var OriginatorAddress:String

    /**
    * Destination address.The recipient of the message. Must be a valid MSISDN
    */
    // @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 var DestinationAddress:String

    /**
    * 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
    */
    // @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 var Price:String

    /**
    * Message type according to documentation. Defaults to 00 if not set. If text length is above 160 chars, it defaults to value 11
    */
    // @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 var MessageType:String

    /**
    * Delivery expire timestamp (yyyymmddhhmmss) or relative value. See documentation and default value if not defined
    */
    // @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 var ValidationPeriod:String

    /**
    * Your unique message id to track delivery status and response from sending process
    */
    // @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 var MessageId:String

    /**
    * GSM User Data Header (HEX)
    */
    // @DataMember(Name="UserDataHeader")
    // @ApiMember(DataType="string", Description="GSM User Data Header (HEX)", Name="UserDataHeader", ParameterType="form")
    public var UserDataHeader:String

    /**
    * GSM User Data. Plain text or hex encoded. Depending on the used MessageType
    */
    // @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 var UserData:String

    /**
    * Parameter to categorize messages on payment bill from Intele
    */
    // @DataMember(Name="Category")
    // @ApiMember(DataType="string", Description="Parameter to categorize messages on payment bill from Intele", Name="Category", ParameterType="form")
    public var Category:String

    /**
    * Custom key/value attributes for the Sms Text Message. See documentation for further details
    */
    // @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 var CustomData:[String:String]

    /**
    * Url where Intele should send delivery report. See documentation for url formatting
    */
    // @DataMember(Name="DeliveryReportUrl")
    // @ApiMember(DataType="string", Description="Url where Intele should send delivery report. See documentation for url formatting", Name="DeliveryReportUrl", ParameterType="form")
    public var DeliveryReportUrl:String

    /**
    * For Premium messaging only. See documentation for further details
    */
    // @DataMember(Name="ServiceCode")
    // @ApiMember(DataType="string", Description="For Premium messaging only. See documentation for further details", Name="ServiceCode", ParameterType="form")
    public var ServiceCode:String

    /**
    * For Premium messaging only. See documentation for further details
    */
    // @DataMember(Name="ServiceDescription")
    // @ApiMember(DataType="string", Description="For Premium messaging only. See documentation for further details", Name="ServiceDescription", ParameterType="form")
    public var ServiceDescription:String

    required public init(){}
}

// @DataContract(Namespace="http://schemas.datacontract.org/2004/07/PushSmsLib.Dto")
public class RestSmsResponse : Codable
{
    /**
    * Overall status of processing the request. Each message will have it's own status. This value indicates if any other error occured or not
    */
    // @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 var ProcessResult:Bool

    /**
    * Description of any error occured, if ProcessResult equals false
    */
    // @DataMember(Name="ProcessResultDescription")
    // @ApiMember(DataType="string", Description="Description of any error occured, if ProcessResult equals false", Name="ProcessResultDescription", ParameterType="form")
    // @StringLength(2048)
    public var ProcessResultDescription:String

    /**
    * Collection of messages sent or failed
    */
    // @DataMember(Name="Messages")
    // @ApiMember(Description="Collection of messages sent or failed", Name="Description", ParameterType="form")
    public var Messages:[RestSmsMessageResp] = []

    required public init(){}
}

// @DataContract(Namespace="http://schemas.datacontract.org/2004/07/PushSmsLib.Dto")
public class RestSmsMessageResp : Codable
{
    /**
    * Result of sending message. 0 if success. See documentation for full list of codes
    */
    // @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 var StatusCode:Int

    /**
    * Describes the result of sending Sms text message
    */
    // @DataMember(Name="StatusDescription")
    // @ApiMember(DataType="string", Description="Describes the result of sending Sms text message", IsRequired=true, Name="StatusDescription", ParameterType="form")
    public var StatusDescription:String

    /**
    * Your unique message id from send request message item. Will be empty if you did not provide any id in the request item.
    */
    // @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 var MessageId:String

    /**
    * Unique transaction id from server
    */
    // @DataMember(Name="TransactionId")
    // @ApiMember(DataType="string", Description="Unique transaction id from server", IsRequired=true, Name="TransactionId", ParameterType="form")
    public var TransactionId:String

    /**
    * Key/Value attributes returned from server. E.g. subnumref and the server name that processed the message. Eg. subnumref=19331234567891,server=smsgw1
    */
    // @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 var ExtraInfo:[String:String]

    required public init(){}
}


Swift RestSmsRequest DTOs

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

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /xml/reply/RestSmsRequest HTTP/1.1 
Host: smsgw.intele.no 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<RestSmsRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/PushSmsLib.Dto">
  <Messages>
    <RestSmsMessageReq>
      <Category>String</Category>
      <CustomData xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringanyType>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value />
        </d4p1:KeyValueOfstringanyType>
      </CustomData>
      <DeliveryReportUrl>String</DeliveryReportUrl>
      <DestinationAddress />
      <Gateway />
      <MessageId>String</MessageId>
      <MessageType>String</MessageType>
      <OriginatorAddress />
      <Price />
      <ServiceCode>String</ServiceCode>
      <ServiceDescription>String</ServiceDescription>
      <UserData>String</UserData>
      <UserDataHeader>String</UserDataHeader>
      <ValidationPeriod />
    </RestSmsMessageReq>
  </Messages>
  <Password>String</Password>
  <Username />
</RestSmsRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<RestSmsResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/PushSmsLib.Dto">
  <Messages>
    <RestSmsMessageResp>
      <ExtraInfo xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:KeyValueOfstringstring>
          <d4p1:Key>String</d4p1:Key>
          <d4p1:Value>String</d4p1:Value>
        </d4p1:KeyValueOfstringstring>
      </ExtraInfo>
      <MessageId>String</MessageId>
      <StatusCode>0</StatusCode>
      <StatusDescription>String</StatusDescription>
      <TransactionId>String</TransactionId>
    </RestSmsMessageResp>
  </Messages>
  <ProcessResult>false</ProcessResult>
  <ProcessResultDescription>String</ProcessResultDescription>
</RestSmsResponse>