Evo Voice

<back to all web services

SetCustomerStagingMode

Change the customer's routing between production and staging

Requires Authentication
Requires any of the roles:SystemAdministrator, Manager, Customer
The following routes are available for this service:
POST/customers/{customerId}/staging
import 'package:servicestack/servicestack.dart';

abstract class EntityInfo
{
    /**
    * The ID of the object
    */
    // @ApiMember(Description="The ID of the object")
    String? id;

    /**
    * The date the object was created
    */
    // @ApiMember(Description="The date the object was created")
    String? dateCreated;

    /**
    * The date the object was last modified
    */
    // @ApiMember(Description="The date the object was last modified")
    String? dateLastModified;

    /**
    * The user that created this object
    */
    // @ApiMember(Description="The user that created this object")
    String? createdBy;

    /**
    * The user that last modified this object
    */
    // @ApiMember(Description="The user that last modified this object")
    String? lastModifiedBy;

    EntityInfo({this.id,this.dateCreated,this.dateLastModified,this.createdBy,this.lastModifiedBy});
    EntityInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        dateCreated = json['dateCreated'];
        dateLastModified = json['dateLastModified'];
        createdBy = json['createdBy'];
        lastModifiedBy = json['lastModifiedBy'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'dateCreated': dateCreated,
        'dateLastModified': dateLastModified,
        'createdBy': createdBy,
        'lastModifiedBy': lastModifiedBy
    };

    getTypeName() => "EntityInfo";
    TypeContext? context = _ctx;
}

class CustomerBreadcrumb implements IConvertible
{
    String? id;
    String? name;

    CustomerBreadcrumb({this.id,this.name});
    CustomerBreadcrumb.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        name = json['name'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'name': name
    };

    getTypeName() => "CustomerBreadcrumb";
    TypeContext? context = _ctx;
}

class Value implements IConvertible
{
    bool? boolValue;
    String? stringValue;
    double? numberValue;
    List<Struct>? listValue;
    Struct? structValue;

    Value({this.boolValue,this.stringValue,this.numberValue,this.listValue,this.structValue});
    Value.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        boolValue = json['boolValue'];
        stringValue = json['stringValue'];
        numberValue = JsonConverters.toDouble(json['numberValue']);
        listValue = JsonConverters.fromJson(json['listValue'],'List<Struct>',context!);
        structValue = JsonConverters.fromJson(json['structValue'],'Struct',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'boolValue': boolValue,
        'stringValue': stringValue,
        'numberValue': numberValue,
        'listValue': JsonConverters.toJson(listValue,'List<Struct>',context!),
        'structValue': JsonConverters.toJson(structValue,'Struct',context!)
    };

    getTypeName() => "Value";
    TypeContext? context = _ctx;
}

class Struct extends Map<String,Value?> implements IConvertible
{
    Struct();
    Struct.fromJson(Map<String, dynamic> json) : super.fromJson(json);
    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson();
    getTypeName() => "Struct";
    TypeContext? context = _ctx;
}

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

class Tag implements IConvertible
{
    String? id;
    String? name;
    TagColors? color;

    Tag({this.id,this.name,this.color});
    Tag.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        name = json['name'];
        color = JsonConverters.fromJson(json['color'],'TagColors',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'name': name,
        'color': JsonConverters.toJson(color,'TagColors',context!)
    };

    getTypeName() => "Tag";
    TypeContext? context = _ctx;
}

enum SimpleSchedulingRuleTypes
{
    Always,
    CustomerState,
    Time,
}

class ScheduleDay implements IConvertible
{
    int? offset;
    DayOfWeek? dayOfWeek;

    ScheduleDay({this.offset,this.dayOfWeek});
    ScheduleDay.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        offset = json['offset'];
        dayOfWeek = JsonConverters.fromJson(json['dayOfWeek'],'DayOfWeek',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'offset': offset,
        'dayOfWeek': JsonConverters.toJson(dayOfWeek,'DayOfWeek',context!)
    };

    getTypeName() => "ScheduleDay";
    TypeContext? context = _ctx;
}

enum SchedulingRuleFrequency
{
    None,
    Secondly,
    Minutely,
    Hourly,
    Daily,
    Weekly,
    Monthly,
    Yearly,
}

class SchedulingRule implements IConvertible
{
    String? id;
    String? name;
    int? priority;
    String? state;
    String? source;
    String? condition;
    SimpleSchedulingRuleTypes? simpleRuleType;
    String? customerState;
    String? flowId;
    Struct? flowParams;
    bool? isAllDay;
    String? startDate;
    String? startTime;
    String? endTime;
    List<int>? bySetPosition;
    List<int>? byMonth;
    List<int>? byWeekNo;
    List<int>? byYearDay;
    List<int>? byMonthDay;
    List<ScheduleDay>? byDay;
    List<int>? byHour;
    List<int>? byMinute;
    int? interval;
    int? count;
    String? untilDate;
    SchedulingRuleFrequency? frequency;

