/* Options:
Date: 2025-11-03 01:03:41
Version: 8.71
Tip: To override a DTO option, remove "//" prefix before updating
BaseUrl: https://evovoice.io
//GlobalNamespace: 
//MakePartial: True
//MakeVirtual: True
//MakeInternal: False
//MakeDataContractsExtensible: False
//AddNullableAnnotations: False
//AddReturnMarker: True
//AddDescriptionAsComments: True
//AddDataContractAttributes: False
//AddIndexesToDataMembers: False
//AddGeneratedCodeAttributes: False
//AddResponseStatus: False
//AddImplicitVersion: 
//InitializeCollections: False
//ExportValueTypes: False
IncludeTypes: PatchSettingsObject.*
//ExcludeTypes: 
//AddNamespaces: 
//AddDefaultXmlNamespace: http://schemas.servicestack.net/types
*/
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Voice.Api.Flows.Data;
using Voice.Api.Endpoints;
using Voice.Api.App;
namespace Voice.Api.App
{
    ///
    ///Update the specified settings object
    ///
    [Route("/app/settings-objects/{id}", "PATCH")]
    [Api(Description="Update the specified settings object")]
    public partial class PatchSettingsObject
        : IReturn, IPatch
    {
        ///
        ///The ID of the settings object
        ///
        [ApiMember(Description="The ID of the settings object")]
        public virtual string Id { get; set; }
        ///
        ///The data values to set
        ///
        [ApiMember(Description="The data values to set")]
        public virtual Struct Data { get; set; }
    }
    public partial class SettingsField
    {
        public virtual string Name { get; set; }
        public virtual string DisplayName { get; set; }
        public virtual ValueTypes Type { get; set; }
        public virtual Value Value { get; set; }
        public virtual bool ReadOnly { get; set; }
        public virtual List PossibleValues { get; set; }
        public virtual DataField DataField { get; set; }
    }
    public partial class SettingsObject
    {
        public virtual string Id { get; set; }
        public virtual string Name { get; set; }
        public virtual string Description { get; set; }
        public virtual bool ReadOnly { get; set; }
        public virtual SettingsObjectTypes Type { get; set; }
        public virtual EndpointTypes? EndpointType { get; set; }
        public virtual List Fields { get; set; }
    }
    public enum SettingsObjectTypes
    {
        Endpoint,
        Customer,
    }
    public partial class SettingsPossibleValue
    {
        public virtual string DisplayName { get; set; }
        public virtual Value Value { 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 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 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 Fields { get; set; }
    }
    public partial class Struct
        : Dictionary
    {
    }
    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 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,
    }
}