| GET | /v2/profile/{Query}/{CendynPropertyId} | ||
|---|---|---|---|
| GET | /v2/profile/{Query} |
import Foundation
import ServiceStack
public class ProfileRequest : Codable
{
public var cendynPropertyId:String?
public var query:ProfileQueryType?
public var id:String?
public var membershipId:String?
public var emailAddress:String?
public var lastName:String?
public var firstName:String?
public var phoneNumber:String?
public var startDate:Date?
public var endDate:Date?
// @DataMember(Name="Limit")
public var pageSize:Int?
// @DataMember(Name="Page")
public var pageNumber:Int?
required public init(){}
}
public enum ProfileQueryType : String, Codable
{
case ProfileId
case Name
case LastUpdated
case Email
case MembershipId
case PhoneNumber
}
public class ProfileResponse : CenResResponse
{
public var records:[Profile] = []
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case records
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
records = try container.decodeIfPresent([Profile].self, forKey: .records) ?? []
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if records.count > 0 { try container.encode(records, forKey: .records) }
}
}
public class CenResResponse : Codable
{
public var status:RequestStatus?
public var statusMessage:String?
public var recordsReturned:Int?
public var recordsAvailable:Int?
public var pageNumber:Int?
public var pageSize:Int?
required public init(){}
}
public enum RequestStatus : String, Codable
{
case Success
case Warning
case Error
case NotAuthorized
case Failure
}
public class Profile : Codable
{
public var cendynPropertyID:String?
public var propertyName:String?
public var uniqueIDs:[UniqueIDType] = []
public var profileTypeCode:String?
public var profileTypeDescription:String?
public var nameCode:String?
public var profileTypeCategory:String?
public var jobTitle:String?
public var salutation:String?
public var firstName:String?
public var familiarName:String?
public var middleName:String?
public var lastName:String?
public var fullName:String?
public var nameSuffix:String?
public var vipid:String?
public var vipCode:String?
public var primaryLanguage:String?
public var genderCode:String?
public var dobYear:String?
public var dobMonth:String?
public var dobDayOfMonth:String?
public var companyName:String?
public var arNumber:String?
public var allowMail:Bool?
public var allowEMail:Bool?
public var guestPriv:Bool?
public var allowPhone:Bool?
public var allowSMS:Bool?
public var allowHistory:Bool?
public var allowMarketResearch:Bool?
public var allowThirdParty:Bool?
public var allowLoyaltyProgram:Bool?
public var creatorCode:String?
public var lastUpdaterCode:String?
public var dateProfileCreated:Date?
public var dateProfileUpdated:Date?
public var inactiveDate:Date?
public var nationality:String?
public var resortCode:String?
public var retiredProfileId:String?
public var transferredSubscriptionId:String?
public var sourceName:String?
public var sourceID:String?
public var optOutMarketing:Bool?
public var optOutDate:Date?
public var profileExtension:ProfileExtension?
public var addresses:[Address] = []
public var memberships:[Membership] = []
public var contactMethods:[ContactMethod] = []
public var actionComments:[ActionComment] = []
public var specialRequests:[SpecialRequest] = []
public var udfDataCollection:[UDFDataType] = []
public var lead:Lead?
public var relatedTravelers:[RelatedTraveler] = []
public var documents:[Document] = []
public var vouchers:[Voucher] = []
public var profilePolicies:[ProfilePolicy] = []
required public init(){}
}
public class UniqueIDType : Codable
{
public var id:String?
public var type:String?
public var context:String?
required public init(){}
}
public class ProfileExtension : Codable
{
public var languageCode:String?
public var salutationExt:String?
public var firstNameExt:String?
public var familiarNameExt:String?
public var middleNameExt:String?
public var lastNameExt:String?
public var nameSuffixExt:String?
public var companyNameExt:String?
public var blacklist:String?
public var blackListMessage:String?
public var anonymizationStatus:String?
required public init(){}
}
public class Address : Codable
{
public var addressTypeCode:String?
public var addressTypeDescription:String?
public var addressStatus:String?
public var attn:String?
public var address1:String?
public var address2:String?
public var city:String?
public var stateProvince:String?
public var postalCode:String?
public var countryCode:String?
public var isPrimary:Bool?
public var addressLanguage:String?
public var addressCleansed:Bool?
public var optOutMarketing:Bool?
public var optOutDate:Date?
required public init(){}
}
public class Membership : Codable
{
public var externalID:String?
public var programCode:String?
public var membershipID:String?
public var membershipCategory:String?
public var membershipName:String?
public var membershipLevel:String?
public var membershipStatus:String?
public var enrollmentCode:String?
public var dateMembershipStarts:Date?
public var dateMembershipExpires:Date?
public var totalStays:Int?
public var awardCredits:Int?
public var awardAvailable:Int?
public var primaryAirline:Bool?
public var displaySequence:Int?
public var sourceName:String?
public var sourceID:String?
public var isActive:Bool?
public var inactiveDate:Date?
public var pointsIndicator:Bool?
required public init(){}
}
public class ContactMethod : Codable
{
public var type:String?
public var category:String?
public var dataValue:String?
public var extraData:String?
public var optOut:Bool?
public var sourceDate:Date?
public var isPrimary:Bool?
public var confirmation:Bool?
public var inactiveDate:Date?
public var optOutMarketing:Bool?
public var optOutDate:Date?
required public init(){}
}
public class ActionComment : Codable
{
public var externalID:String?
public var commentType:String?
public var commentTitle:String?
public var commentClass:String?
public var actionType:String?
public var comment:String?
public var actionDate:Date?
public var inactiveDate:Date?
public var guestViewable:Bool?
public var creatorCode:String?
public var dateCommentCreated:Date?
public var resortCode:String?
required public init(){}
}
public class SpecialRequest : Codable
{
public var externalID:String?
public var requestType:String?
public var requestCode:String?
public var requestComments:String?
public var resortField:String?
public var actionTypeCode:String?
public var actionType:String?
public var inactiveDate:Date?
required public init(){}
}
public class UDFDataType : Codable
{
public var cendynPropertyID:String?
public var moduleName:String?
public var tableName:String?
public var columnName:String?
public var udfValue:String?
required public init(){}
}
public class Lead : Codable
{
public var fK_Reservation:String?
public var externalLeadID:String?
public var externalLeadSource:String?
public var leadStatus:String?
public var leadAcquired:Date?
public var tentativeStartDate:Date?
public var tentativeEndDate:Date?
public var assignedAgent:String?
public var assignedDate:Date?
public var contactMethod:String?
public var contactAgent:String?
public var contactDate:Date?
public var lastFollowupMethod:String?
public var lastFollowupAgent:String?
public var lastFollowupDate:Date?
public var bookingMethod:String?
public var bookingAgent:String?
public var bookingDate:Date?
public var reasonforStay:String?
public var marketCode:String?
public var campaignCode:String?
public var campaignName:String?
public var priceEstimate:Double?
public var flaggedForAttention:Bool?
required public init(){}
}
public class RelatedTraveler : Codable
{
public var cendynPropertyID:String?
public var propertyName:String?
public var uniqueIDs:[UniqueIDType] = []
public var salutation:String?
public var firstName:String?
public var familiarName:String?
public var middleName:String?
public var lastName:String?
public var fullName:String?
public var suffix:String?
public var relation:String?
public var isPrimary:Bool?
required public init(){}
}
public class Document : Codable
{
public var documentID:String?
public var documentType:String?
public var documentSource:String?
public var codeOnDocument:String?
public var documentNotes:String?
public var nameOnDocument:String?
public var nationalityOnDocument:String?
public var effectiveDate:Date?
public var expirationDate:Date?
public var issuer:String?
public var issuerCountry:String?
public var isPrimary:Bool?
public var piI_StoredAs:String?
public var inactiveDate:Date?
required public init(){}
}
public class Voucher : Codable
{
public var hotelCode:String?
public var voucherID:String?
public var voucherID2:String?
public var appliedToResort:String?
public var reservationID:String?
public var profileIDRecipient:String?
public var subscriberIDRecipient:String?
public var recipientName:String?
public var emailaddress:String?
public var profileIDPurchaser:String?
public var purchaserName:String?
public var voucherStatus:String?
public var voucherType:String?
public var membershipType:String?
public var certCode:String?
public var certNo:String?
public var shortDescription:String?
public var giftMessage:String?
public var comments:String?
public var voucherAmount:Double?
public var currencyCode:String?
public var issueType:String?
public var dateConsumed:Date?
public var expirationDate:Date?
public var awardPoints:Int?
public var ruleType:String?
public var ruleValue:String?
public var cancelAllowed:Bool?
public var maxExtensions:Int?
public var referenceType:String?
public var referenceID:String?
public var promotionCode:String?
public var reservationConsumed:Bool?
public var webConsumed:Bool?
public var pmsConsumed:Bool?
public var verifyCertNo:Bool?
public var generateInLieu:Bool?
public var creatorCode:String?
public var lastUpdaterCode:String?
public var folioID:String?
public var inactiveDate:Date?
required public init(){}
}
public class ProfilePolicy : Codable
{
public var policyType:String?
public var attributeName:String?
public var integerValue:Int?
public var stringValue:String?
public var effectiveDate:Date?
public var expirationDate:Date?
public var comments:String?
public var externalID:String?
public var appliesTo:String?
public var appliesToDescriptor:String?
required public init(){}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /v2/profile/{Query}/{CendynPropertyId} HTTP/1.1
Host: cert.cendyn.com
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length
{"records":[{"cendynPropertyID":"String","propertyName":"String","uniqueIDs":[{"id":"String","type":"String","context":"String"}],"profileTypeCode":"String","profileTypeDescription":"String","nameCode":"String","profileTypeCategory":"String","jobTitle":"String","salutation":"String","firstName":"String","familiarName":"String","middleName":"String","lastName":"String","fullName":"String","nameSuffix":"String","vipid":"String","vipCode":"String","primaryLanguage":"String","genderCode":"String","dobYear":"String","dobMonth":"String","dobDayOfMonth":"String","companyName":"String","arNumber":"String","allowMail":false,"allowEMail":false,"guestPriv":false,"allowPhone":false,"allowSMS":false,"allowHistory":false,"allowMarketResearch":false,"allowThirdParty":false,"allowLoyaltyProgram":false,"creatorCode":"String","lastUpdaterCode":"String","dateProfileCreated":"0001-01-01T00:00:00.0000000","dateProfileUpdated":"0001-01-01T00:00:00.0000000","inactiveDate":"0001-01-01T00:00:00.0000000","nationality":"String","resortCode":"String","retiredProfileId":"String","transferredSubscriptionId":"String","sourceName":"String","sourceID":"String","optOutMarketing":false,"optOutDate":"0001-01-01T00:00:00.0000000","profileExtension":{"languageCode":"String","salutationExt":"String","firstNameExt":"String","familiarNameExt":"String","middleNameExt":"String","lastNameExt":"String","nameSuffixExt":"String","companyNameExt":"String","blacklist":"String","blackListMessage":"String","anonymizationStatus":"String"},"addresses":[{"addressTypeCode":"String","addressTypeDescription":"String","addressStatus":"String","attn":"String","address1":"String","address2":"String","city":"String","stateProvince":"String","postalCode":"String","countryCode":"String","isPrimary":false,"addressLanguage":"String","addressCleansed":false,"optOutMarketing":false,"optOutDate":"0001-01-01T00:00:00.0000000"}],"memberships":[{"externalID":"String","programCode":"String","membershipID":"String","membershipCategory":"String","membershipName":"String","membershipLevel":"String","membershipStatus":"String","enrollmentCode":"String","dateMembershipStarts":"0001-01-01T00:00:00.0000000","dateMembershipExpires":"0001-01-01T00:00:00.0000000","totalStays":0,"awardCredits":0,"awardAvailable":0,"primaryAirline":false,"displaySequence":0,"sourceName":"String","sourceID":"String","isActive":false,"inactiveDate":"0001-01-01T00:00:00.0000000","pointsIndicator":false}],"contactMethods":[{"type":"String","category":"String","dataValue":"String","extraData":"String","optOut":false,"sourceDate":"0001-01-01T00:00:00.0000000","isPrimary":false,"confirmation":false,"inactiveDate":"0001-01-01T00:00:00.0000000","optOutMarketing":false,"optOutDate":"0001-01-01T00:00:00.0000000"}],"actionComments":[{"externalID":"String","commentType":"String","commentTitle":"String","commentClass":"String","actionType":"String","comment":"String","actionDate":"0001-01-01T00:00:00.0000000","inactiveDate":"0001-01-01T00:00:00.0000000","guestViewable":false,"creatorCode":"String","dateCommentCreated":"0001-01-01T00:00:00.0000000","resortCode":"String"}],"specialRequests":[{"externalID":"String","requestType":"String","requestCode":"String","requestComments":"String","resortField":"String","actionTypeCode":"String","actionType":"String","inactiveDate":"0001-01-01T00:00:00.0000000"}],"udfDataCollection":[{"cendynPropertyID":"String","moduleName":"String","tableName":"String","columnName":"String","udfValue":"String"}],"lead":{"fK_Reservation":"00000000000000000000000000000000","externalLeadID":"String","externalLeadSource":"String","leadStatus":"String","leadAcquired":"0001-01-01T00:00:00.0000000","tentativeStartDate":"0001-01-01T00:00:00.0000000","tentativeEndDate":"0001-01-01T00:00:00.0000000","assignedAgent":"String","assignedDate":"0001-01-01T00:00:00.0000000","contactMethod":"String","contactAgent":"String","contactDate":"0001-01-01T00:00:00.0000000","lastFollowupMethod":"String","lastFollowupAgent":"String","lastFollowupDate":"0001-01-01T00:00:00.0000000","bookingMethod":"String","bookingAgent":"String","bookingDate":"0001-01-01T00:00:00.0000000","reasonforStay":"String","marketCode":"String","campaignCode":"String","campaignName":"String","priceEstimate":0,"flaggedForAttention":false},"relatedTravelers":[{"cendynPropertyID":"String","propertyName":"String","uniqueIDs":[{"id":"String","type":"String","context":"String"}],"salutation":"String","firstName":"String","familiarName":"String","middleName":"String","lastName":"String","fullName":"String","suffix":"String","relation":"String","isPrimary":false}],"documents":[{"documentID":"String","documentType":"String","documentSource":"String","codeOnDocument":"String","documentNotes":"String","nameOnDocument":"String","nationalityOnDocument":"String","effectiveDate":"0001-01-01T00:00:00.0000000","expirationDate":"0001-01-01T00:00:00.0000000","issuer":"String","issuerCountry":"String","isPrimary":false,"piI_StoredAs":"String","inactiveDate":"0001-01-01T00:00:00.0000000"}],"vouchers":[{"hotelCode":"String","voucherID":"String","voucherID2":"String","appliedToResort":"String","reservationID":"String","profileIDRecipient":"String","subscriberIDRecipient":"String","recipientName":"String","emailaddress":"String","profileIDPurchaser":"String","purchaserName":"String","voucherStatus":"String","voucherType":"String","membershipType":"String","certCode":"String","certNo":"String","shortDescription":"String","giftMessage":"String","comments":"String","voucherAmount":0,"currencyCode":"String","issueType":"String","dateConsumed":"0001-01-01T00:00:00.0000000","expirationDate":"0001-01-01T00:00:00.0000000","awardPoints":0,"ruleType":"String","ruleValue":"String","cancelAllowed":false,"maxExtensions":0,"referenceType":"String","referenceID":"String","promotionCode":"String","reservationConsumed":false,"webConsumed":false,"pmsConsumed":false,"verifyCertNo":false,"generateInLieu":false,"creatorCode":"String","lastUpdaterCode":"String","folioID":"String","inactiveDate":"0001-01-01T00:00:00.0000000"}],"profilePolicies":[{"policyType":"String","attributeName":"String","integerValue":0,"stringValue":"String","effectiveDate":"0001-01-01T00:00:00.0000000","expirationDate":"0001-01-01T00:00:00.0000000","comments":"String","externalID":"String","appliesTo":"String","appliesToDescriptor":"String"}]}],"status":"Success","statusMessage":"String","recordsReturned":0,"recordsAvailable":0,"pageNumber":0,"pageSize":0}