Evo Voice

<back to all web services

GetSystemSettings

Gets the system settings

Requires Authentication
Requires any of the roles:SystemAdministrator, Manager, Customer
The following routes are available for this service:
GET/system/settings
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Voice.Api.Settings;
using Voice.Api;
using Voice.Api.Flows.Data;
using Voice.Api.Endpoints;

namespace Voice.Api
{
    public partial class EntityInfo
    {
        ///<summary>
        ///The ID of the object
        ///</summary>
        [ApiMember(Description="The ID of the object")]
        public virtual string Id { get; set; }

        ///<summary>
        ///The date the object was created
        ///</summary>
        [ApiMember(Description="The date the object was created")]
        public virtual string DateCreated { get; set; }

        ///<summary>
        ///The date the object was last modified
        ///</summary>
        [ApiMember(Description="The date the object was last modified")]
        public virtual string DateLastModified { get; set; }

        ///<summary>
        ///The user that created this object
        ///</summary>
        [ApiMember(Description="The user that created this object")]
        public virtual string CreatedBy { get; set; }

        ///<summary>
        ///The user that last modified this object
        ///</summary>
        [ApiMember(Description="The user that last modified this object")]
        public virtual string LastModifiedBy { get; set; }
    }

}

namespace Voice.Api.Endpoints
{
    public enum EndpointTypes
    {
        PhoneNumber,
        User,
        FaxNumber,
        EmailAddress,
        Unused_1,
        Unused_2,
        Unused_3,
        Unused_4,
        Unused_5,
        Team,
        Assistant,
    }

    public enum TwilioSipRegions
    {
        NorthAmericaVirginia,
        NorthAmericaOregon,
        EuropeIreland,
        EuropeFrankfurt,
        AsiaPacificSingapore,
        AsiaPacificTokyo,
        AsiaPacificSydney,
        SouthAmericaSanPaolo,
    }

    public enum UserDataFieldModes
    {
        Hidden,
        ReadOnly,
        ReadWrite,
    }

}

namespace Voice.Api.Flows.Data
{
    public partial class DataField
    {
        public virtual string Id { get; set; }
        public virtual string Name { get; set; }
        public virtual ValueTypes Type { get; set; }
        public virtual UIHints UIHint { get; set; }
        public virtual string UITab { get; set; }
        public virtual bool IsAsync { get; set; }
        public virtual bool DisableBinding { get; set; }
        public virtual DataType StructType { get; set; }
        public virtual DataType ListType { get; set; }
        public virtual string Description { get; set; }
        public virtual List<string> PossibleValues { get; set; }
        public virtual bool IsOutput { get; set; }
        public virtual string CustomFieldValuesUrl { get; set; }
        public virtual Value DefaultValue { get; set; }
        public virtual string TransitionNameFormat { get; set; }
        public virtual DataFieldUniqueness Uniqueness { get; set; }
        public virtual bool VoiceOnly { get; set; }
        public virtual string ConditionalVisibilityField { get; set; }
        public virtual string ConditionalVisibilityValue { get; set; }
        public virtual bool NoEvalTemplate { get; set; }
        public virtual UserDataFieldModes UserMode { get; set; }
        public virtual bool AnyValueType { get; set; }
    }

    public enum DataFieldUniqueness
    {
        NotUnique,
        Unique,
        UniqueToCustomer,
    }

    public partial class DataType
    {
        public virtual string TypeName { get; set; }
        public virtual List<DataField> Fields { get; set; }
    }

    public partial class Struct
        : Dictionary<string, Value>
    {
    }

    public enum UIHints
    {
        None,
        LargeText,
        InlineForm,
        Password,
        InlineStruct,
    }

    public partial class Value
    {
        public virtual bool? BoolValue { get; set; }
        public virtual string StringValue { get; set; }
        public virtual double? NumberValue { get; set; }
        public virtual List<Struct> ListValue { get; set; }
        public virtual Struct StructValue { get; set; }
    }