    SchedulingRule({this.id,this.name,this.priority,this.state,this.source,this.condition,this.simpleRuleType,this.customerState,this.flowId,this.flowParams,this.isAllDay,this.startDate,this.startTime,this.endTime,this.bySetPosition,this.byMonth,this.byWeekNo,this.byYearDay,this.byMonthDay,this.byDay,this.byHour,this.byMinute,this.interval,this.count,this.untilDate,this.frequency});
    SchedulingRule.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        id = json['id'];
        name = json['name'];
        priority = json['priority'];
        state = json['state'];
        source = json['source'];
        condition = json['condition'];
        simpleRuleType = JsonConverters.fromJson(json['simpleRuleType'],'SimpleSchedulingRuleTypes',context!);
        customerState = json['customerState'];
        flowId = json['flowId'];
        flowParams = JsonConverters.fromJson(json['flowParams'],'Struct',context!);
        isAllDay = json['isAllDay'];
        startDate = json['startDate'];
        startTime = json['startTime'];
        endTime = json['endTime'];
        bySetPosition = JsonConverters.fromJson(json['bySetPosition'],'List<int>',context!);
        byMonth = JsonConverters.fromJson(json['byMonth'],'List<int>',context!);
        byWeekNo = JsonConverters.fromJson(json['byWeekNo'],'List<int>',context!);
        byYearDay = JsonConverters.fromJson(json['byYearDay'],'List<int>',context!);
        byMonthDay = JsonConverters.fromJson(json['byMonthDay'],'List<int>',context!);
        byDay = JsonConverters.fromJson(json['byDay'],'List<ScheduleDay>',context!);
        byHour = JsonConverters.fromJson(json['byHour'],'List<int>',context!);
        byMinute = JsonConverters.fromJson(json['byMinute'],'List<int>',context!);
        interval = json['interval'];
        count = json['count'];
        untilDate = json['untilDate'];
        frequency = JsonConverters.fromJson(json['frequency'],'SchedulingRuleFrequency',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'id': id,
        'name': name,
        'priority': priority,
        'state': state,
        'source': source,
        'condition': condition,
        'simpleRuleType': JsonConverters.toJson(simpleRuleType,'SimpleSchedulingRuleTypes',context!),
        'customerState': customerState,
        'flowId': flowId,
        'flowParams': JsonConverters.toJson(flowParams,'Struct',context!),
        'isAllDay': isAllDay,
        'startDate': startDate,
        'startTime': startTime,
        'endTime': endTime,
        'bySetPosition': JsonConverters.toJson(bySetPosition,'List<int>',context!),
        'byMonth': JsonConverters.toJson(byMonth,'List<int>',context!),
        'byWeekNo': JsonConverters.toJson(byWeekNo,'List<int>',context!),
        'byYearDay': JsonConverters.toJson(byYearDay,'List<int>',context!),
        'byMonthDay': JsonConverters.toJson(byMonthDay,'List<int>',context!),
        'byDay': JsonConverters.toJson(byDay,'List<ScheduleDay>',context!),
        'byHour': JsonConverters.toJson(byHour,'List<int>',context!),
        'byMinute': JsonConverters.toJson(byMinute,'List<int>',context!),
        'interval': interval,
        'count': count,
        'untilDate': untilDate,
        'frequency': JsonConverters.toJson(frequency,'SchedulingRuleFrequency',context!)
    };

    getTypeName() => "SchedulingRule";
    TypeContext? context = _ctx;
}

class Schedule implements IConvertible
{
    String? timeZoneId;
    bool? inherit;
    bool? forceClosed;
    List<SchedulingRule>? rules;
    String? defaultState;

    Schedule({this.timeZoneId,this.inherit,this.forceClosed,this.rules,this.defaultState});
    Schedule.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        timeZoneId = json['timeZoneId'];
        inherit = json['inherit'];
        forceClosed = json['forceClosed'];
        rules = JsonConverters.fromJson(json['rules'],'List<SchedulingRule>',context!);
        defaultState = json['defaultState'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'timeZoneId': timeZoneId,
        'inherit': inherit,
        'forceClosed': forceClosed,
        'rules': JsonConverters.toJson(rules,'List<SchedulingRule>',context!),
        'defaultState': defaultState
    };

    getTypeName() => "Schedule";
    TypeContext? context = _ctx;
}

class IntegrationData implements IConvertible
{
    String? thirdPartyId;

    IntegrationData({this.thirdPartyId});
    IntegrationData.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        thirdPartyId = json['thirdPartyId'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'thirdPartyId': thirdPartyId
    };

    getTypeName() => "IntegrationData";
    TypeContext? context = _ctx;
}

class EntityIntegrationData extends Map<String,IntegrationData?> implements IConvertible
{
    EntityIntegrationData();
    EntityIntegrationData.fromJson(Map<String, dynamic> json) : super.fromJson(json);
    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson();
    getTypeName() => "EntityIntegrationData";
    TypeContext? context = _ctx;
}

class BillingItem implements IConvertible
{
    double? baseCost;
    double? rawUnitMultiplier;
    double? unitCost;
    int? allowance;

    BillingItem({this.baseCost,this.rawUnitMultiplier,this.unitCost,this.allowance});
    BillingItem.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        baseCost = JsonConverters.toDouble(json['baseCost']);
        rawUnitMultiplier = JsonConverters.toDouble(json['rawUnitMultiplier']);
        unitCost = JsonConverters.toDouble(json['unitCost']);
        allowance = json['allowance'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'baseCost': baseCost,
        'rawUnitMultiplier': rawUnitMultiplier,
        'unitCost': unitCost,
        'allowance': allowance
    };

