/* Options: Date: 2025-05-24 21:42:11 Version: 8.71 Tip: To override a DTO option, remove "//" prefix before updating BaseUrl: https://team.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: NewFlow.* //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.Flows; using Voice.Api.Settings; using Voice.Api; using Voice.Api.Customers; 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.Customers { public partial class CustomerBreadcrumb { public virtual string Id { get; set; } public virtual string Name { get; set; } } } namespace Voice.Api.Endpoints { public enum UserDataFieldModes { Hidden, ReadOnly, ReadWrite, } } namespace Voice.Api.Flows { public enum FlowChannels { Voice, Chat, Fax, } public partial class FlowExit { ///<summary> ///The unique ID for this exit ///</summary> [ApiMember(Description="The unique ID for this exit")] public virtual string Id { get; set; } ///<summary> ///The name of this exit ///</summary> [ApiMember(Description="The name of this exit")] public virtual string Name { get; set; } ///<summary> ///The UI for the exit ///</summary> [ApiMember(Description="The UI for the exit")] public virtual FlowNodeUI UI { get; set; } } public partial class FlowInfo : EntityInfo { ///<summary> ///The name of this flow ///</summary> [ApiMember(Description="The name of this flow")] public virtual string Name { get; set; } ///<summary> ///The roles that this flow has ///</summary> [ApiMember(Description="The roles that this flow has")] public virtual List<FlowRoles> Roles { get; set; } ///<summary> ///What this flow does ///</summary> [ApiMember(Description="What this flow does")] public virtual string Description { get; set; } ///<summary> ///Any notes for this flow ///</summary> [ApiMember(Description="Any notes for this flow")] public virtual string Notes { get; set; } ///<summary> ///The ID of the account associated with the flow ///</summary> [ApiMember(Description="The ID of the account associated with the flow")] public virtual string AccountId { get; set; } ///<summary> ///The name of the account associated with the flow ///</summary> [ApiMember(Description="The name of the account associated with the flow")] public virtual string AccountName { get; set; } ///<summary> ///The ID of the customer this flow is associated with ///</summary> [ApiMember(Description="The ID of the customer this flow is associated with")] public virtual string CustomerId { get; set; } ///<summary> ///The name of the customer this flow is associated with ///</summary> [ApiMember(Description="The name of the customer this flow is associated with")] public virtual string CustomerName { get; set; } ///<summary> ///The breadcrumb to the flow for this endpoint ///</summary> [ApiMember(Description="The breadcrumb to the flow for this endpoint")] public virtual List<CustomerBreadcrumb> CustomerBreadcrumb { get; set; } ///<summary> ///The nodes in this flow ///</summary> [ApiMember(Description="The nodes in this flow")] public virtual List<FlowNode> Nodes { get; set; } ///<summary> ///The flow's parameters ///</summary> [ApiMember(Description="The flow's parameters")] public virtual List<FlowParameter> Parameters { get; set; } ///<summary> ///The flow's exits ///</summary> [ApiMember(Description="The flow's exits")] public virtual List<FlowExit> Exits { get; set; } ///<summary> ///The UI data for the flow ///</summary> [ApiMember(Description="The UI data for the flow")] public virtual FlowUI UI { get; set; } ///<summary> ///The list of tags for this flow ///</summary> [ApiMember(Description="The list of tags for this flow")] public virtual List<Tag> Tags { get; set; } ///<summary> ///The number of nodes in this flow ///</summary> [ApiMember(Description="The number of nodes in this flow")] public virtual int NodeCount { get; set; } } public partial class FlowNode { ///<summary> ///The ID of this node. Must be unique within the flow but can be anything ///</summary> [ApiMember(Description="The ID of this node. Must be unique within the flow but can be anything")] public virtual string Id { get; set; } ///<summary> ///Is this the starting node for the flow. Only one node can have this set ///</summary> [ApiMember(Description="Is this the starting node for the flow. Only one node can have this set")] public virtual bool IsStartNode { get; set; } ///<summary> ///The name of the node, descriptive to be used as a reminder in the GUI ///</summary> [ApiMember(Description="The name of the node, descriptive to be used as a reminder in the GUI")] public virtual string Name { get; set; } ///<summary> ///The specification for the node ///</summary> [ApiMember(Description="The specification for the node")] public virtual FlowNodeSpec Spec { get; set; } ///<summary> ///The UI data for the node ///</summary> [ApiMember(Description="The UI data for the node")] public virtual FlowNodeUI UI { get; set; } ///<summary> ///The data for this node. These will be POST'd to the endpoint when it is called. ///</summary> [ApiMember(Description="The data for this node. These will be POST'd to the endpoint when it is called.")] public virtual NodeParameterMap Parameters { get; set; } } public enum FlowNodeCategories { General, Voice, Logic, DateAndTime, Audio, Messaging, Assistant, Flows, Fax, Network, Cookies, CallCenter, Intelligence, } public partial class FlowNodeSpec { ///<summary> ///The name of this node ///</summary> [ApiMember(Description="The name of this node")] public virtual string Name { get; set; } ///<summary> ///A description of this node ///</summary> [ApiMember(Description="A description of this node")] public virtual string Description { get; set; } ///<summary> ///Icon class for this node (FontAwesome) ///</summary> [ApiMember(Description="Icon class for this node (FontAwesome)")] public virtual string IconClass { get; set; } ///<summary> ///The type name for this node ///</summary> [ApiMember(Description="The type name for this node")] public virtual string TypeName { get; set; } ///<summary> ///The category this node should be grouped under ///</summary> [ApiMember(Description="The category this node should be grouped under")] public virtual FlowNodeCategories Category { get; set; } ///<summary> ///The URL where this node is located ///</summary> [ApiMember(Description="The URL where this node is located")] public virtual string Url { get; set; } ///<summary> ///The data type for this node ///</summary> [ApiMember(Description="The data type for this node")] public virtual DataType DataType { get; set; } ///<summary> ///URL for documentation for this node ///</summary> [ApiMember(Description="URL for documentation for this node")] public virtual string DocumentationUrl { get; set; } ///<summary> ///The channels that this node is restricted to ///</summary> [ApiMember(Description="The channels that this node is restricted to")] public virtual List<FlowChannels> RestrictToChannels { get; set; } } public partial class FlowNodeUI { ///<summary> ///The X position of the node ///</summary> [ApiMember(Description="The X position of the node")] public virtual double X { get; set; } ///<summary> ///The Y position of the node ///</summary> [ApiMember(Description="The Y position of the node")] public virtual double Y { get; set; } ///<summary> ///Notes for this node ///</summary> [ApiMember(Description="Notes for this node")] public virtual string Notes { get; set; } } public partial class FlowParameter : DataField { public virtual bool IsPublic { get; set; } public virtual bool IsKnob { get; set; } } public enum FlowRoles { UI, Reference, PhoneNumberRouting, UserDialOut, FaxNumberRouting, } public partial class FlowUI { public virtual string SelectedNode { get; set; } public virtual double CanvasX { get; set; } public virtual double CanvasY { get; set; } public virtual double CanvasZoom { get; set; } } ///<summary> ///Create a new flow ///</summary> [Route("/flows", "POST")] [Api(Description="Create a new flow")] public partial class NewFlow : IReturn<FlowInfo>, IPost { ///<summary> ///The account ID to associate with the flow ///</summary> [ApiMember(Description="The account ID to associate with the flow")] public virtual string AccountId { get; set; } ///<summary> ///The ID of the customer to associate with the flow ///</summary> [ApiMember(Description="The ID of the customer to associate with the flow")] public virtual string CustomerId { get; set; } ///<summary> ///The name of the flow ///</summary> [ApiMember(Description="The name of the flow")] public virtual string Name { get; set; } ///<summary> ///The roles that this flow has ///</summary> [ApiMember(Description="The roles that this flow has")] public virtual List<FlowRoles> Roles { get; set; } ///<summary> ///The list of nodes for this flow ///</summary> [ApiMember(Description="The list of nodes for this flow")] public virtual List<FlowNode> Nodes { get; set; } } } 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 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, } }