/* Options: Date: 2026-01-25 12:24:53 SwiftVersion: 6.0 Version: 8.71 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://evovoice.io //BaseClass: //AddModelExtensions: True //AddServiceStackTypes: True //MakePropertiesOptional: True IncludeTypes: NewAlert.* //ExcludeTypes: //ExcludeGenericBaseTypes: False //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True //InitializeCollections: False //TreatTypesAsStrings: //DefaultImports: Foundation,ServiceStack */ import Foundation import ServiceStack /** * Creates a new alert */ // @Route("/alerts", "POST") // @Api(Description="Creates a new alert") public class NewAlert : IReturn, IPost, Codable { public typealias Return = AlertInfo /** * The account ID to associate this alert with */ // @ApiMember(Description="The account ID to associate this alert with") public var accountId:String? /** * The name of the alert */ // @ApiMember(Description="The name of the alert") public var name:String? /** * The trigger alert */ // @ApiMember(Description="The trigger alert") public var trigger:AlertTriggers? /** * The number of hours for the window over which the alert will trigger */ // @ApiMember(Description="The number of hours for the window over which the alert will trigger") public var windowHours:Double? /** * The value at which the alert will trigger */ // @ApiMember(Description="The value at which the alert will trigger") public var threshold:Double? /** * The email addresses (one per line) to notify */ // @ApiMember(Description="The email addresses (one per line) to notify") public var notificationEmailAddresses:String? required public init(){} } public class AlertInfo : EntityInfo { /** * The ID of the account associated with this alert */ // @ApiMember(Description="The ID of the account associated with this alert") public var accountId:String? /** * The name of the alert */ // @ApiMember(Description="The name of the alert") public var name:String? /** * The trigger alert */ // @ApiMember(Description="The trigger alert") public var trigger:AlertTriggers? /** * The number of hours for the window over which the alert will trigger */ // @ApiMember(Description="The number of hours for the window over which the alert will trigger") public var windowHours:Double? /** * The value at which the alert will trigger */ // @ApiMember(Description="The value at which the alert will trigger") public var threshold:Double? /** * The email addresses (one per line) to notify */ // @ApiMember(Description="The email addresses (one per line) to notify") public var notificationEmailAddresses:String? required public init(){ super.init() } private enum CodingKeys : String, CodingKey { case accountId case name case trigger case windowHours case threshold case notificationEmailAddresses } required public init(from decoder: Decoder) throws { try super.init(from: decoder) let container = try decoder.container(keyedBy: CodingKeys.self) accountId = try container.decodeIfPresent(String.self, forKey: .accountId) name = try container.decodeIfPresent(String.self, forKey: .name) trigger = try container.decodeIfPresent(AlertTriggers.self, forKey: .trigger) windowHours = try container.decodeIfPresent(Double.self, forKey: .windowHours) threshold = try container.decodeIfPresent(Double.self, forKey: .threshold) notificationEmailAddresses = try container.decodeIfPresent(String.self, forKey: .notificationEmailAddresses) } public override func encode(to encoder: Encoder) throws { try super.encode(to: encoder) var container = encoder.container(keyedBy: CodingKeys.self) if accountId != nil { try container.encode(accountId, forKey: .accountId) } if name != nil { try container.encode(name, forKey: .name) } if trigger != nil { try container.encode(trigger, forKey: .trigger) } if windowHours != nil { try container.encode(windowHours, forKey: .windowHours) } if threshold != nil { try container.encode(threshold, forKey: .threshold) } if notificationEmailAddresses != nil { try container.encode(notificationEmailAddresses, forKey: .notificationEmailAddresses) } } } public enum AlertTriggers : String, Codable { case CallSpend } public class EntityInfo : Codable { /** * The ID of the object */ // @ApiMember(Description="The ID of the object") public var id:String? /** * The date the object was created */ // @ApiMember(Description="The date the object was created") public var dateCreated:String? /** * The date the object was last modified */ // @ApiMember(Description="The date the object was last modified") public var dateLastModified:String? /** * The user that created this object */ // @ApiMember(Description="The user that created this object") public var createdBy:String? /** * The user that last modified this object */ // @ApiMember(Description="The user that last modified this object") public var lastModifiedBy:String? required public init(){} }