    getTypeName() => "BillingItem";
    TypeContext? context = _ctx;
}

class BillingSettings implements IConvertible
{
    BillingItem? base;
    BillingItem? localNumbers;
    BillingItem? tollFreeNumbers;
    BillingItem? inboundVoiceCalls;
    BillingItem? outboundVoiceCalls;
    BillingItem? inboundFaxes;
    BillingItem? outboundFaxes;
    BillingItem? inboundSmsMessages;
    BillingItem? outboundSmsMessages;

    BillingSettings({this.base,this.localNumbers,this.tollFreeNumbers,this.inboundVoiceCalls,this.outboundVoiceCalls,this.inboundFaxes,this.outboundFaxes,this.inboundSmsMessages,this.outboundSmsMessages});
    BillingSettings.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        base = JsonConverters.fromJson(json['base'],'BillingItem',context!);
        localNumbers = JsonConverters.fromJson(json['localNumbers'],'BillingItem',context!);
        tollFreeNumbers = JsonConverters.fromJson(json['tollFreeNumbers'],'BillingItem',context!);
        inboundVoiceCalls = JsonConverters.fromJson(json['inboundVoiceCalls'],'BillingItem',context!);
        outboundVoiceCalls = JsonConverters.fromJson(json['outboundVoiceCalls'],'BillingItem',context!);
        inboundFaxes = JsonConverters.fromJson(json['inboundFaxes'],'BillingItem',context!);
        outboundFaxes = JsonConverters.fromJson(json['outboundFaxes'],'BillingItem',context!);
        inboundSmsMessages = JsonConverters.fromJson(json['inboundSmsMessages'],'BillingItem',context!);
        outboundSmsMessages = JsonConverters.fromJson(json['outboundSmsMessages'],'BillingItem',context!);
        return this;
    }

    Map<String, dynamic> toJson() => {
        'base': JsonConverters.toJson(base,'BillingItem',context!),
        'localNumbers': JsonConverters.toJson(localNumbers,'BillingItem',context!),
        'tollFreeNumbers': JsonConverters.toJson(tollFreeNumbers,'BillingItem',context!),
        'inboundVoiceCalls': JsonConverters.toJson(inboundVoiceCalls,'BillingItem',context!),
        'outboundVoiceCalls': JsonConverters.toJson(outboundVoiceCalls,'BillingItem',context!),
        'inboundFaxes': JsonConverters.toJson(inboundFaxes,'BillingItem',context!),
        'outboundFaxes': JsonConverters.toJson(outboundFaxes,'BillingItem',context!),
        'inboundSmsMessages': JsonConverters.toJson(inboundSmsMessages,'BillingItem',context!),
        'outboundSmsMessages': JsonConverters.toJson(outboundSmsMessages,'BillingItem',context!)
    };

    getTypeName() => "BillingSettings";
    TypeContext? context = _ctx;
}

class AppSettings implements IConvertible
{
    bool? enablePhoneNumberManagement;
    bool? enableDeviceManagement;
    bool? enableDialer;
    bool? enableCallHistory;
    bool? enableAssistants;
    bool? showFileNameInMessageCenter;
    String? chakraTheme;
    String? customCss;
    String? pageTitle;
    String? stringMappings;
    String? logoutUrl;
    String? portMyNumberUrl;

    AppSettings({this.enablePhoneNumberManagement,this.enableDeviceManagement,this.enableDialer,this.enableCallHistory,this.enableAssistants,this.showFileNameInMessageCenter,this.chakraTheme,this.customCss,this.pageTitle,this.stringMappings,this.logoutUrl,this.portMyNumberUrl});
    AppSettings.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        enablePhoneNumberManagement = json['enablePhoneNumberManagement'];
        enableDeviceManagement = json['enableDeviceManagement'];
        enableDialer = json['enableDialer'];
        enableCallHistory = json['enableCallHistory'];
        enableAssistants = json['enableAssistants'];
        showFileNameInMessageCenter = json['showFileNameInMessageCenter'];
        chakraTheme = json['chakraTheme'];
        customCss = json['customCss'];
        pageTitle = json['pageTitle'];
        stringMappings = json['stringMappings'];
        logoutUrl = json['logoutUrl'];
        portMyNumberUrl = json['portMyNumberUrl'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'enablePhoneNumberManagement': enablePhoneNumberManagement,
        'enableDeviceManagement': enableDeviceManagement,
        'enableDialer': enableDialer,
        'enableCallHistory': enableCallHistory,
        'enableAssistants': enableAssistants,
        'showFileNameInMessageCenter': showFileNameInMessageCenter,
        'chakraTheme': chakraTheme,
        'customCss': customCss,
        'pageTitle': pageTitle,
        'stringMappings': stringMappings,
        'logoutUrl': logoutUrl,
        'portMyNumberUrl': portMyNumberUrl
    };

    getTypeName() => "AppSettings";
    TypeContext? context = _ctx;
}

