# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-07-11T08:24:21+00:00
from __future__ import annotations
from datetime import date, datetime
from enum import Enum
from typing import Any, Dict, List, Optional, Union
from pydantic import (
AnyUrl,
BaseModel,
ConfigDict,
EmailStr,
Field,
RootModel,
SecretStr,
constr,
)
class ActionCreate(BaseModel):
action_type: Optional[str] = Field('general', title='Action Type')
description: Optional[str] = Field(None, title='Description')
id: str = Field(..., title='Id')
name: str = Field(..., title='Name')
class AgentRequest(BaseModel):
agent_id: str = Field(
...,
description='Unique identifier of the agent to run',
examples=['sales_ai'],
title='Agent Id',
)
channel: Optional[str] = Field(
'web',
description='Communication channel (web, email, sms, etc.)',
examples=['web'],
title='Channel',
)
contact_id: Optional[int] = Field(
None,
description='Optional contact ID for maintaining conversation context',
examples=[1],
title='Contact Id',
)
input: str = Field(
...,
description="The user's input text to process",
examples=["Hi, I'm interested in your image editing services."],
title='Input',
)
metadata: Optional[Dict[str, Any]] = Field(
{},
description='Additional metadata for the request',
examples=[{'ip_address': '127.0.0.1', 'user_id': 'user123'}],
title='Metadata',
)
session_id: Optional[str] = Field(
None,
description='Optional session ID for maintaining conversation context',
examples=['session_12345'],
title='Session Id',
)
class BodyIndexDocumentsApiKnowledgeV2IndexPost(BaseModel):
chunk_overlap: Optional[int] = Field(
200, description='Overlap between chunks', title='Chunk Overlap'
)
chunk_size: Optional[int] = Field(
1000, description='Size of text chunks', title='Chunk Size'
)
file_paths: List[str] = Field(
..., description='List of file paths to index', title='File Paths'
)
class BodyLoginForAccessTokenApiAuthLoginPost(BaseModel):
client_id: Optional[str] = Field(None, title='Client Id')
client_secret: Optional[SecretStr] = Field(None, title='Client Secret')
grant_type: Optional[constr(pattern=r'^password$')] = Field(
None, title='Grant Type'
)
password: SecretStr = Field(..., title='Password')
scope: Optional[str] = Field('', title='Scope')
username: str = Field(..., title='Username')
class BodyMoveEmailApiEmailFolderEmailIdMovePost(BaseModel):
target_folder: str = Field(..., title='Target Folder')
class BodySendTestEmailApiEmailTestSendPost(BaseModel):
email: EmailStr = Field(..., title='Email')
class BodyUploadKnowledgeFileApiKnowledgeUploadPost(BaseModel):
agent_id: str = Field(..., title='Agent Id')
file: bytes = Field(..., title='File')
class BodyUploadProfilePhotoApiRbacProfileUserIdPhotoPost(BaseModel):
file: bytes = Field(..., title='File')
class BodyUploadTrainingLogsApiTrainingUploadPost(BaseModel):
file: bytes = Field(..., title='File')
class BodyVerifyTokenEndpointApiAuthVerifyTokenPost(BaseModel):
token: str = Field(..., title='Token')
class BulkUserRoleAssignment(BaseModel):
role_ids: List[str] = Field(..., title='Role Ids')
user_id: int = Field(..., title='User Id')
class BuyNumberRequest(BaseModel):
area_code: Optional[str] = Field(None, title='Area Code')
country: str = Field(..., title='Country')
sms_enabled: Optional[bool] = Field(True, title='Sms Enabled')
voice_enabled: Optional[bool] = Field(True, title='Voice Enabled')
class CallLog(BaseModel):
ai_sentiment_score: Optional[float] = Field(None, title='Ai Sentiment Score')
ai_summary: Optional[str] = Field('', title='Ai Summary')
call_duration: Optional[int] = Field(0, title='Call Duration')
call_end_time: Optional[datetime] = Field(None, title='Call End Time')
call_price: Optional[float] = Field(0.0, title='Call Price')
call_price_unit: Optional[str] = Field('USD', title='Call Price Unit')
call_sid: Optional[str] = Field(None, title='Call Sid')
call_start_time: Optional[datetime] = Field(None, title='Call Start Time')
call_status: Optional[str] = Field('initiated', title='Call Status')
created_at: Optional[datetime] = Field(None, title='Created At')
id: int = Field(..., title='Id')
lead_activity_id: Optional[int] = Field(0, title='Lead Activity Id')
lead_contact_id: Optional[int] = Field(0, title='Lead Contact Id')
next_action: Optional[str] = Field('', title='Next Action')
phone_number: Optional[str] = Field(None, title='Phone Number')
recording_url: Optional[str] = Field(None, title='Recording Url')
transcript: Optional[str] = Field('', title='Transcript')
updated_at: Optional[datetime] = Field(None, title='Updated At')
user_id: int = Field(..., title='User Id')
class CallLogCreate(BaseModel):
ai_sentiment_score: Optional[float] = Field(None, title='Ai Sentiment Score')
ai_summary: Optional[str] = Field('', title='Ai Summary')
call_duration: Optional[int] = Field(0, title='Call Duration')
call_end_time: Optional[datetime] = Field(None, title='Call End Time')
call_price: Optional[float] = Field(0.0, title='Call Price')
call_price_unit: Optional[str] = Field('USD', title='Call Price Unit')
call_sid: Optional[str] = Field(None, title='Call Sid')
call_start_time: Optional[datetime] = Field(None, title='Call Start Time')
call_status: Optional[str] = Field('initiated', title='Call Status')
lead_activity_id: Optional[int] = Field(0, title='Lead Activity Id')
lead_contact_id: Optional[int] = Field(0, title='Lead Contact Id')
next_action: Optional[str] = Field('', title='Next Action')
phone_number: Optional[str] = Field(None, title='Phone Number')
recording_url: Optional[str] = Field(None, title='Recording Url')
transcript: Optional[str] = Field('', title='Transcript')
user_id: int = Field(..., title='User Id')
class CallLogUpdate(BaseModel):
ai_sentiment_score: Optional[float] = Field(None, title='Ai Sentiment Score')
ai_summary: Optional[str] = Field(None, title='Ai Summary')
call_duration: Optional[int] = Field(None, title='Call Duration')
call_end_time: Optional[datetime] = Field(None, title='Call End Time')
call_price: Optional[float] = Field(None, title='Call Price')
call_price_unit: Optional[str] = Field(None, title='Call Price Unit')
call_status: Optional[str] = Field(None, title='Call Status')
next_action: Optional[str] = Field(None, title='Next Action')
recording_url: Optional[str] = Field(None, title='Recording Url')
transcript: Optional[str] = Field(None, title='Transcript')
class CallNote(BaseModel):
call_log_id: Optional[int] = Field(..., title='Call Log Id')
call_sid: Optional[str] = Field(..., title='Call Sid')
content: str = Field(..., title='Content')
created_at: datetime = Field(..., title='Created At')
id: int = Field(..., title='Id')
tags: List[str] = Field(..., title='Tags')
updated_at: datetime = Field(..., title='Updated At')
user_id: int = Field(..., title='User Id')
class CallNoteCreate(BaseModel):
call_log_id: Optional[int] = Field(None, title='Call Log Id')
call_sid: Optional[str] = Field(None, title='Call Sid')
content: str = Field(..., title='Content')
tags: Optional[List[str]] = Field([], title='Tags')
user_id: int = Field(..., title='User Id')
class CallNoteUpdate(BaseModel):
content: Optional[str] = Field(None, title='Content')
tags: Optional[List[str]] = Field(None, title='Tags')
class CallRecordIn(BaseModel):
call_sid: str = Field(..., title='Call Sid')
duration: Optional[int] = Field(None, title='Duration')
end_time: Optional[datetime] = Field(None, title='End Time')
from_number: Optional[str] = Field(..., title='From Number')
start_time: Optional[datetime] = Field(None, title='Start Time')
status: Optional[str] = Field('initiated', title='Status')
to_number: Optional[str] = Field(..., title='To Number')
class CompanyInfo(BaseModel):
ai_summary: Optional[str] = Field(None, title='Ai Summary')
company_size: Optional[str] = Field(None, title='Company Size')
created_at: Optional[datetime] = Field(None, title='Created At')
engagement_score: Optional[float] = Field(None, title='Engagement Score')
id: int = Field(..., title='Id')
industry: Optional[str] = Field(None, title='Industry')
linkedin_url: Optional[str] = Field(None, title='Linkedin Url')
name: str = Field(..., title='Name')
status: Optional[str] = Field(None, title='Status')
twitter_url: Optional[str] = Field(None, title='Twitter Url')
updated_at: Optional[datetime] = Field(None, title='Updated At')
website_url: Optional[str] = Field(None, title='Website Url')
class ContactCreate(BaseModel):
contact_status: Optional[str] = Field('Active', title='Contact Status')
department: Optional[str] = Field(None, title='Department')
designation: Optional[str] = Field(None, title='Designation')
email: EmailStr = Field(..., title='Email')
first_name: str = Field(..., title='First Name')
is_primary: Optional[bool] = Field(False, title='Is Primary')
last_contact_date: Optional[datetime] = Field(None, title='Last Contact Date')
last_name: str = Field(..., title='Last Name')
lead_id: int = Field(..., title='Lead Id')
metadata: Optional[Dict[str, Any]] = Field(None, title='Metadata')
notes: Optional[str] = Field(None, title='Notes')
phone: Optional[str] = Field(None, title='Phone')
class ContactUpdate(BaseModel):
company_id: Optional[int] = Field(None, title='Company Id')
contact_status: Optional[str] = Field(None, title='Contact Status')
decision_maker: Optional[bool] = Field(None, title='Decision Maker')
department: Optional[str] = Field(None, title='Department')
designation: Optional[str] = Field(None, title='Designation')
email: Optional[str] = Field(None, title='Email')
first_name: Optional[str] = Field(None, title='First Name')
is_primary: Optional[bool] = Field(None, title='Is Primary')
last_contact_date: Optional[datetime] = Field(None, title='Last Contact Date')
last_name: Optional[str] = Field(None, title='Last Name')
lead_id: Optional[int] = Field(None, title='Lead Id')
metadata: Optional[Dict[str, Any]] = Field(None, title='Metadata')
notes: Optional[str] = Field(None, title='Notes')
phone: Optional[str] = Field(None, title='Phone')
title: Optional[str] = Field(None, title='Title')
class ContactWithCompany(BaseModel):
company: CompanyInfo
contact_status: Optional[str] = Field('Active', title='Contact Status')
created_at: datetime = Field(..., title='Created At')
department: Optional[str] = Field(None, title='Department')
designation: Optional[str] = Field(None, title='Designation')
email: EmailStr = Field(..., title='Email')
first_name: str = Field(..., title='First Name')
id: int = Field(..., title='Id')
is_primary: Optional[bool] = Field(False, title='Is Primary')
last_contact_date: Optional[datetime] = Field(None, title='Last Contact Date')
last_name: str = Field(..., title='Last Name')
lead_id: int = Field(..., title='Lead Id')
metadata: Optional[Dict[str, Any]] = Field(None, title='Metadata')
notes: Optional[str] = Field(None, title='Notes')
phone: Optional[str] = Field(None, title='Phone')
updated_at: Optional[datetime] = Field(None, title='Updated At')
class CreateApiKeyRequest(BaseModel):
friendly_name: str = Field(..., title='Friendly Name')
class CreateSubaccountRequest(BaseModel):
friendly_name: str = Field(..., title='Friendly Name')
class DbExecuteRequest(BaseModel):
params: Optional[List] = Field(
None,
description='Optional list of parameters for prepared statements.',
title='Params',
)
query: str = Field(
...,
description='The SQL mutation query (INSERT, UPDATE, DELETE) string.',
title='Query',
)
class DbExecuteResponseData(BaseModel):
affectedRows: int = Field(
...,
description='Number of rows affected by the execution.',
title='Affectedrows',
)
insertId: Optional[int] = Field(
None, description='The ID of the inserted row, if applicable.', title='Insertid'
)
class DbQueryRequest(BaseModel):
params: Optional[List] = Field(
None,
description='Optional list of parameters for prepared statements.',
title='Params',
)
query: str = Field(
..., description='The SQL query string to execute.', title='Query'
)
class EmailAttachment(BaseModel):
content: str = Field(..., title='Content')
content_type: str = Field(..., title='Content Type')
name: str = Field(..., title='Name')
size: int = Field(..., title='Size')
class EmailConfig(BaseModel):
checkFrequency: Optional[int] = Field(15, title='Checkfrequency')
email: Optional[EmailStr] = Field(None, title='Email')
enableNotifications: Optional[bool] = Field(None, title='Enablenotifications')
fullName: Optional[str] = Field(None, title='Fullname')
imapEmail: Optional[EmailStr] = Field(None, title='Imapemail')
imapPassword: Optional[str] = Field(None, title='Imappassword')
imapPort: Optional[int] = Field(None, title='Imapport')
imapServer: Optional[str] = Field(None, title='Imapserver')
imapUseSsl: Optional[bool] = Field(None, title='Imapusessl')
leadUpdateNotification: Optional[bool] = Field(None, title='Leadupdatenotification')
newLeadNotification: Optional[bool] = Field(None, title='Newleadnotification')
notificationFrequency: Optional[str] = Field(None, title='Notificationfrequency')
smtpPassword: Optional[str] = Field(None, title='Smtppassword')
smtpPort: Optional[int] = Field(None, title='Smtpport')
smtpServer: Optional[str] = Field(None, title='Smtpserver')
smtpUseTls: Optional[bool] = Field(None, title='Smtpusetls')
smtpUsername: Optional[str] = Field(None, title='Smtpusername')
class EmailDetail(BaseModel):
attachments: Optional[List[EmailAttachment]] = Field(None, title='Attachments')
bcc: Optional[List[str]] = Field(None, title='Bcc')
body: str = Field(..., title='Body')
body_html: Optional[str] = Field(None, title='Body Html')
cc: Optional[List[str]] = Field(None, title='Cc')
date: str = Field(..., title='Date')
folder: str = Field(..., title='Folder')
from_address: str = Field(..., title='From Address')
from_name: Optional[str] = Field(None, title='From Name')
id: str = Field(..., title='Id')
is_read: Optional[bool] = Field(False, title='Is Read')
reply_to: Optional[str] = Field(None, title='Reply To')
subject: str = Field(..., title='Subject')
thread_id: Optional[str] = Field(None, title='Thread Id')
to: List[str] = Field(..., title='To')
class EmailFolder(BaseModel):
name: str = Field(..., title='Name')
total_count: int = Field(..., title='Total Count')
unread_count: int = Field(..., title='Unread Count')
class EmailListItem(BaseModel):
date: str = Field(..., title='Date')
from_address: str = Field(..., title='From Address')
from_name: Optional[str] = Field(None, title='From Name')
has_attachments: Optional[bool] = Field(False, title='Has Attachments')
id: str = Field(..., title='Id')
is_read: Optional[bool] = Field(False, title='Is Read')
snippet: Optional[str] = Field(None, title='Snippet')
subject: str = Field(..., title='Subject')
class EmailMessage(BaseModel):
attachments: Optional[List[EmailAttachment]] = Field(None, title='Attachments')
bcc: Optional[List[EmailStr]] = Field(None, title='Bcc')
body: str = Field(..., title='Body')
body_html: Optional[str] = Field(None, title='Body Html')
cc: Optional[List[EmailStr]] = Field(None, title='Cc')
from_: Optional[EmailStr] = Field(None, alias='from', title='From')
from_name: Optional[str] = Field(None, title='From Name')
subject: str = Field(..., title='Subject')
to: List[EmailStr] = Field(..., title='To')
class EmailResponse(BaseModel):
data: Optional[Dict[str, Any]] = Field(None, title='Data')
message: str = Field(..., title='Message')
success: bool = Field(..., title='Success')
class ErrorResponse(BaseModel):
error: str = Field(
..., description='Description of the error that occurred.', title='Error'
)
class FolderEmailsResponse(BaseModel):
emails: List[EmailListItem] = Field(..., title='Emails')
name: str = Field(..., title='Name')
total_count: int = Field(..., title='Total Count')
unread_count: int = Field(..., title='Unread Count')
class IVRMenuCreate(BaseModel):
greeting_text: Optional[str] = Field(None, title='Greeting Text')
name: str = Field(..., title='Name')
number_id: int = Field(..., title='Number Id')
class IVRMenuOut(BaseModel):
greeting_text: Optional[str] = Field(None, title='Greeting Text')
id: int = Field(..., title='Id')
name: str = Field(..., title='Name')
number_id: int = Field(..., title='Number Id')
class IVRMenuUpdate(BaseModel):
greeting_text: Optional[str] = Field(..., title='Greeting Text')
name: Optional[str] = Field(..., title='Name')
class IVRRouteCreate(BaseModel):
action_data: Optional[str] = Field(None, title='Action Data')
action_type: str = Field(..., title='Action Type')
digit: str = Field(..., title='Digit')
label: Optional[str] = Field(None, title='Label')
menu_id: int = Field(..., title='Menu Id')
class IVRRouteOut(BaseModel):
action_data: Optional[str] = Field(None, title='Action Data')
action_type: str = Field(..., title='Action Type')
created_at: Optional[datetime] = Field(..., title='Created At')
digit: str = Field(..., title='Digit')
id: int = Field(..., title='Id')
label: Optional[str] = Field(None, title='Label')
menu_id: int = Field(..., title='Menu Id')
class IVRRouteUpdate(BaseModel):
action_data: Optional[str] = Field(..., title='Action Data')
action_type: Optional[str] = Field(..., title='Action Type')
digit: Optional[str] = Field(..., title='Digit')
label: Optional[str] = Field(..., title='Label')
class ImapTestRequest(BaseModel):
host: str = Field(..., title='Host')
password: str = Field(..., title='Password')
port: int = Field(..., title='Port')
use_ssl: Optional[bool] = Field(True, title='Use Ssl')
username: str = Field(..., title='Username')
class LeadContact(BaseModel):
company: Optional[CompanyInfo] = None
contact_status: Optional[str] = Field('Active', title='Contact Status')
created_at: datetime = Field(..., title='Created At')
department: Optional[str] = Field(None, title='Department')
designation: Optional[str] = Field(None, title='Designation')
email: EmailStr = Field(..., title='Email')
first_name: str = Field(..., title='First Name')
id: int = Field(..., title='Id')
is_primary: Optional[bool] = Field(False, title='Is Primary')
last_contact_date: Optional[datetime] = Field(None, title='Last Contact Date')
last_name: str = Field(..., title='Last Name')
lead_id: int = Field(..., title='Lead Id')
metadata: Optional[Dict[str, Any]] = Field(None, title='Metadata')
notes: Optional[str] = Field(None, title='Notes')
phone: Optional[str] = Field(None, title='Phone')
updated_at: Optional[datetime] = Field(None, title='Updated At')
class LeadCreate(BaseModel):
address: Optional[str] = Field(None, title='Address')
ai_summary: Optional[str] = Field(None, title='Ai Summary')
city: Optional[str] = Field(None, title='City')
company_info: Optional[str] = Field(None, title='Company Info')
company_size: Optional[str] = Field(None, title='Company Size')
country: Optional[str] = Field(None, title='Country')
engagement_score: Optional[float] = Field(None, title='Engagement Score')
industry: Optional[str] = Field(None, title='Industry')
lead_score: Optional[float] = Field(None, title='Lead Score')
linkedin_url: Optional[AnyUrl] = Field(None, title='Linkedin Url')
logo_url: Optional[AnyUrl] = Field(None, title='Logo Url')
name: str = Field(..., title='Name')
pain_points: Optional[str] = Field(None, title='Pain Points')
sentiment_score: Optional[float] = Field(None, title='Sentiment Score')
state: Optional[str] = Field(None, title='State')
status: Optional[str] = Field('Active', title='Status')
target_market: Optional[str] = Field(None, title='Target Market')
twitter_url: Optional[AnyUrl] = Field(None, title='Twitter Url')
website_url: Optional[AnyUrl] = Field(None, title='Website Url')
zip_code: Optional[str] = Field(None, title='Zip Code')
class LeadUpdate(BaseModel):
address: Optional[str] = Field(None, title='Address')
ai_summary: Optional[str] = Field(None, title='Ai Summary')
city: Optional[str] = Field(None, title='City')
company_info: Optional[str] = Field(None, title='Company Info')
company_size: Optional[str] = Field(None, title='Company Size')
country: Optional[str] = Field(None, title='Country')
engagement_score: Optional[float] = Field(None, title='Engagement Score')
industry: Optional[str] = Field(None, title='Industry')
lead_score: Optional[float] = Field(None, title='Lead Score')
linkedin_url: Optional[str] = Field(None, title='Linkedin Url')
logo_url: Optional[str] = Field(None, title='Logo Url')
name: Optional[str] = Field(None, title='Name')
pain_points: Optional[str] = Field(None, title='Pain Points')
sentiment_score: Optional[float] = Field(None, title='Sentiment Score')
state: Optional[str] = Field(None, title='State')
status: Optional[str] = Field(None, title='Status')
target_market: Optional[str] = Field(None, title='Target Market')
twitter_url: Optional[str] = Field(None, title='Twitter Url')
website_url: Optional[str] = Field(None, title='Website Url')
zip_code: Optional[str] = Field(None, title='Zip Code')
class Note(BaseModel):
content: str = Field(..., title='Content')
created_at: datetime = Field(..., title='Created At')
id: int = Field(..., title='Id')
importance: Optional[int] = Field(None, title='Importance')
lead_company_id: int = Field(..., title='Lead Company Id')
note_type: Optional[str] = Field('general', title='Note Type')
sentiment: Optional[str] = Field(None, title='Sentiment')
source: Optional[str] = Field(None, title='Source')
updated_at: Optional[datetime] = Field(None, title='Updated At')
user_name: Optional[str] = Field('System User', title='User Name')
class NoteCreate(BaseModel):
content: str = Field(..., title='Content')
importance: Optional[int] = Field(None, title='Importance')
lead_company_id: int = Field(..., title='Lead Company Id')
note_type: Optional[str] = Field('general', title='Note Type')
sentiment: Optional[str] = Field(None, title='Sentiment')
source: Optional[str] = Field(None, title='Source')
user_name: Optional[str] = Field('System User', title='User Name')
class NoteUpdate(BaseModel):
content: Optional[str] = Field(None, title='Content')
user_name: Optional[str] = Field(None, title='User Name')
class OutreachRequest(BaseModel):
channel: Optional[str] = Field('email', title='Channel')
lead_ids: List[str] = Field(..., title='Lead Ids')
sequence: Optional[List[Dict[str, Any]]] = Field(None, title='Sequence')
class PermissionCheck(BaseModel):
permission: str = Field(..., title='Permission')
resource_id: Optional[str] = Field(None, title='Resource Id')
user_id: int = Field(..., title='User Id')
class PermissionCreate(BaseModel):
action_id: Optional[str] = Field(None, title='Action Id')
conditions: Optional[str] = Field(None, title='Conditions')
description: Optional[str] = Field(None, title='Description')
id: str = Field(..., title='Id')
name: str = Field(..., title='Name')
resource_id: Optional[str] = Field(None, title='Resource Id')
class PermissionMatrixUpdate(BaseModel):
granted: bool = Field(..., title='Granted')
permission_id: str = Field(..., title='Permission Id')
role_id: str = Field(..., title='Role Id')
class PermissionUpdate(BaseModel):
conditions: Optional[str] = Field(None, title='Conditions')
description: Optional[str] = Field(None, title='Description')
name: Optional[str] = Field(None, title='Name')
class ResourceCreate(BaseModel):
description: Optional[str] = Field(None, title='Description')
id: str = Field(..., title='Id')
is_system_resource: Optional[bool] = Field(False, title='Is System Resource')
name: str = Field(..., title='Name')
parent_resource_id: Optional[str] = Field(None, title='Parent Resource Id')
resource_type: Optional[str] = Field('general', title='Resource Type')
class ResourceUpdate(BaseModel):
description: Optional[str] = Field(None, title='Description')
name: Optional[str] = Field(None, title='Name')
parent_resource_id: Optional[str] = Field(None, title='Parent Resource Id')
resource_type: Optional[str] = Field(None, title='Resource Type')
class RoleCreate(BaseModel):
color: Optional[str] = Field(None, title='Color')
description: Optional[str] = Field(None, title='Description')
hierarchy_level: Optional[int] = Field(0, title='Hierarchy Level')
id: str = Field(..., title='Id')
is_system_role: Optional[bool] = Field(False, title='Is System Role')
name: str = Field(..., title='Name')
parent_role_id: Optional[str] = Field(None, title='Parent Role Id')
class RoleUpdate(BaseModel):
color: Optional[str] = Field(None, title='Color')
description: Optional[str] = Field(None, title='Description')
hierarchy_level: Optional[int] = Field(None, title='Hierarchy Level')
name: Optional[str] = Field(None, title='Name')
parent_role_id: Optional[str] = Field(None, title='Parent Role Id')
class SecurityEventCreate(BaseModel):
action: Optional[str] = Field(None, title='Action')
event_type: str = Field(..., title='Event Type')
metadata: Optional[str] = Field(None, title='Metadata')
resource_id: Optional[str] = Field(None, title='Resource Id')
success: Optional[bool] = Field(True, title='Success')
user_id: Optional[int] = Field(None, title='User Id')
class SmtpTestRequest(BaseModel):
host: str = Field(..., title='Host')
password: str = Field(..., title='Password')
port: int = Field(..., title='Port')
use_ssl: Optional[bool] = Field(False, title='Use Ssl')
use_tls: Optional[bool] = Field(True, title='Use Tls')
username: str = Field(..., title='Username')
class Token(BaseModel):
access_token: str = Field(..., title='Access Token')
token_type: str = Field(..., title='Token Type')
class TokenRequest(BaseModel):
identity: Optional[str] = Field('browser-client', title='Identity')
class ToolExecutionLog(BaseModel):
agent_id: str = Field(..., title='Agent Id')
executed_at: datetime = Field(..., title='Executed At')
id: int = Field(..., title='Id')
input_params: str = Field(..., title='Input Params')
result: str = Field(..., title='Result')
tool_id: int = Field(..., title='Tool Id')
class UpdateSubaccountRequest(BaseModel):
status: str = Field(..., title='Status')
class UserPublic(BaseModel):
email: EmailStr = Field(..., title='Email')
first_name: Optional[str] = Field(None, title='First Name')
id: int = Field(..., title='Id')
is_active: Optional[bool] = Field(True, title='Is Active')
is_superuser: Optional[bool] = Field(False, title='Is Superuser')
last_name: Optional[str] = Field(None, title='Last Name')
username: Optional[str] = Field(None, title='Username')
class UserUpdate(BaseModel):
department: Optional[str] = Field(None, title='Department')
email: Optional[str] = Field(None, title='Email')
email_full_name: Optional[str] = Field(None, title='Email Full Name')
first_name: Optional[str] = Field(None, title='First Name')
imap_email: Optional[str] = Field(None, title='Imap Email')
imap_password: Optional[str] = Field(None, title='Imap Password')
imap_port: Optional[str] = Field(None, title='Imap Port')
imap_server: Optional[str] = Field(None, title='Imap Server')
imap_use_ssl: Optional[str] = Field(None, title='Imap Use Ssl')
imap_username: Optional[str] = Field(None, title='Imap Username')
is_active: Optional[bool] = Field(None, title='Is Active')
last_name: Optional[str] = Field(None, title='Last Name')
password: Optional[str] = Field(None, title='Password')
phone: Optional[str] = Field(None, title='Phone')
position: Optional[str] = Field(None, title='Position')
profile_image: Optional[str] = Field(None, title='Profile Image')
smtp_from_name: Optional[str] = Field(None, title='Smtp From Name')
smtp_password: Optional[str] = Field(None, title='Smtp Password')
smtp_port: Optional[str] = Field(None, title='Smtp Port')
smtp_server: Optional[str] = Field(None, title='Smtp Server')
smtp_use_tls: Optional[str] = Field(None, title='Smtp Use Tls')
smtp_username: Optional[str] = Field(None, title='Smtp Username')
username: Optional[str] = Field(None, title='Username')
class ValidationError(BaseModel):
loc: List[Union[str, int]] = Field(..., title='Location')
msg: str = Field(..., title='Message')
type: str = Field(..., title='Error Type')
class WebhookUpdateRequest(BaseModel):
phone_sid: str = Field(..., title='Phone Sid')
class ApiRoutesAuthUserCreate(BaseModel):
email: str = Field(..., title='Email')
password: str = Field(..., title='Password')
class ApiRoutesRbacUserCreate(BaseModel):
department: Optional[str] = Field(None, title='Department')
email: str = Field(..., title='Email')
email_full_name: Optional[str] = Field(None, title='Email Full Name')
first_name: Optional[str] = Field(None, title='First Name')
imap_email: Optional[str] = Field(None, title='Imap Email')
imap_password: Optional[str] = Field(None, title='Imap Password')
imap_port: Optional[str] = Field(None, title='Imap Port')
imap_server: Optional[str] = Field(None, title='Imap Server')
imap_use_ssl: Optional[str] = Field(None, title='Imap Use Ssl')
imap_username: Optional[str] = Field(None, title='Imap Username')
is_active: Optional[bool] = Field(True, title='Is Active')
is_superuser: Optional[bool] = Field(False, title='Is Superuser')
last_name: Optional[str] = Field(None, title='Last Name')
password: Optional[str] = Field(None, title='Password')
phone: Optional[str] = Field(None, title='Phone')
position: Optional[str] = Field(None, title='Position')
profile_image: Optional[str] = Field(None, title='Profile Image')
smtp_from_name: Optional[str] = Field(None, title='Smtp From Name')
smtp_password: Optional[str] = Field(None, title='Smtp Password')
smtp_port: Optional[str] = Field(None, title='Smtp Port')
smtp_server: Optional[str] = Field(None, title='Smtp Server')
smtp_use_tls: Optional[str] = Field(None, title='Smtp Use Tls')
smtp_username: Optional[str] = Field(None, title='Smtp Username')
username: str = Field(..., title='Username')
class ApiAgentsGetResponse(RootModel[List[Dict[str, Any]]]):
root: List[Dict[str, Any]] = Field(
..., title='Response Read Agents Api Agents Get'
)
class ApiAgentsPostRequest(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiAgentsPostResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiAgentsDefaultGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiAgentsDefaultPutRequest(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiAgentsDefaultPutResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiAgentsMessagePostResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiAgentsStatusGetResponse(RootModel[Optional[Dict[str, str]]]):
root: Optional[Dict[str, str]] = None
class ApiAgentsAgentIdGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiAgentsAgentIdPutRequest(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiAgentsAgentIdPutResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiAgentsAgentIdLogsGetResponse(RootModel[List[ToolExecutionLog]]):
root: List[ToolExecutionLog] = Field(
..., title='Response Read Agent Logs Api Agents Agent Id Logs Get'
)
class ApiAuthQueryPostResponse(RootModel[List[Dict[str, Any]]]):
root: List[Dict[str, Any]] = Field(
..., title='Response Handle Db Query Api Auth Query Post'
)
class ApiContactsGetResponse(RootModel[List[LeadContact]]):
root: List[LeadContact] = Field(
..., title='Response Read Contacts Api Contacts Get'
)
class ApiDashboardDbCampaignsMetricsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiDashboardDbCampaignsMetricsHistoricalDaysGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiDashboardLeadFunnelGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiDashboardSessionTrendsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiDashboardStatsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiDashboardSuggestionStatsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiDashboardSummaryGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiDashboardTagsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiDatabaseQueryPostResponse(RootModel[List[Dict[str, Any]]]):
root: List[Dict[str, Any]] = Field(
..., title='Response Handle Db Query Api Database Query Post'
)
class ApiEmailCountsGetResponse(RootModel[List[Dict[str, Any]]]):
root: List[Dict[str, Any]] = Field(
..., title='Response Get Email Counts Api Email Counts Get'
)
class ApiEmailDraftsGetResponse(RootModel[List[EmailListItem]]):
root: List[EmailListItem] = Field(
..., title='Response List Drafts Api Email Drafts Get'
)
class SortBy(Enum):
name = 'name'
count = 'count'
class ApiEmailFoldersGetResponse(RootModel[List[EmailFolder]]):
root: List[EmailFolder] = Field(
..., title='Response Get Folders Api Email Folders Get'
)
class ApiHealthGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiKnowledgeMetadataDocumentIdPutRequest(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class DocumentIds(RootModel[Optional[List[str]]]):
root: Optional[List[str]] = Field(..., title='Document Ids')
class AgentId(RootModel[Optional[str]]):
root: Optional[str] = Field(..., title='Agent Id')
class KnowledgeFiles(RootModel[Optional[List[str]]]):
root: Optional[List[str]] = Field(..., title='Knowledge Files')
class Tags(RootModel[Optional[List[str]]]):
root: Optional[List[str]] = Field(..., title='Tags')
class Stage(RootModel[Optional[str]]):
root: Optional[str] = Field(
...,
description='Sales stage to filter knowledge (greeting, qualification, pitching, closing, post_sale)',
title='Stage',
)
class BoostSections(RootModel[Optional[List[str]]]):
root: Optional[List[str]] = Field(
...,
description='List of section names to boost in relevance scoring',
title='Boost Sections',
)
class ApiKnowledgeV2IndexPostResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiKnowledgeV2QueryGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class Page(RootModel[Optional[int]]):
root: Optional[int] = Field(..., description='Page number', title='Page')
class Limit(RootModel[Optional[int]]):
root: Optional[int] = Field(
..., description='Number of items per page', title='Limit'
)
class Status(RootModel[Optional[str]]):
root: Optional[str] = Field(..., description='Filter by status', title='Status')
class Name(RootModel[Optional[str]]):
root: Optional[str] = Field(..., description='Filter by company name', title='Name')
class Industry(RootModel[Optional[str]]):
root: Optional[str] = Field(..., description='Filter by industry', title='Industry')
class ApiLeadsAllLeadIdNotesGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsDiscoverGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class Location(RootModel[Optional[str]]):
root: Optional[str] = Field(
..., description='Optional location filter', title='Location'
)
class CompanySize(RootModel[Optional[str]]):
root: Optional[str] = Field(
...,
description="Optional company size filter (e.g., 'startup', 'enterprise')",
title='Company Size',
)
class ApiLeadsPriorityGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsSchemaGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdDeleteResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdPutResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdAnalyzeGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdCompetitorsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdCompetitorsResultsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdContactsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdContactsPostResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdContactsContactIdDeleteResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdContactsContactIdGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdContactsContactIdPutResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdFindContactsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class Role(RootModel[Optional[str]]):
root: Optional[str] = Field(
..., description="Specific role to search for (e.g., 'CEO')", title='Role'
)
class ApiLeadsLeadIdNotesGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdQualificationGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLeadsLeadIdResearchGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class Domain(RootModel[Optional[str]]):
root: Optional[str] = Field(..., title='Domain')
class ApiLeadsLeadIdScoreGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLogGetResponse(RootModel[List[CallLog]]):
root: List[CallLog] = Field(..., title='Response Read Call Logs Api Log Get')
class ApiLogPhonePhoneNumberGetResponse(RootModel[List[CallLog]]):
root: List[CallLog] = Field(
...,
title='Response Read Call Logs By Phone Number Api Log Phone Phone Number Get',
)
class ApiLogReportCallsPostRequest(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLogReportSummaryPostRequest(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiLogSidCallSidGetResponse(RootModel[List[CallLog]]):
root: List[CallLog] = Field(
..., title='Response Read Call Logs By Call Sid Api Log Sid Call Sid Get'
)
class ApiLogUserUserIdGetResponse(RootModel[List[CallLog]]):
root: List[CallLog] = Field(
..., title='Response Read Call Logs By User Api Log User User Id Get'
)
class ApiNotesCallCallSidGetResponse(RootModel[List[CallNote]]):
root: List[CallNote] = Field(
..., title='Response Get Call Notes Api Notes Call Call Sid Get'
)
class ApiNotesUserUserIdGetResponse(RootModel[List[CallNote]]):
root: List[CallNote] = Field(
..., title='Response Get User Notes Api Notes User User Id Get'
)
class ApiRbacRolePermissionsMatrixUpdatePostRequest(
RootModel[List[PermissionMatrixUpdate]]
):
root: List[PermissionMatrixUpdate] = Field(..., title='Updates')
class ApiTrainingClearDeleteResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class Tag(RootModel[Optional[str]]):
root: Optional[str] = Field(..., description='Filter by tag', title='Tag')
class ApiTrainingExportJsonlPostRequest(RootModel[List[str]]):
root: List[str] = Field(..., description='Filter by tags', title='Tags')
class ApiTrainingLogPostRequest(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiTrainingLogPostResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiTrainingPromptsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiTrainingRefinePromptPostRequest(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiTrainingRefinementGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class ApiTrainingSuggestionsGetResponse(BaseModel):
pass
model_config = ConfigDict(
extra='allow',
)
class Limit2(RootModel[Optional[int]]):
root: Optional[int] = Field(..., title='Limit')
class Category(RootModel[Optional[str]]):
root: Optional[str] = Field(..., title='Category')
class StartDate(RootModel[Optional[date]]):
root: Optional[date] = Field(..., title='Start Date')
class EndDate(RootModel[Optional[date]]):
root: Optional[date] = Field(..., title='End Date')
class ApiTwivrMenusPhoneNumberGetResponse(RootModel[List[IVRMenuOut]]):
root: List[IVRMenuOut] = Field(
..., title='Response Get Menus Api Twivr Menus Phone Number Get'
)
class ApiTwivrRoutesMenuIdGetResponse(RootModel[List[IVRRouteOut]]):
root: List[IVRRouteOut] = Field(
..., title='Response Get Routes Api Twivr Routes Menu Id Get'
)
class Token1(RootModel[Optional[str]]):
root: Optional[str] = Field(..., title='Token')
class BodySendEmailWithCustomConfigApiEmailSendCustomPost(BaseModel):
config: Dict[str, Any] = Field(..., title='Config')
test_email: EmailMessage
class BodyTestEmailConfigApiEmailTestPost(BaseModel):
config: Optional[Dict[str, Any]] = Field(None, title='Config')
test_email: EmailMessage
class HTTPValidationError(BaseModel):
detail: Optional[List[ValidationError]] = Field(None, title='Detail')