Requires any of the roles: | SystemAdministrator, Manager, Customer |
POST | /customers/{customerId}/test-schedule | ||
---|---|---|---|
POST | /endpoints/{endpointId}/test-schedule |
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
class SimpleSchedulingRuleTypes(str, Enum):
ALWAYS = 'Always'
CUSTOMER_STATE = 'CustomerState'
TIME = 'Time'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Value:
bool_value: Optional[bool] = None
string_value: Optional[str] = None
number_value: Optional[float] = None
list_value: Optional[List[Struct]] = None
struct_value: Optional[Struct] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Struct(Dict[str,Value]):
pass
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ScheduleDay:
offset: Optional[int] = None
day_of_week: Optional[DayOfWeek] = None
class SchedulingRuleFrequency(str, Enum):
NONE = 'None'
SECONDLY = 'Secondly'
MINUTELY = 'Minutely'
HOURLY = 'Hourly'
DAILY = 'Daily'
WEEKLY = 'Weekly'
MONTHLY = 'Monthly'
YEARLY = 'Yearly'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class SchedulingRule:
id: Optional[str] = None
name: Optional[str] = None
priority: Optional[int] = None
state: Optional[str] = None
source: Optional[str] = None
condition: Optional[str] = None
simple_rule_type: Optional[SimpleSchedulingRuleTypes] = None
customer_state: Optional[str] = None
flow_id: Optional[str] = None
flow_params: Optional[Struct] = None
is_all_day: Optional[bool] = None
start_date: Optional[str] = None
start_time: Optional[str] = None
end_time: Optional[str] = None
by_set_position: Optional[List[int]] = None
by_month: Optional[List[int]] = None
by_week_no: Optional[List[int]] = None
by_year_day: Optional[List[int]] = None
by_month_day: Optional[List[int]] = None
by_day: Optional[List[ScheduleDay]] = None
by_hour: Optional[List[int]] = None
by_minute: Optional[List[int]] = None
interval: Optional[int] = None
count: Optional[int] = None
until_date: Optional[str] = None
frequency: Optional[SchedulingRuleFrequency] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Schedule:
time_zone_id: Optional[str] = None
inherit: Optional[bool] = None
force_closed: Optional[bool] = None
rules: Optional[List[SchedulingRule]] = None
default_state: Optional[str] = None
# @Api(Description="Test the customer's schedule")
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TestSchedule:
"""
Test the customer's schedule
"""
# @ApiMember(Description="The ID of the customer whose schedule you want to test")
customer_id: Optional[str] = None
"""
The ID of the customer whose schedule you want to test
"""
# @ApiMember(Description="The ID of the endpoint whose schedule you want to test.")
endpoint_id: Optional[str] = None
"""
The ID of the endpoint whose schedule you want to test.
"""
# @ApiMember(Description="The schedule to use (leave null to use the current saved schedule)")
schedule: Optional[Schedule] = None
"""
The schedule to use (leave null to use the current saved schedule)
"""
# @ApiMember(Description="The ISO string of the date and time you want to test")
date_time: Optional[str] = None
"""
The ISO string of the date and time you want to test
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TestScheduleResponse:
state_name: Optional[str] = None
time_zone_id: Optional[str] = None
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /customers/{customerId}/test-schedule HTTP/1.1
Host: evovoice.io
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<TestSchedule xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Customers">
<CustomerId>String</CustomerId>
<DateTime>String</DateTime>
<EndpointId>String</EndpointId>
<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>
</TestSchedule>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <TestScheduleResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Customers"> <StateName>String</StateName> <TimeZoneId>String</TimeZoneId> </TestScheduleResponse>