class CustomerInfo extends EntityInfo implements IConvertible
{
    /**
    * The ID of the account associated with this customer
    */
    // @ApiMember(Description="The ID of the account associated with this customer")
    String? accountId;

    /**
    * The parent customer ID for this customer
    */
    // @ApiMember(Description="The parent customer ID for this customer")
    String? parentCustomerId;

    /**
    * The breadcrumb to this customer
    */
    // @ApiMember(Description="The breadcrumb to this customer")
    List<CustomerBreadcrumb>? breadcrumb;

    /**
    * The name of the account associated with this customer
    */
    // @ApiMember(Description="The name of the account associated with this customer")
    String? accountName;

    /**
    * Is this customer staging or production?
    */
    // @ApiMember(Description="Is this customer staging or production?")
    bool? isStaging;

    /**
    * The name of the company
    */
    // @ApiMember(Description="The name of the company")
    String? name;

    /**
    * The reference ID for this company
    */
    // @ApiMember(Description="The reference ID for this company")
    String? referenceId;

    /**
    * This customer's data values
    */
    // @ApiMember(Description="This customer's data values")
    Struct? data;

    /**
    * The list of tags for this customer
    */
    // @ApiMember(Description="The list of tags for this customer")
    List<Tag>? tags;

    /**
    * This customer's schedule
    */
    // @ApiMember(Description="This customer's schedule")
    Schedule? schedule;

    /**
    * Integration data for this customer
    */
    // @ApiMember(Description="Integration data for this customer")
    EntityIntegrationData? integrationData;

    /**
    * Override this customer's billing settings? Otherwise inherits from parent
    */
    // @ApiMember(Description="Override this customer's billing settings? Otherwise inherits from parent")
    bool? overrideBillingSettings;

    /**
    * Billing settings for this customer
    */
    // @ApiMember(Description="Billing settings for this customer")
    BillingSettings? billingSettings;

    /**
    * Should this customer override the parent customer's app settings
    */
    // @ApiMember(Description="Should this customer override the parent customer's app settings")
    bool? overrideAppSettings;

    /**
    * App / Portal settings for this customer
    */
    // @ApiMember(Description="App / Portal settings for this customer")
    AppSettings? appSettings;

    CustomerInfo({this.accountId,this.parentCustomerId,this.breadcrumb,this.accountName,this.isStaging,this.name,this.referenceId,this.data,this.tags,this.schedule,this.integrationData,this.overrideBillingSettings,this.billingSettings,this.overrideAppSettings,this.appSettings});
    CustomerInfo.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        super.fromMap(json);
        accountId = json['accountId'];
        parentCustomerId = json['parentCustomerId'];
        breadcrumb = JsonConverters.fromJson(json['breadcrumb'],'List<CustomerBreadcrumb>',context!);
        accountName = json['accountName'];
        isStaging = json['isStaging'];
        name = json['name'];
        referenceId = json['referenceId'];
        data = JsonConverters.fromJson(json['data'],'Struct',context!);
        tags = JsonConverters.fromJson(json['tags'],'List<Tag>',context!);
        schedule = JsonConverters.fromJson(json['schedule'],'Schedule',context!);
        integrationData = JsonConverters.fromJson(json['integrationData'],'EntityIntegrationData',context!);
        overrideBillingSettings = json['overrideBillingSettings'];
        billingSettings = JsonConverters.fromJson(json['billingSettings'],'BillingSettings',context!);
        overrideAppSettings = json['overrideAppSettings'];
        appSettings = JsonConverters.fromJson(json['appSettings'],'AppSettings',context!);
        return this;
    }

    Map<String, dynamic> toJson() => super.toJson()..addAll({
        'accountId': accountId,
        'parentCustomerId': parentCustomerId,
        'breadcrumb': JsonConverters.toJson(breadcrumb,'List<CustomerBreadcrumb>',context!),
        'accountName': accountName,
        'isStaging': isStaging,
        'name': name,
        'referenceId': referenceId,
        'data': JsonConverters.toJson(data,'Struct',context!),
        'tags': JsonConverters.toJson(tags,'List<Tag>',context!),
        'schedule': JsonConverters.toJson(schedule,'Schedule',context!),
        'integrationData': JsonConverters.toJson(integrationData,'EntityIntegrationData',context!),
        'overrideBillingSettings': overrideBillingSettings,
        'billingSettings': JsonConverters.toJson(billingSettings,'BillingSettings',context!),
        'overrideAppSettings': overrideAppSettings,
        'appSettings': JsonConverters.toJson(appSettings,'AppSettings',context!)
    });

    getTypeName() => "CustomerInfo";
    TypeContext? context = _ctx;
}

/**
* Change the customer's routing between production and staging
*/
// @Api(Description="Change the customer's routing between production and staging")
class SetCustomerStagingMode implements IConvertible
{
    /**
    * The ID of the customer you want to update
    */
    // @ApiMember(Description="The ID of the customer you want to update")
    String? customerId;

    /**
    * Should this customer's phone numbers route to the staging server
    */
    // @ApiMember(Description="Should this customer's phone numbers route to the staging server")
    bool? isStaging;

    SetCustomerStagingMode({this.customerId,this.isStaging});
    SetCustomerStagingMode.fromJson(Map<String, dynamic> json) { fromMap(json); }

