/* Options: Date: 2025-09-14 07:29:52 SwiftVersion: 6.0 Version: 8.52 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://production-eros-platform-apisubscription.azurewebsites.net/api //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: SaveContactRole.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack public class SaveContactRole : ValidationErrorList, IReturn, ISubscription { public typealias Return = ResponseStatus /** * Guid representing the external systems data source information. */ // @ApiMember(DataType="Guid", Description="Guid representing the external systems data source information.", IsRequired=true, Name="SuiteDataSourceInstanceId", ParameterType="query") public var suiteDataSourceInstanceId:String? /** * The unique key that represents the contact role on the external system. */ // @ApiMember(DataType="string", Description="The unique key that represents the contact role on the external system.", IsRequired=true, Name="AlternateKey", ParameterType="query") public var alternateKey:String? /** * Guid of the contact role object within Eros. If ObjectId is known, the external system may pass this instead of the alternate key. */ // @ApiMember(DataType="Guid", Description="Guid of the contact role object within Eros. If ObjectId is known, the external system may pass this instead of the alternate key.", Name="ObjectId", ParameterType="query") public var objectId:String? /** * Object containing all details of the contact role to be inserted or updated. */ // @ApiMember(DataType="SubscriptionContactRoleModel", Description="Object containing all details of the contact role to be inserted or updated.", IsRequired=true, Name="ContactRole", ParameterType="query") public var contactRole:SubscriptionContactRoleModel? public var ignoreValidation:Bool? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case suiteDataSourceInstanceId case alternateKey case objectId case contactRole case ignoreValidation } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) suiteDataSourceInstanceId = try container.decodeIfPresent(String.self, forKey: .suiteDataSourceInstanceId) alternateKey = try container.decodeIfPresent(String.self, forKey: .alternateKey) objectId = try container.decodeIfPresent(String.self, forKey: .objectId) contactRole = try container.decodeIfPresent(SubscriptionContactRoleModel.self, forKey: .contactRole) ignoreValidation = try container.decodeIfPresent(Bool.self, forKey: .ignoreValidation) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if suiteDataSourceInstanceId != nil { try container.encode(suiteDataSourceInstanceId, forKey: .suiteDataSourceInstanceId) } if alternateKey != nil { try container.encode(alternateKey, forKey: .alternateKey) } if objectId != nil { try container.encode(objectId, forKey: .objectId) } if contactRole != nil { try container.encode(contactRole, forKey: .contactRole) } if ignoreValidation != nil { try container.encode(ignoreValidation, forKey: .ignoreValidation) } } } public class RuleValidationResult : Codable { public var ruleCode:String? public var message:String? public var key:String? public var tag:String? public var errorCode:String? required public init(){} } public class ValidationErrorList : Codable { public var validationErrors:[RuleValidationResult]? required public init(){} } public protocol ISubscription { var suiteDataSourceInstanceId:String? { get set } var objectId:String? { get set } var alternateKey:String? { get set } var ignoreValidation:Bool? { get set } } public class SubscriptionContactRoleModel : Codable { /** * Name of the role. */ // @ApiMember(DataType="string", Description="Name of the role.", Name="RoleName", ParameterType="query") public var roleName:String? /** * Short version of the role name. */ // @ApiMember(DataType="string", Description="Short version of the role name.", Name="RoleShortName", ParameterType="query") public var roleShortName:String? /** * Description of the role purpose. */ // @ApiMember(DataType="string", Description="Description of the role purpose.", Name="RoleDescription", ParameterType="query") public var roleDescription:String? /** * If true, the role will be pending for a contact until they accept it. */ // @ApiMember(DataType="bool", Description="If true, the role will be pending for a contact until they accept it.", Name="RequireContactsToAccept", ParameterType="query") public var requireContactsToAccept:Bool? /** * Contact Types that may have this role. */ // @ApiMember(DataType="List", Description="Contact Types that may have this role.", Name="ContactTypes", ParameterType="query") public var contactTypes:[String]? /** * Role Filters this role should be added to. */ // @ApiMember(DataType="List", Description="Role Filters this role should be added to.", Name="ListItemFilters", ParameterType="query") public var listItemFilters:[String]? required public init(){} }