| POST,OPTIONS | /v1/customerlink |
|---|
import Foundation
import ServiceStack
public class CustomerLinkCreateRequest : Codable
{
public var resourceType:String
public var resourceUid:String
public var recipientContactId:Int?
public var recipientEmail:String
public var recipientPhone:String
public var deliverEmail:Bool
public var deliverSms:Bool
public var expiresInHours:Int?
public var maxViews:Int?
required public init(){}
}
public class CustomerLinkCreateResponse : Codable
{
public var responseStatus:ResponseStatus
public var link:CustomerLinkExtended
public var portalUrl:String
public var deliveryErrors:[String] = []
required public init(){}
}
public class CustomerLinkExtended : CustomerLink
{
public var recipientDisplayName:String
public var recipientType:String
public var status:String
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case recipientDisplayName
case recipientType
case status
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
recipientDisplayName = try container.decodeIfPresent(String.self, forKey: .recipientDisplayName)
recipientType = try container.decodeIfPresent(String.self, forKey: .recipientType)
status = try container.decodeIfPresent(String.self, forKey: .status)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if recipientDisplayName != nil { try container.encode(recipientDisplayName, forKey: .recipientDisplayName) }
if recipientType != nil { try container.encode(recipientType, forKey: .recipientType) }
if status != nil { try container.encode(status, forKey: .status) }
}
}
public class CustomerLink : Codable
{
public var customerLinkId:Int
public var customerLinkUID:String
public var tokenHash:String
public var resourceType:String
public var resourceUid:String
public var sensitivityTier:String
public var requireOtp:Bool
public var otpChannel:String
public var deliveryChannels:String
public var recipientContactId:Int?
public var recipientEmail:String
public var recipientPhone:String
public var smsConsentSnapshot:Bool
public var createdByUserId:String
public var createdByAgentId:Int?
public var createdAtUtc:Date
public var expiresAtUtc:Date?
public var maxViews:Int?
public var viewCount:Int
public var revokedAtUtc:Date?
public var revokedByUserId:String?
public var tenantId:String
required public init(){}
}
Swift CustomerLinkCreateRequest 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/customerlink HTTP/1.1
Host: api.dev.dynamics.trendsic.com
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<CustomerLinkCreateRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<DeliverEmail>false</DeliverEmail>
<DeliverSms>false</DeliverSms>
<ExpiresInHours>0</ExpiresInHours>
<MaxViews>0</MaxViews>
<RecipientContactId>0</RecipientContactId>
<RecipientEmail>String</RecipientEmail>
<RecipientPhone>String</RecipientPhone>
<ResourceType>String</ResourceType>
<ResourceUid>00000000-0000-0000-0000-000000000000</ResourceUid>
</CustomerLinkCreateRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
<CustomerLinkCreateResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/CRM.AgencyPlatform.API.Internal">
<DeliveryErrors xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d2p1:string>String</d2p1:string>
</DeliveryErrors>
<Link>
<CreatedAtUtc>0001-01-01T00:00:00</CreatedAtUtc>
<CreatedByAgentId>0</CreatedByAgentId>
<CreatedByUserId>00000000-0000-0000-0000-000000000000</CreatedByUserId>
<CustomerLinkId>0</CustomerLinkId>
<CustomerLinkUID>00000000-0000-0000-0000-000000000000</CustomerLinkUID>
<DeliveryChannels>String</DeliveryChannels>
<ExpiresAtUtc>0001-01-01T00:00:00</ExpiresAtUtc>
<MaxViews>0</MaxViews>
<OtpChannel>String</OtpChannel>
<RecipientContactId>0</RecipientContactId>
<RecipientEmail>String</RecipientEmail>
<RecipientPhone>String</RecipientPhone>
<RequireOtp>false</RequireOtp>
<ResourceType>String</ResourceType>
<ResourceUid>00000000-0000-0000-0000-000000000000</ResourceUid>
<RevokedAtUtc>0001-01-01T00:00:00</RevokedAtUtc>
<RevokedByUserId>00000000-0000-0000-0000-000000000000</RevokedByUserId>
<SensitivityTier>String</SensitivityTier>
<SmsConsentSnapshot>false</SmsConsentSnapshot>
<TenantId>00000000-0000-0000-0000-000000000000</TenantId>
<TokenHash>String</TokenHash>
<ViewCount>0</ViewCount>
<RecipientDisplayName>String</RecipientDisplayName>
<RecipientType>String</RecipientType>
<Status>String</Status>
</Link>
<PortalUrl>String</PortalUrl>
<ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:Message>String</d2p1:Message>
<d2p1:StackTrace>String</d2p1:StackTrace>
<d2p1:Errors>
<d2p1:ResponseError>
<d2p1:ErrorCode>String</d2p1:ErrorCode>
<d2p1:FieldName>String</d2p1:FieldName>
<d2p1:Message>String</d2p1:Message>
<d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d5p1:KeyValueOfstringstring>
<d5p1:Key>String</d5p1:Key>
<d5p1:Value>String</d5p1:Value>
</d5p1:KeyValueOfstringstring>
</d2p1:Meta>
</d2p1:ResponseError>
</d2p1:Errors>
<d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d3p1:KeyValueOfstringstring>
<d3p1:Key>String</d3p1:Key>
<d3p1:Value>String</d3p1:Value>
</d3p1:KeyValueOfstringstring>
</d2p1:Meta>
</ResponseStatus>
</CustomerLinkCreateResponse>