/* Options: Date: 2024-05-16 14:41:20 Version: 6.40 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://evovoice.io //Package: //AddServiceStackTypes: True //AddResponseStatus: False //AddImplicitVersion: //AddDescriptionAsComments: True IncludeTypes: NewCustomer.* //ExcludeTypes: //InitializeCollections: True //TreatTypesAsStrings: //DefaultImports: java.math.*,java.util.*,net.servicestack.client.*,com.google.gson.annotations.*,com.google.gson.reflect.* */ import java.math.* import java.util.* import net.servicestack.client.* import com.google.gson.annotations.* import com.google.gson.reflect.* /** * Creates a new customer */ @Route(Path="/customers", Verbs="POST") @Api(Description="Creates a new customer") open class NewCustomer : IReturn, IPost { /** * The account ID to associate this customer with */ @ApiMember(Description="The account ID to associate this customer with") var accountId:String? = null /** * The name of the customer */ @ApiMember(Description="The name of the customer") var name:String? = null /** * The parent customer for this customer */ @ApiMember(Description="The parent customer for this customer") var parentCustomerId:String? = null /** * The reference ID for this customer (e.g. in a third party system) */ @ApiMember(Description="The reference ID for this customer (e.g. in a third party system)") var referenceId:String? = null /** * Data values for this customer */ @ApiMember(Description="Data values for this customer") @SerializedName("data") var Data:Struct? = null companion object { private val responseType = CustomerInfo::class.java } override fun getResponseType(): Any? = NewCustomer.responseType } open class CustomerInfo : EntityInfo() { /** * The ID of the account associated with this customer */ @ApiMember(Description="The ID of the account associated with this customer") var accountId:String? = null /** * The parent customer ID for this customer */ @ApiMember(Description="The parent customer ID for this customer") var parentCustomerId:String? = null /** * The breadcrumb to this customer */ @ApiMember(Description="The breadcrumb to this customer") var breadcrumb:ArrayList = ArrayList() /** * The name of the account associated with this customer */ @ApiMember(Description="The name of the account associated with this customer") var accountName:String? = null /** * Is this customer staging or production? */ @ApiMember(Description="Is this customer staging or production?") var isStaging:Boolean? = null /** * The name of the company */ @ApiMember(Description="The name of the company") var name:String? = null /** * The reference ID for this company */ @ApiMember(Description="The reference ID for this company") var referenceId:String? = null /** * This customer's data values */ @ApiMember(Description="This customer's data values") @SerializedName("data") var Data:Struct? = null /** * The list of tags for this customer */ @ApiMember(Description="The list of tags for this customer") var tags:ArrayList = ArrayList() /** * This customer's schedule */ @ApiMember(Description="This customer's schedule") var schedule:Schedule? = null /** * Integration data for this customer */ @ApiMember(Description="Integration data for this customer") var integrationData:EntityIntegrationData? = null /** * Override this customer's billing settings? Otherwise inherits from parent */ @ApiMember(Description="Override this customer's billing settings? Otherwise inherits from parent") var overrideBillingSettings:Boolean? = null /** * Billing settings for this customer */ @ApiMember(Description="Billing settings for this customer") var billingSettings:BillingSettings? = null /** * Should this customer override the parent customer's app settings */ @ApiMember(Description="Should this customer override the parent customer's app settings") var overrideAppSettings:Boolean? = null /** * App / Portal settings for this customer */ @ApiMember(Description="App / Portal settings for this customer") var appSettings:AppSettings? = null } open class BillingSettings { var base:BillingItem? = null var localNumbers:BillingItem? = null var tollFreeNumbers:BillingItem? = null var inboundVoiceCalls:BillingItem? = null var outboundVoiceCalls:BillingItem? = null var inboundFaxes:BillingItem? = null var outboundFaxes:BillingItem? = null var inboundSmsMessages:BillingItem? = null var outboundSmsMessages:BillingItem? = null } open class Struct : HashMap() { } open class AppSettings { var enablePhoneNumberManagement:Boolean? = null var enableDeviceManagement:Boolean? = null var enableDialer:Boolean? = null var enableCallHistory:Boolean? = null var showFileNameInMessageCenter:Boolean? = null var chakraTheme:String? = null var customCss:String? = null var pageTitle:String? = null var stringMappings:String? = null var logoutUrl:String? = null var portMyNumberUrl:String? = null } open class Tag { var id:String? = null var name:String? = null var color:TagColors? = null } open class EntityInfo { /** * The ID of the object */ @ApiMember(Description="The ID of the object") var id:String? = null /** * The date the object was created */ @ApiMember(Description="The date the object was created") var dateCreated:String? = null /** * The date the object was last modified */ @ApiMember(Description="The date the object was last modified") var dateLastModified:String? = null /** * The user that created this object */ @ApiMember(Description="The user that created this object") var createdBy:String? = null /** * The user that last modified this object */ @ApiMember(Description="The user that last modified this object") var lastModifiedBy:String? = null } open class CustomerBreadcrumb { var id:String? = null var name:String? = null } open class EntityIntegrationData : HashMap() { } open class BillingItem { var baseCost:Double? = null var rawUnitMultiplier:Double? = null var unitCost:Double? = null var allowance:Int? = null } open class Value { var boolValue:Boolean? = null var stringValue:String? = null var numberValue:Double? = null var listValue:ArrayList = ArrayList() var structValue:Struct? = null } enum class TagColors { Magenta, Red, Volcano, Orange, Gold, Lime, Green, Cyan, Blue, GeekBlue, Purple, } open class IntegrationData { var thirdPartyId:String? = null } open class Schedule { var timeZoneId:String? = null var inherit:Boolean? = null var forceClosed:Boolean? = null var rules:ArrayList = ArrayList() var defaultState:String? = null }