    fromMap(Map<String, dynamic> json) {
        customerId = json['customerId'];
        isStaging = json['isStaging'];
        return this;
    }

    Map<String, dynamic> toJson() => {
        'customerId': customerId,
        'isStaging': isStaging
    };

    getTypeName() => "SetCustomerStagingMode";
    TypeContext? context = _ctx;
}

TypeContext _ctx = TypeContext(library: 'evovoice.io', types: <String, TypeInfo> {
    'EntityInfo': TypeInfo(TypeOf.AbstractClass),
    'CustomerBreadcrumb': TypeInfo(TypeOf.Class, create:() => CustomerBreadcrumb()),
    'Value': TypeInfo(TypeOf.Class, create:() => Value()),
    'List<Struct>': TypeInfo(TypeOf.Class, create:() => <Struct>[]),
    'Struct': TypeInfo(TypeOf.Class, create:() => Struct()),
    'TagColors': TypeInfo(TypeOf.Enum, enumValues:TagColors.values),
    'Tag': TypeInfo(TypeOf.Class, create:() => Tag()),
    'SimpleSchedulingRuleTypes': TypeInfo(TypeOf.Enum, enumValues:SimpleSchedulingRuleTypes.values),
    'ScheduleDay': TypeInfo(TypeOf.Class, create:() => ScheduleDay()),
    'DayOfWeek': TypeInfo(TypeOf.Class, create:() => DayOfWeek()),
    'SchedulingRuleFrequency': TypeInfo(TypeOf.Enum, enumValues:SchedulingRuleFrequency.values),
    'SchedulingRule': TypeInfo(TypeOf.Class, create:() => SchedulingRule()),
    'List<ScheduleDay>': TypeInfo(TypeOf.Class, create:() => <ScheduleDay>[]),
    'Schedule': TypeInfo(TypeOf.Class, create:() => Schedule()),
    'List<SchedulingRule>': TypeInfo(TypeOf.Class, create:() => <SchedulingRule>[]),
    'IntegrationData': TypeInfo(TypeOf.Class, create:() => IntegrationData()),
    'EntityIntegrationData': TypeInfo(TypeOf.Class, create:() => EntityIntegrationData()),
    'BillingItem': TypeInfo(TypeOf.Class, create:() => BillingItem()),
    'BillingSettings': TypeInfo(TypeOf.Class, create:() => BillingSettings()),
    'AppSettings': TypeInfo(TypeOf.Class, create:() => AppSettings()),
    'CustomerInfo': TypeInfo(TypeOf.Class, create:() => CustomerInfo()),
    'List<CustomerBreadcrumb>': TypeInfo(TypeOf.Class, create:() => <CustomerBreadcrumb>[]),
    'List<Tag>': TypeInfo(TypeOf.Class, create:() => <Tag>[]),
    'SetCustomerStagingMode': TypeInfo(TypeOf.Class, create:() => SetCustomerStagingMode()),
});

Dart SetCustomerStagingMode DTOs

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

HTTP + XML

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

POST /customers/{customerId}/staging HTTP/1.1 
Host: evovoice.io 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<SetCustomerStagingMode xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Customers">
  <CustomerId>String</CustomerId>
  <IsStaging>false</IsStaging>
