Requires any of the roles: | SystemAdministrator, Manager, Customer |
GET | /reports/endpoints |
---|
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
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReportRequest(IReturn[ReportInfo], IPost):
# @ApiMember(Description="The account ID this report should be run for")
account_id: Optional[str] = None
"""
The account ID this report should be run for
"""
# @ApiMember(Description="The email address to notify after the report is run")
email_address_to_notify: Optional[str] = None
"""
The email address to notify after the report is run
"""
# @ApiMember(Description="The webhook to call after the report is complete with the data from the report")
webhook_url: Optional[str] = None
"""
The webhook to call after the report is complete with the data from the report
"""
@staticmethod
def response_type(): return ReportInfo
class ReportStatuses(str, Enum):
QUEUED = 'Queued'
RUNNING = 'Running'
COMPLETED = 'Completed'
ERROR = 'Error'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ReportInfo:
id: Optional[str] = None
name: Optional[str] = None
status: Optional[ReportStatuses] = None
status_message: Optional[str] = None
date_created: Optional[str] = None
date_updated: Optional[str] = None
download_link: Optional[str] = None
job_id: Optional[str] = None
email_address_to_notify: Optional[str] = None
server: Optional[str] = None
class EndpointTypes(str, Enum):
PHONE_NUMBER = 'PhoneNumber'
USER = 'User'
FAX_NUMBER = 'FaxNumber'
EMAIL_ADDRESS = 'EmailAddress'
UNUSED_1 = 'Unused_1'
UNUSED_2 = 'Unused_2'
UNUSED_3 = 'Unused_3'
UNUSED_4 = 'Unused_4'
UNUSED_5 = 'Unused_5'
TEAM = 'Team'
ASSISTANT = 'Assistant'
# @Api(Description="This report returns all of the endpoints broken down by type per tab")
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EndpointsReport(ReportRequest):
"""
This report returns all of the endpoints broken down by type per tab
"""
# @ApiMember(Description="The types of endpoints to return")
types: Optional[List[EndpointTypes]] = None
"""
The types of endpoints to return
"""
# @ApiMember(Description="Filter by specific customer")
customer_id: Optional[str] = None
"""
Filter by specific customer
"""
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.
GET /reports/endpoints HTTP/1.1 Host: team.evovoice.io Accept: application/xml
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <ReportInfo xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Voice.Api.Reports"> <DateCreated>String</DateCreated> <DateUpdated>String</DateUpdated> <DownloadLink>String</DownloadLink> <EmailAddressToNotify>String</EmailAddressToNotify> <Id>String</Id> <JobId>String</JobId> <Name>String</Name> <Server>String</Server> <Status>Queued</Status> <StatusMessage>String</StatusMessage> </ReportInfo>