Required role: | User |
GET | /app/settings-objects |
---|
import Foundation
import ServiceStack
/**
* Get all configurable settings objects for the authenticated user
*/
// @Api(Description="Get all configurable settings objects for the authenticated user")
public class ListSettingsObjects : IGet, Codable
{
required public init(){}
}
public class ListSettingsObjectsResponse : Codable
{
public var settingsObjects:[SettingsObject]
required public init(){}
}
public class SettingsObject : Codable
{
public var id:String
public var name:String
public var Description:String
public var readOnly:Bool
public var type:SettingsObjectTypes
public var endpointType:EndpointTypes?
public var fields:[SettingsField]
required public init(){}
}
public enum SettingsObjectTypes : String, Codable
{
case Endpoint
case Customer
}
public enum EndpointTypes : String, Codable
{
case PhoneNumber
case User
case FaxNumber
case EmailAddress
case Unused_1
case Unused_2
case Unused_3
case Unused_4
case Unused_5
case Team
case Assistant
}
public class SettingsField : Codable
{
public var name:String
public var displayName:String
public var type:ValueTypes
public var value:Value
public var readOnly:Bool
public var possibleValues:[SettingsPossibleValue]
public var dataField:DataField
required public init(){}
}
public enum ValueTypes : String, Codable
{
case NotSpecified
case String
case Boolean
case Number
case List
case Struct
case Transition
case Custom
case Date
case AudioFile
case TimeZoneId
case PhoneNumber
case User
case Endpoint
case Time
case File
case FaxNumber
case EmailAccount
case Customer
case Flow
case Team
case FlowReference
case Integration
case Assistant
}
public class Value : Codable
{
public var boolValue:Bool?
public var stringValue:String
public var numberValue:Double?
public var listValue:[Struct]
public var structValue:Struct
required public init(){}
}
public class Struct : List<String:Value>
{
required public init(){ super.init() }
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
}
}
public class SettingsPossibleValue : Codable
{
public var displayName:String
public var value:Value
required public init(){}
}
public class DataField : Codable
{
public var id:String
public var name:String
public var type:ValueTypes
public var uiHint:UIHints
public var uiTab:String
public var isAsync:Bool
public var disableBinding:Bool
public var structType:DataType
public var listType:DataType
public var Description:String
public var possibleValues:[String]
public var isOutput:Bool
public var customFieldValuesUrl:String
public var defaultValue:Value
public var transitionNameFormat:String
public var uniqueness:DataFieldUniqueness
public var voiceOnly:Bool
public var conditionalVisibilityField:String
public var conditionalVisibilityValue:String
public var noEvalTemplate:Bool
public var userMode:UserDataFieldModes
public var anyValueType:Bool
required public init(){}
}
public enum UIHints : String, Codable
{
case None
case LargeText
case InlineForm
case Password
case InlineStruct
}
public class DataType : Codable
{
public var typeName:String
public var fields:[DataField]
required public init(){}
}
public enum DataFieldUniqueness : String, Codable
{
case NotUnique
case Unique
case UniqueToCustomer
}
public enum UserDataFieldModes : String, Codable
{
case Hidden
case ReadOnly
case ReadWrite
}
Swift ListSettingsObjects DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /app/settings-objects HTTP/1.1 Host: team.evovoice.io Accept: text/jsv
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { settingsObjects: [ { id: String, name: String, description: String, readOnly: False, type: Endpoint, endpointType: PhoneNumber, fields: [ { name: String, displayName: String, type: NotSpecified, value: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ null ] }, readOnly: False, possibleValues: [ { displayName: String, value: { boolValue: False, stringValue: String, numberValue: 0, listValue: [ null ] } } ] } ] } ] }