</SetCustomerStagingMode>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<CustomerInfo xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Customers">
  <CreatedBy xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</CreatedBy>
  <DateCreated xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</DateCreated>
  <DateLastModified xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</DateLastModified>
  <Id xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</Id>
  <LastModifiedBy xmlns="http://schemas.datacontract.org/2004/07/Voice.Api">String</LastModifiedBy>
  <AccountId>String</AccountId>
  <AccountName>String</AccountName>
  <AppSettings>
    <ChakraTheme>String</ChakraTheme>
    <CustomCss>String</CustomCss>
    <EnableAssistants>false</EnableAssistants>
    <EnableCallHistory>false</EnableCallHistory>
    <EnableDeviceManagement>false</EnableDeviceManagement>
    <EnableDialer>false</EnableDialer>
    <EnablePhoneNumberManagement>false</EnablePhoneNumberManagement>
    <LogoutUrl>String</LogoutUrl>
    <PageTitle>String</PageTitle>
    <PortMyNumberUrl>String</PortMyNumberUrl>
    <ShowFileNameInMessageCenter>false</ShowFileNameInMessageCenter>
    <StringMappings>String</StringMappings>
  </AppSettings>
  <BillingSettings xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Accounts">
    <d2p1:Base>
      <d2p1:Allowance>0</d2p1:Allowance>
      <d2p1:BaseCost>0</d2p1:BaseCost>
      <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier>
      <d2p1:UnitCost>0</d2p1:UnitCost>
    </d2p1:Base>
    <d2p1:InboundFaxes>
      <d2p1:Allowance>0</d2p1:Allowance>
      <d2p1:BaseCost>0</d2p1:BaseCost>
      <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier>
      <d2p1:UnitCost>0</d2p1:UnitCost>
    </d2p1:InboundFaxes>
    <d2p1:InboundSmsMessages>
      <d2p1:Allowance>0</d2p1:Allowance>
      <d2p1:BaseCost>0</d2p1:BaseCost>
      <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier>
      <d2p1:UnitCost>0</d2p1:UnitCost>
    </d2p1:InboundSmsMessages>
    <d2p1:InboundVoiceCalls>
      <d2p1:Allowance>0</d2p1:Allowance>
      <d2p1:BaseCost>0</d2p1:BaseCost>
      <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier>
      <d2p1:UnitCost>0</d2p1:UnitCost>
    </d2p1:InboundVoiceCalls>
    <d2p1:LocalNumbers>
      <d2p1:Allowance>0</d2p1:Allowance>
      <d2p1:BaseCost>0</d2p1:BaseCost>
      <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier>
      <d2p1:UnitCost>0</d2p1:UnitCost>
    </d2p1:LocalNumbers>
    <d2p1:OutboundFaxes>
      <d2p1:Allowance>0</d2p1:Allowance>
      <d2p1:BaseCost>0</d2p1:BaseCost>
      <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier>
      <d2p1:UnitCost>0</d2p1:UnitCost>
    </d2p1:OutboundFaxes>
    <d2p1:OutboundSmsMessages>
      <d2p1:Allowance>0</d2p1:Allowance>
      <d2p1:BaseCost>0</d2p1:BaseCost>
      <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier>
      <d2p1:UnitCost>0</d2p1:UnitCost>
    </d2p1:OutboundSmsMessages>
    <d2p1:OutboundVoiceCalls>
      <d2p1:Allowance>0</d2p1:Allowance>
      <d2p1:BaseCost>0</d2p1:BaseCost>
      <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier>
      <d2p1:UnitCost>0</d2p1:UnitCost>
    </d2p1:OutboundVoiceCalls>
    <d2p1:TollFreeNumbers>
      <d2p1:Allowance>0</d2p1:Allowance>
      <d2p1:BaseCost>0</d2p1:BaseCost>
      <d2p1:RawUnitMultiplier>0</d2p1:RawUnitMultiplier>
      <d2p1:UnitCost>0</d2p1:UnitCost>
    </d2p1:TollFreeNumbers>
  </BillingSettings>
  <Breadcrumb>
    <CustomerBreadcrumb>
      <Id>String</Id>
      <Name>String</Name>
    </CustomerBreadcrumb>
  </Breadcrumb>
  <Data xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringValue8Ahp2kgT>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/Voice.Api.Flows.Data">
        <d4p1:BoolValue>false</d4p1:BoolValue>
        <d4p1:ListValue>
          <d2p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
            <d2p1:KeyValueOfstringValue8Ahp2kgT>
              <d2p1:Key>String</d2p1:Key>
              <d2p1:Value>
                <d4p1:BoolValue>false</d4p1:BoolValue>
                <d4p1:ListValue>
                  <d2p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
                    <d2p1:KeyValueOfstringValue8Ahp2kgT>
                      <d2p1:Key>String</d2p1:Key>
                      <d2p1:Value>
                        <d4p1:BoolValue>false</d4p1:BoolValue>
                        <d4p1:ListValue>
                          <d2p1:ArrayOfKeyValueOfstringValue8Ahp2kgT i:nil="true" />
                        </d4p1:ListValue>
                        <d4p1:NumberValue>0</d4p1:NumberValue>
                        <d4p1:StringValue>String</d4p1:StringValue>
                        <d4p1:StructValue i:nil="true" />
                      </d2p1:Value>
                    </d2p1:KeyValueOfstringValue8Ahp2kgT>
                  </d2p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
                </d4p1:ListValue>
                <d4p1:NumberValue>0</d4p1:NumberValue>
                <d4p1:StringValue>String</d4p1:StringValue>
                <d4p1:StructValue>
                  <d2p1:KeyValueOfstringValue8Ahp2kgT>
                    <d2p1:Key>String</d2p1:Key>
                    <d2p1:Value>
                      <d4p1:BoolValue>false</d4p1:BoolValue>
                      <d4p1:ListValue>
                        <d2p1:ArrayOfKeyValueOfstringValue8Ahp2kgT i:nil="true" />
                      </d4p1:ListValue>
                      <d4p1:NumberValue>0</d4p1:NumberValue>
                      <d4p1:StringValue>String</d4p1:StringValue>
                      <d4p1:StructValue i:nil="true" />
                    </d2p1:Value>
                  </d2p1:KeyValueOfstringValue8Ahp2kgT>
                </d4p1:StructValue>
              </d2p1:Value>
            </d2p1:KeyValueOfstringValue8Ahp2kgT>
          </d2p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
        </d4p1:ListValue>
        <d4p1:NumberValue>0</d4p1:NumberValue>
        <d4p1:StringValue>String</d4p1:StringValue>
        <d4p1:StructValue>
          <d2p1:KeyValueOfstringValue8Ahp2kgT>
            <d2p1:Key>String</d2p1:Key>
            <d2p1:Value>
              <d4p1:BoolValue>false</d4p1:BoolValue>
              <d4p1:ListValue>
                <d2p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
                  <d2p1:KeyValueOfstringValue8Ahp2kgT>
                    <d2p1:Key>String</d2p1:Key>
                    <d2p1:Value>
                      <d4p1:BoolValue>false</d4p1:BoolValue>
                      <d4p1:ListValue>
                        <d2p1:ArrayOfKeyValueOfstringValue8Ahp2kgT i:nil="true" />
                      </d4p1:ListValue>
                      <d4p1:NumberValue>0</d4p1:NumberValue>
                      <d4p1:StringValue>String</d4p1:StringValue>
                      <d4p1:StructValue i:nil="true" />
                    </d2p1:Value>
                  </d2p1:KeyValueOfstringValue8Ahp2kgT>
                </d2p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
              </d4p1:ListValue>
              <d4p1:NumberValue>0</d4p1:NumberValue>
              <d4p1:StringValue>String</d4p1:StringValue>
              <d4p1:StructValue>
                <d2p1:KeyValueOfstringValue8Ahp2kgT>
                  <d2p1:Key>String</d2p1:Key>
                  <d2p1:Value>
                    <d4p1:BoolValue>false</d4p1:BoolValue>
                    <d4p1:ListValue>
                      <d2p1:ArrayOfKeyValueOfstringValue8Ahp2kgT i:nil="true" />
                    </d4p1:ListValue>
                    <d4p1:NumberValue>0</d4p1:NumberValue>
                    <d4p1:StringValue>String</d4p1:StringValue>
                    <d4p1:StructValue i:nil="true" />
                  </d2p1:Value>
                </d2p1:KeyValueOfstringValue8Ahp2kgT>
              </d4p1:StructValue>
            </d2p1:Value>
          </d2p1:KeyValueOfstringValue8Ahp2kgT>
        </d4p1:StructValue>
      </d2p1:Value>
    </d2p1:KeyValueOfstringValue8Ahp2kgT>
  </Data>
  <IntegrationData xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
    <d2p1:KeyValueOfstringIntegrationDataY_SkqLnhh>
      <d2p1:Key>String</d2p1:Key>
      <d2p1:Value xmlns:d4p1="http://schemas.datacontract.org/2004/07/Voice.Api.Integrations">
        <d4p1:ThirdPartyId>String</d4p1:ThirdPartyId>
      </d2p1:Value>
    </d2p1:KeyValueOfstringIntegrationDataY_SkqLnhh>
  </IntegrationData>
  <IsStaging>false</IsStaging>
  <Name>String</Name>
  <OverrideAppSettings>false</OverrideAppSettings>
  <OverrideBillingSettings>false</OverrideBillingSettings>
  <ParentCustomerId>String</ParentCustomerId>
  <ReferenceId>String</ReferenceId>
  <Schedule xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Scheduling">
    <d2p1:DefaultState>String</d2p1:DefaultState>
    <d2p1:ForceClosed>false</d2p1:ForceClosed>
    <d2p1:Inherit>false</d2p1:Inherit>
    <d2p1:Rules>
      <d2p1:SchedulingRule>
        <d2p1:ByDay>
          <d2p1:ScheduleDay>
            <d2p1:DayOfWeek>Sunday</d2p1:DayOfWeek>
            <d2p1:Offset>0</d2p1:Offset>
          </d2p1:ScheduleDay>
        </d2p1:ByDay>
        <d2p1:ByHour xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:int>0</d5p1:int>
        </d2p1:ByHour>
        <d2p1:ByMinute xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:int>0</d5p1:int>
        </d2p1:ByMinute>
        <d2p1:ByMonth xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:int>0</d5p1:int>
        </d2p1:ByMonth>
        <d2p1:ByMonthDay xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:int>0</d5p1:int>
        </d2p1:ByMonthDay>
        <d2p1:BySetPosition xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:int>0</d5p1:int>
        </d2p1:BySetPosition>
        <d2p1:ByWeekNo xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:int>0</d5p1:int>
        </d2p1:ByWeekNo>
        <d2p1:ByYearDay xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:int>0</d5p1:int>
        </d2p1:ByYearDay>
        <d2p1:Condition>String</d2p1:Condition>
        <d2p1:Count>0</d2p1:Count>
        <d2p1:CustomerState>String</d2p1:CustomerState>
        <d2p1:EndTime>String</d2p1:EndTime>
        <d2p1:FlowId>String</d2p1:FlowId>
        <d2p1:FlowParams xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringValue8Ahp2kgT>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value xmlns:d7p1="http://schemas.datacontract.org/2004/07/Voice.Api.Flows.Data">
              <d7p1:BoolValue>false</d7p1:BoolValue>
              <d7p1:ListValue>
                <d5p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
                  <d5p1:KeyValueOfstringValue8Ahp2kgT>
                    <d5p1:Key>String</d5p1:Key>
                    <d5p1:Value>
                      <d7p1:BoolValue>false</d7p1:BoolValue>
                      <d7p1:ListValue>
                        <d5p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
                          <d5p1:KeyValueOfstringValue8Ahp2kgT>
                            <d5p1:Key>String</d5p1:Key>
                            <d5p1:Value>
                              <d7p1:BoolValue>false</d7p1:BoolValue>
                              <d7p1:ListValue>
                                <d5p1:ArrayOfKeyValueOfstringValue8Ahp2kgT i:nil="true" />
                              </d7p1:ListValue>
                              <d7p1:NumberValue>0</d7p1:NumberValue>
                              <d7p1:StringValue>String</d7p1:StringValue>
                              <d7p1:StructValue i:nil="true" />
                            </d5p1:Value>
                          </d5p1:KeyValueOfstringValue8Ahp2kgT>
                        </d5p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
                      </d7p1:ListValue>
                      <d7p1:NumberValue>0</d7p1:NumberValue>
                      <d7p1:StringValue>String</d7p1:StringValue>
                      <d7p1:StructValue>
                        <d5p1:KeyValueOfstringValue8Ahp2kgT>
                          <d5p1:Key>String</d5p1:Key>
                          <d5p1:Value>
                            <d7p1:BoolValue>false</d7p1:BoolValue>
                            <d7p1:ListValue>
                              <d5p1:ArrayOfKeyValueOfstringValue8Ahp2kgT i:nil="true" />
                            </d7p1:ListValue>
                            <d7p1:NumberValue>0</d7p1:NumberValue>
                            <d7p1:StringValue>String</d7p1:StringValue>
                            <d7p1:StructValue i:nil="true" />
                          </d5p1:Value>
                        </d5p1:KeyValueOfstringValue8Ahp2kgT>
                      </d7p1:StructValue>
                    </d5p1:Value>
                  </d5p1:KeyValueOfstringValue8Ahp2kgT>
                </d5p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
              </d7p1:ListValue>
              <d7p1:NumberValue>0</d7p1:NumberValue>
              <d7p1:StringValue>String</d7p1:StringValue>
              <d7p1:StructValue>
                <d5p1:KeyValueOfstringValue8Ahp2kgT>
                  <d5p1:Key>String</d5p1:Key>
                  <d5p1:Value>
                    <d7p1:BoolValue>false</d7p1:BoolValue>
                    <d7p1:ListValue>
                      <d5p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
                        <d5p1:KeyValueOfstringValue8Ahp2kgT>
                          <d5p1:Key>String</d5p1:Key>
                          <d5p1:Value>
                            <d7p1:BoolValue>false</d7p1:BoolValue>
                            <d7p1:ListValue>
                              <d5p1:ArrayOfKeyValueOfstringValue8Ahp2kgT i:nil="true" />
                            </d7p1:ListValue>
                            <d7p1:NumberValue>0</d7p1:NumberValue>
                            <d7p1:StringValue>String</d7p1:StringValue>
                            <d7p1:StructValue i:nil="true" />
                          </d5p1:Value>
                        </d5p1:KeyValueOfstringValue8Ahp2kgT>
                      </d5p1:ArrayOfKeyValueOfstringValue8Ahp2kgT>
                    </d7p1:ListValue>
                    <d7p1:NumberValue>0</d7p1:NumberValue>
                    <d7p1:StringValue>String</d7p1:StringValue>
                    <d7p1:StructValue>
                      <d5p1:KeyValueOfstringValue8Ahp2kgT>
                        <d5p1:Key>String</d5p1:Key>
                        <d5p1:Value>
                          <d7p1:BoolValue>false</d7p1:BoolValue>
                          <d7p1:ListValue>
                            <d5p1:ArrayOfKeyValueOfstringValue8Ahp2kgT i:nil="true" />
                          </d7p1:ListValue>
                          <d7p1:NumberValue>0</d7p1:NumberValue>
                          <d7p1:StringValue>String</d7p1:StringValue>
                          <d7p1:StructValue i:nil="true" />
                        </d5p1:Value>
                      </d5p1:KeyValueOfstringValue8Ahp2kgT>
                    </d7p1:StructValue>
                  </d5p1:Value>
                </d5p1:KeyValueOfstringValue8Ahp2kgT>
              </d7p1:StructValue>
            </d5p1:Value>
          </d5p1:KeyValueOfstringValue8Ahp2kgT>
        </d2p1:FlowParams>
        <d2p1:Frequency>None</d2p1:Frequency>
        <d2p1:Id>String</d2p1:Id>
        <d2p1:Interval>0</d2p1:Interval>
        <d2p1:IsAllDay>false</d2p1:IsAllDay>
        <d2p1:Name>String</d2p1:Name>
        <d2p1:Priority>0</d2p1:Priority>
        <d2p1:SimpleRuleType>Always</d2p1:SimpleRuleType>
        <d2p1:Source>String</d2p1:Source>
        <d2p1:StartDate>String</d2p1:StartDate>
        <d2p1:StartTime>String</d2p1:StartTime>
        <d2p1:State>String</d2p1:State>
        <d2p1:UntilDate>String</d2p1:UntilDate>
      </d2p1:SchedulingRule>
    </d2p1:Rules>
    <d2p1:TimeZoneId>String</d2p1:TimeZoneId>
  </Schedule>
  <Tags xmlns:d2p1="http://schemas.datacontract.org/2004/07/Voice.Api.Settings">
    <d2p1:Tag>
      <d2p1:Color>Magenta</d2p1:Color>
      <d2p1:Id>String</d2p1:Id>
      <d2p1:Name>String</d2p1:Name>
    </d2p1:Tag>
  </Tags>
</CustomerInfo>