    public enum ValueTypes
    {
        NotSpecified,
        String,
        Boolean,
        Number,
        List,
        Struct,
        Transition,
        Custom,
        Date,
        AudioFile,
        TimeZoneId,
        PhoneNumber,
        User,
        Endpoint,
        Time,
        File,
        FaxNumber,
        EmailAccount,
        Customer,
        Flow,
        Team,
        FlowReference,
        Integration,
        Assistant,
    }

}

namespace Voice.Api.Settings
{
    public partial class CustomerDataField
        : DataField
    {
        public virtual bool ShowInSearch { get; set; }
    }

    public partial class EmailAccount
    {
        public virtual string Id { get; set; }
        public virtual string Server { get; set; }
        public virtual string UserName { get; set; }
        public virtual int Port { get; set; }
        public virtual string EmailAddress { get; set; }
        public virtual string DisplayName { get; set; }
        public virtual string Password { get; set; }
    }

    public partial class EndpointDataField
        : DataField
    {
        public virtual bool ShowInSearch { get; set; }
        public virtual bool ShowInLists { get; set; }
        public virtual EndpointTypes? EndpointType { get; set; }
        public virtual bool IsCallerId { get; set; }
        public virtual bool IsKnob { get; set; }
    }

    ///<summary>
    ///Gets the system settings
    ///</summary>
    [Api(Description="Gets the system settings")]
    public partial class GetSystemSettings
        : IGet
    {
        ///<summary>
        ///The account ID whose system settings you want
        ///</summary>
        [ApiMember(Description="The account ID whose system settings you want")]
        public virtual string AccountId { get; set; }
    }

    public partial class SystemSettingsField
        : DataField
    {
        public virtual Value Value { get; set; }
    }

    public partial class SystemSettingsInfo
        : EntityInfo
    {
        ///<summary>
        ///Use to override the system time for testing
        ///</summary>
        [ApiMember(Description="Use to override the system time for testing")]
        public virtual bool OverrideSystemTime { get; set; }

        ///<summary>
        ///The system override time zone
        ///</summary>
        [ApiMember(Description="The system override time zone")]
        public virtual string OverrideSystemTimeZoneId { get; set; }

        ///<summary>
        ///The system override date/time
        ///</summary>
        [ApiMember(Description="The system override date/time")]
        public virtual string OverrideSystemDateTime { get; set; }

        ///<summary>
        ///The list of system settings fields
        ///</summary>
        [ApiMember(Description="The list of system settings fields")]
        public virtual List<SystemSettingsField> SystemFields { get; set; }

        ///<summary>
        ///The list of customer metadata fields
        ///</summary>
        [ApiMember(Description="The list of customer metadata fields")]
        public virtual List<CustomerDataField> CustomerFields { get; set; }

        ///<summary>
        ///The list of endpoint metadata fields
        ///</summary>
        [ApiMember(Description="The list of endpoint metadata fields")]
        public virtual List<EndpointDataField> EndpointFields { get; set; }

        ///<summary>
        ///The list of email accounts
        ///</summary>
        [ApiMember(Description="The list of email accounts")]
        public virtual List<EmailAccount> EmailAccounts { get; set; }

        ///<summary>
        ///The list of tags in the system
        ///</summary>
        [ApiMember(Description="The list of tags in the system")]
        public virtual List<Tag> Tags { get; set; }

        ///<summary>
        ///Documentation for the account
        ///</summary>
        [ApiMember(Description="Documentation for the account")]
        public virtual string Documentation { get; set; }

        ///<summary>
        ///The number of days recordings are retained
        ///</summary>
        [ApiMember(Description="The number of days recordings are retained")]
        public virtual int RecordingRetentionDays { get; set; }

        ///<summary>
        ///Enable the SIP refer beta
        ///</summary>
        [ApiMember(Description="Enable the SIP refer beta")]
        public virtual bool EnableSipRefer { get; set; }

        ///<summary>
        ///The number of seconds after which we automatically logoff a not ready agent
        ///</summary>
        [ApiMember(Description="The number of seconds after which we automatically logoff a not ready agent")]
        public virtual int AutoAgentLogoffSeconds { get; set; }

        ///<summary>
        ///The default SIP region for new devices
        ///</summary>
        [ApiMember(Description="The default SIP region for new devices")]
        public virtual TwilioSipRegions? DefaultSipRegion { get; set; }
    }

