| POST,OPTIONS | /v1/sms/reply |
|---|
import Foundation
import ServiceStack
public class IncomingSchedulerSMSRequest : SmsRequest
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
public class SmsRequest : TwilioRequest
{
public var messageSid:String
public var smsSid:String
public var body:String
public var messageStatus:String
public var optOutType:String
public var messagingServiceSid:String
public var numMedia:Int
public var referralNumMedia:Int
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case messageSid
case smsSid
case body
case messageStatus
case optOutType
case messagingServiceSid
case numMedia
case referralNumMedia
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
messageSid = try container.decodeIfPresent(String.self, forKey: .messageSid)
smsSid = try container.decodeIfPresent(String.self, forKey: .smsSid)
body = try container.decodeIfPresent(String.self, forKey: .body)
messageStatus = try container.decodeIfPresent(String.self, forKey: .messageStatus)
optOutType = try container.decodeIfPresent(String.self, forKey: .optOutType)
messagingServiceSid = try container.decodeIfPresent(String.self, forKey: .messagingServiceSid)
numMedia = try container.decodeIfPresent(Int.self, forKey: .numMedia)
referralNumMedia = try container.decodeIfPresent(Int.self, forKey: .referralNumMedia)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if messageSid != nil { try container.encode(messageSid, forKey: .messageSid) }
if smsSid != nil { try container.encode(smsSid, forKey: .smsSid) }
if body != nil { try container.encode(body, forKey: .body) }
if messageStatus != nil { try container.encode(messageStatus, forKey: .messageStatus) }
if optOutType != nil { try container.encode(optOutType, forKey: .optOutType) }
if messagingServiceSid != nil { try container.encode(messagingServiceSid, forKey: .messagingServiceSid) }
if numMedia != nil { try container.encode(numMedia, forKey: .numMedia) }
if referralNumMedia != nil { try container.encode(referralNumMedia, forKey: .referralNumMedia) }
}
}
public class TwilioRequest : Codable
{
public var accountSid:String
public var from:String
public var to:String
public var fromCity:String
public var fromState:String
public var fromZip:String
public var fromCountry:String
public var toCity:String
public var toState:String
public var toZip:String
public var toCountry:String
required public init(){}
}
Swift IncomingSchedulerSMSRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /v1/sms/reply HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<SMSTwilioHookRoutes.IncomingSchedulerSMSRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<AccountSid xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</AccountSid>
<From xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</From>
<FromCity xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</FromCity>
<FromCountry xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</FromCountry>
<FromState xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</FromState>
<FromZip xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</FromZip>
<To xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</To>
<ToCity xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</ToCity>
<ToCountry xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</ToCountry>
<ToState xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</ToState>
<ToZip xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</ToZip>
<Body xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</Body>
<MessageSid xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</MessageSid>
<MessageStatus xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</MessageStatus>
<MessagingServiceSid xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</MessagingServiceSid>
<NumMedia xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">0</NumMedia>
<OptOutType xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</OptOutType>
<ReferralNumMedia xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">0</ReferralNumMedia>
<SmsSid xmlns="http://schemas.datacontract.org/2004/07/Twilio.AspNet.Common">String</SmsSid>
</SMSTwilioHookRoutes.IncomingSchedulerSMSRequest>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length (string)