GET | /portal/form-completions |
---|
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 SortOrders(str, Enum):
ASCEND = 'Ascend'
DESCEND = 'Descend'
T = TypeVar('T')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ListRequest(Generic[T], IReturn[ListResponse[T]], IGet):
# @ApiMember(Description="The page of data to retrieve")
page: int = 0
"""
The page of data to retrieve
"""
# @ApiMember(Description="If you want all objects to be returned. This should be used with care")
all: bool = False
"""
If you want all objects to be returned. This should be used with care
"""
# @ApiMember(Description="The number per page to retrieve")
count_per_page: int = 0
"""
The number per page to retrieve
"""
# @ApiMember(Description="Specific IDs")
specific_ids: Optional[List[str]] = None
"""
Specific IDs
"""
# @ApiMember(Description="Specify a sort field")
sort_field: Optional[str] = None
"""
Specify a sort field
"""
# @ApiMember(Description="Specify a sort order")
sort_order: Optional[SortOrders] = None
"""
Specify a sort order
"""
# @ApiMember(Description="Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array")
simplified_paging: bool = False
"""
Disables total / page counts - improves performance. Returns only data. If there is no more data, Items will be empty array
"""
@staticmethod
def response_type(): return ListResponse[T]
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HostedSuiteCompletedFormField:
name: Optional[str] = None
values: Optional[List[str]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class HostedSuiteCompletedForm:
id: Optional[str] = None
name: Optional[str] = None
date_created: Optional[str] = None
date_completed: Optional[str] = None
form_id: Optional[str] = None
form_name: Optional[str] = None
client_id: Optional[str] = None
client_name: Optional[str] = None
contact_id: Optional[str] = None
contact_name: Optional[str] = None
contacts_ids: Optional[List[str]] = None
contacts_names: Optional[List[str]] = None
email_subject: Optional[str] = None
caller_number: Optional[str] = None
fields: Optional[List[HostedSuiteCompletedFormField]] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AppGetFormCompletions(ListRequest[HostedSuiteCompletedForm]):
account_id: Optional[str] = None
customer_id: Optional[str] = None
email_subject_filter: Optional[str] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class EntityInfo:
# @ApiMember(Description="The ID of the object")
id: Optional[str] = None
"""
The ID of the object
"""
# @ApiMember(Description="The date the object was created")
date_created: Optional[str] = None
"""
The date the object was created
"""
# @ApiMember(Description="The date the object was last modified")
date_last_modified: Optional[str] = None
"""
The date the object was last modified
"""
# @ApiMember(Description="The user that created this object")
created_by: Optional[str] = None
"""
The user that created this object
"""
# @ApiMember(Description="The user that last modified this object")
last_modified_by: Optional[str] = None
"""
The user that last modified this object
"""
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BillingItem:
base_cost: float = 0.0
raw_unit_multiplier: float = 0.0
unit_cost: float = 0.0
allowance: int = 0
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BillingSettings:
base: Optional[BillingItem] = None
local_numbers: Optional[BillingItem] = None
toll_free_numbers: Optional[BillingItem] = None
inbound_voice_calls: Optional[BillingItem] = None
outbound_voice_calls: Optional[BillingItem] = None
inbound_faxes: Optional[BillingItem] = None
outbound_faxes: Optional[BillingItem] = None
inbound_sms_messages: Optional[BillingItem] = None
outbound_sms_messages: Optional[BillingItem] = None
ai_insights: Optional[BillingItem] = None
ai_live_minutes: Optional[BillingItem] = None
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AccountInfo(EntityInfo):
# @ApiMember(Description="The name of this account")
name: Optional[str] = None
"""
The name of this account
"""
# @ApiMember(Description="The ID of this account's parent")
parent_account_id: Optional[str] = None
"""
The ID of this account's parent
"""
# @ApiMember(Description="The twilio account SID")
twilio_account_sid: Optional[str] = None
"""
The twilio account SID
"""
# @ApiMember(Description="The ancestors of this account. Useful for breadcrumbs")
ancestor_ids: Optional[List[str]] = None
"""
The ancestors of this account. Useful for breadcrumbs
"""
# @ApiMember(Description="The max number of phone numbers this account can have")
max_phone_numbers: int = 0
"""
The max number of phone numbers this account can have
"""
# @ApiMember(Description="This account is BYOA")
is_b_y_o_a: bool = False
"""
This account is BYOA
"""
# @ApiMember(Description="TrustHub Profile Sid")
trust_hub_profile_sid: Optional[str] = None
"""
TrustHub Profile Sid
"""
# @ApiMember(Description="The ID of the logo file")
logo_id: Optional[str] = None
"""
The ID of the logo file
"""
# @ApiMember(Description="The URI of the logo file")
logo_uri: Optional[str] = None
"""
The URI of the logo file
"""
# @ApiMember(Description="The billing settings for this account")
billing_settings: Optional[BillingSettings] = None
"""
The billing settings for this account
"""
T = TypeVar('T')
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ListResponse(Generic[T]):
# @ApiMember(Description="The items")
items: Optional[List[AccountInfo]] = None
"""
The items
"""
# @ApiMember(Description="The total number of items")
total_count: int = 0
"""
The total number of items
"""
# @ApiMember(Description="The total number of pages")
total_pages: int = 0
"""
The total number of pages
"""
# @ApiMember(Description="Are there more pages of items? Used with simplified paging")
has_more_pages: bool = False
"""
Are there more pages of items? Used with simplified paging
"""
Python AppGetFormCompletions DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json
To embed the response in a jsonp callback, append ?callback=myCallback
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /portal/form-completions HTTP/1.1 Host: team.evovoice.io Accept: application/json
HTTP/1.1 200 OK Content-Type: application/json Content-Length: length {"items":[{"id":"String","name":"String","dateCreated":"String","dateCompleted":"String","formId":"String","formName":"String","clientId":"String","clientName":"String","contactId":"String","contactName":"String","contactsIds":["String"],"contactsNames":["String"],"emailSubject":"String","callerNumber":"String","fields":[{"name":"String","values":["String"]}]}],"totalCount":0,"totalPages":0,"hasMorePages":false}