    public partial class Tag
    {
        public virtual string Id { get; set; }
        public virtual string Name { get; set; }
        public virtual TagColors Color { get; set; }
    }

    public enum TagColors
    {
        Magenta,
        Red,
        Volcano,
        Orange,
        Gold,
        Lime,
        Green,
        Cyan,
        Blue,
        GeekBlue,
        Purple,
    }

}

C# GetSystemSettings DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /system/settings HTTP/1.1 
Host: team.evovoice.io 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	overrideSystemTime: False,
	overrideSystemTimeZoneId: String,
	overrideSystemDateTime: String,
	systemFields: 
	[
		{
			value: 
			{
				boolValue: False,
				stringValue: String,
				numberValue: 0,
				listValue: 
				[
					null
				]
			},
			id: String,
			name: String,
			type: NotSpecified,
			uiHint: None,
			uiTab: String,
			isAsync: False,
			disableBinding: False,
			description: String,
			possibleValues: 
			[
				String
			],
			isOutput: False,
			customFieldValuesUrl: String,
			defaultValue: 
			{
				boolValue: False,
				stringValue: String,
				numberValue: 0,
				listValue: 
				[
					null
				]
			},
			transitionNameFormat: String,
			uniqueness: NotUnique,
			voiceOnly: False,
			conditionalVisibilityField: String,
			conditionalVisibilityValue: String,
			noEvalTemplate: False,
			userMode: Hidden,
			anyValueType: False
		}
	],
	customerFields: 
	[
		{
			showInSearch: False,
			id: String,
			name: String,
			type: NotSpecified,
			uiHint: None,
			uiTab: String,
			isAsync: False,
			disableBinding: False,
			description: String,
			possibleValues: 
			[
				String
			],
			isOutput: False,
			customFieldValuesUrl: String,
			defaultValue: 
			{
				boolValue: False,
				stringValue: String,
				numberValue: 0,
				listValue: 
				[
					null
				]
			},
			transitionNameFormat: String,
			uniqueness: NotUnique,
			voiceOnly: False,
			conditionalVisibilityField: String,
			conditionalVisibilityValue: String,
			noEvalTemplate: False,
			userMode: Hidden,
			anyValueType: False
		}
	],
	endpointFields: 
	[
		{
			showInSearch: False,
			showInLists: False,
			endpointType: PhoneNumber,
			isCallerId: False,
			isKnob: False,
			id: String,
			name: String,
			type: NotSpecified,
			uiHint: None,
			uiTab: String,
			isAsync: False,
			disableBinding: False,
			description: String,
			possibleValues: 
			[
				String
			],
			isOutput: False,
			customFieldValuesUrl: String,
			defaultValue: 
			{
				boolValue: False,
				stringValue: String,
				numberValue: 0,
				listValue: 
				[
					null
				]
			},
			transitionNameFormat: String,
			uniqueness: NotUnique,
			voiceOnly: False,
			conditionalVisibilityField: String,
			conditionalVisibilityValue: String,
			noEvalTemplate: False,
			userMode: Hidden,
			anyValueType: False
		}
	],
	emailAccounts: 
	[
		{
			id: String,
			server: String,
			userName: String,
			port: 0,
			emailAddress: String,
			displayName: String,
			password: String
		}
	],
	tags: 
	[
		{
			id: String,
			name: String,
			color: Magenta
		}
	],
	documentation: String,
	recordingRetentionDays: 0,
	enableSipRefer: False,
	autoAgentLogoffSeconds: 0,
	defaultSipRegion: NorthAmericaVirginia,
	id: String,
	dateCreated: String,
	dateLastModified: String,
	createdBy: String,
	lastModifiedBy: String
}