generated: '2026-08-05' method: derived source: openapi/syllable-sdk-openapi-original.yml summary: schemas: 310 paths: 107 operations: 183 resource_groups: 41 ref_relationships: 143 id_reference_relationships: 100 layering: Data Sources -> Tools + Services -> Prompts -> Agents -> Channels/Targets -> Users (the dependency order Syllable documents in the syllable-cli README). resource_groups: - group: V1 operations: 7 operation_ids: - users_create - users_delete - users_delete_account - users_get_by_email - users_list - users_send_email - users_update - group: agents operations: 7 operation_ids: - agent_create - agent_delete - agent_get_available_voices - agent_get_by_id - agent_list - agent_list_active_labels - agent_update - group: agents.test operations: 1 operation_ids: - send_test_message - group: bridge_phrases operations: 5 operation_ids: - bridge_phrases_create - bridge_phrases_delete - bridge_phrases_get_by_id - bridge_phrases_list - bridge_phrases_update - group: channels operations: 4 operation_ids: - channel_targets_delete - channels_create - channels_list - channels_update - group: channels.targets operations: 5 operation_ids: - available_targets - channel_targets_create - channel_targets_get_by_id - channel_targets_list - channel_targets_update - group: channels.twilio operations: 3 operation_ids: - channels_twilio_create - channels_twilio_get_by_id - channels_twilio_update - group: channels.twilio.numbers operations: 4 operation_ids: - channels_twilio_numbers_a2p_compliance_check - channels_twilio_numbers_add - channels_twilio_numbers_list - channels_twilio_numbers_update - group: conversation-config operations: 2 operation_ids: - get_bridge_phrases_config - update_bridge_phrases_config - group: conversations operations: 1 operation_ids: - conversations_list - group: custom_messages operations: 5 operation_ids: - custom_message_get_by_id - custom_messages_create - custom_messages_delete - custom_messages_list - custom_messages_update - group: dashboards operations: 6 operation_ids: - post_get_dashboard - post_list_dashboard - post_session_events_dashboard - post_session_summary_dashboard - post_session_transfers_dashboard - post_sessions_dashboard - group: data_sources operations: 5 operation_ids: - data_sources_create - data_sources_delete - data_sources_get_by_id - data_sources_list - data_sources_update - group: directory operations: 10 operation_ids: - directory_member_bulk_load - directory_member_create - directory_member_delete - directory_member_download - directory_member_get_by_id - directory_member_history - directory_member_list - directory_member_restore - directory_member_test_extension - directory_member_update - group: events operations: 1 operation_ids: - events_list - group: incidents operations: 6 operation_ids: - incident_create - incident_delete - incident_get_by_id - incident_get_organizations - incident_list - incident_update - group: insights operations: 1 operation_ids: - insights_list - group: insights.folders operations: 8 operation_ids: - insights_folder_create - insights_folder_delete - insights_folder_get_by_id - insights_folder_list - insights_folder_update - insights_folder_upload_file - insights_upload_list_files - insights_upload_move_files - group: insights.tools operations: 7 operation_ids: - insight_tool_get_by_id - insight_tool_get_definitions - insight_tool_list - insights_tool_create - insights_tool_delete - insights_tool_test - insights_tool_update - group: insights.workflows operations: 8 operation_ids: - insights_workflow_activate - insights_workflow_create - insights_workflow_delete - insights_workflow_get_by_id - insights_workflow_inactivate - insights_workflow_list - insights_workflow_queue_work - insights_workflow_update - group: language_groups operations: 6 operation_ids: - language_groups_create - language_groups_create_voice_sample - language_groups_delete - language_groups_get_by_id - language_groups_list - language_groups_update - group: organizations operations: 4 operation_ids: - organizations_create - organizations_delete - organizations_get - organizations_update - group: organizations.sip_ip_ranges operations: 4 operation_ids: - organization_sip_ip_ranges_create - organization_sip_ip_ranges_delete - organization_sip_ip_ranges_list - organization_sip_ip_ranges_update - group: outbound.batches operations: 9 operation_ids: - outbound_batch_add - outbound_batch_create - outbound_batch_delete - outbound_batch_get_by_id - outbound_batch_list - outbound_batch_remove - outbound_batch_results - outbound_batch_update - outbound_batch_upload - group: outbound.campaigns operations: 5 operation_ids: - outbound_campaign_create - outbound_campaign_delete - outbound_campaign_get_by_id - outbound_campaign_list - outbound_campaign_update - group: permissions operations: 1 operation_ids: - permissions_list - group: prompts operations: 7 operation_ids: - prompt_get_supported_llms - prompts_create - prompts_delete - prompts_get_by_id - prompts_history - prompts_list - prompts_update - group: pronunciations operations: 5 operation_ids: - pronunciations_delete_csv - pronunciations_download_csv - pronunciations_get - pronunciations_get_metadata - pronunciations_upload_csv - group: roles operations: 5 operation_ids: - roles_create - roles_delete - roles_get_by_id - roles_list - roles_update - group: services operations: 5 operation_ids: - service_create - service_delete - service_list - service_update - services_get_by_id - group: session_debug operations: 3 operation_ids: - get_session_data_by_session_id - get_session_data_by_sid - get_session_tool_call_result_by_id - group: session_labels operations: 3 operation_ids: - session_label_create - session_label_get_by_id - session_labels_list - group: sessions operations: 4 operation_ids: - generate_session_recording_urls - session_get_by_id - session_recording_stream - sessions_list - group: sessions.full-summary operations: 1 operation_ids: - session_full_summary_get_by_id - group: sessions.latency operations: 1 operation_ids: - session_latency_get_by_id - group: sessions.timeline operations: 1 operation_ids: - session_timeline_get_by_id - group: sessions.transcript operations: 1 operation_ids: - session_transcript_get_by_id - group: takeouts operations: 3 operation_ids: - takeouts_create - takeouts_get_by_job_id - takeouts_get_file - group: tools operations: 6 operation_ids: - tool_create - tool_delete - tool_get_by_name - tool_history - tool_list - tool_update - group: users operations: 7 operation_ids: - users_create - users_delete - users_delete_account - users_get_by_email - users_list - users_send_email - users_update - group: voice_groups operations: 6 operation_ids: - voice_groups_create - voice_groups_create_voice_sample - voice_groups_delete - voice_groups_get_by_id - voice_groups_list - voice_groups_update relationships: - from: AgentCreate to: AgentToolDefaults kind: has_many via: prompt_tool_defaults - from: AgentLanguage to: LanguageCode kind: has_one via: code - from: AgentResponse to: AgentToolDefaults kind: has_many via: prompt_tool_defaults - from: AgentToolDefaults to: AgentToolFieldDefault kind: has_many via: default_values - from: AgentUpdate to: AgentToolDefaults kind: has_many via: prompt_tool_defaults - from: AgentVoice to: AgentVoiceDisplayName kind: has_one via: display_name - from: AgentVoice to: AgentVoiceGender kind: has_one via: gender - from: AgentVoice to: AgentVoiceModel kind: has_one via: model - from: AgentVoice to: TtsProvider kind: has_one via: provider - from: AgentVoice to: AgentLanguage kind: has_many via: supported_languages - from: AgentVoice to: AgentVoiceVarName kind: has_one via: var_name - from: BatchDetails to: BatchStatus kind: has_one via: status - from: BridgePhrasesConfigPayload to: lib__database__dao__organization__bridge_phrases_dao__BridgePhraseMessages kind: has_one via: phrases - from: BridgePhrasesConfigPayload to: ToolBridgePhraseConfig kind: has_many via: tools - from: BridgePhrasesCreateRequest to: BridgePhrasesConfigPayload kind: has_one via: config - from: BridgePhrasesResponse to: BridgePhrasesConfigPayload kind: has_one via: config - from: BridgePhrasesUpdateRequest to: BridgePhrasesConfigPayload kind: has_one via: config - from: CallResult to: CallResultSaveMapping kind: has_many via: save - from: CaseExpression to: ConditionalValue kind: has_many via: case - from: Channel to: ChannelServices kind: has_one via: channel_service - from: ChannelTargetCreateRequest to: TargetModes kind: has_one via: target_mode - from: ChannelTargetResponse to: TargetModes kind: has_one via: target_mode - from: ChannelTargetUpdateRequest to: TargetModes kind: has_one via: target_mode - from: CommunicationBatch to: BatchStatus kind: has_one via: status - from: CommunicationRequestResult to: RequestStatus kind: has_one via: request_status - from: CustomMessageCreateRequest to: CustomMessageRule kind: has_many via: rules - from: CustomMessageCreateRequest to: CustomMessageType kind: has_one via: type - from: CustomMessageResponse to: CustomMessageRule kind: has_many via: rules - from: CustomMessageResponse to: CustomMessageType kind: has_one via: type - from: CustomMessageUpdateRequest to: CustomMessageRule kind: has_many via: rules - from: CustomMessageUpdateRequest to: CustomMessageType kind: has_one via: type - from: DaoToolResponse to: ToolDefinition kind: has_one via: definition - from: DirectoryMemberHistoryResponse to: DirectoryExtension kind: has_many via: extensions - from: EventTask to: EventTaskEvents kind: has_one via: 'True' - from: ExpressionTask to: ExpressionTaskEvents kind: has_one via: 'True' - from: ExpressionTask to: InputParameter kind: has_many via: inputs - from: HTTPValidationError to: ValidationError kind: has_many via: detail - from: InsightWorkflowActivate to: InsightWorkflowEstimate kind: has_one via: estimate - from: InsightWorkflowInput to: InsightWorkflowCondition kind: has_one via: conditions - from: InsightWorkflowOutput to: InsightWorkflowCondition kind: has_one via: conditions - from: InsightWorkflowOutput to: InsightWorkflowEstimate kind: has_one via: estimate - from: InsightWorkflowOutput to: InsightToolOutput kind: has_many via: insight_tools - from: InspectLatencyResponse to: SummaryEntry kind: has_many via: summary - from: InspectLatencyResponse to: LatencyEntry kind: has_many via: timeline - from: InternalTool to: ToolFunction kind: has_one via: function - from: LanguageConfig to: LanguageCode kind: has_one via: language_code - from: LanguageConfig to: AgentVoiceDisplayName kind: has_one via: voice_display_name - from: LanguageConfig to: TtsProvider kind: has_one via: voice_provider - from: LanguageGroupCreateRequest to: LanguageConfig kind: has_many via: language_configs - from: LanguageGroupResponse to: LanguageConfig kind: has_many via: language_configs - from: LanguageGroupUpdateRequest to: LanguageConfig kind: has_many via: language_configs - from: LanguageSampleCreateRequest to: LanguageCode kind: has_one via: language_code - from: LanguageSampleCreateRequest to: AgentVoiceDisplayName kind: has_one via: voice_display_name - from: LanguageSampleCreateRequest to: TtsProvider kind: has_one via: voice_provider - from: LatencyEntry to: LatencyCategory kind: has_one via: category - from: LatencyEntry to: LatencyUnitType kind: has_one via: unit_type - from: ListResponse_AgentResponse_ to: AgentResponse kind: has_many via: items - from: ListResponse_AvailableTarget_ to: AvailableTarget kind: has_many via: items - from: ListResponse_BridgePhrasesResponse_ to: BridgePhrasesResponse kind: has_many via: items - from: ListResponse_ChannelTargetResponse_ to: ChannelTargetResponse kind: has_many via: items - from: ListResponse_Channel_ to: Channel kind: has_many via: items - from: ListResponse_CommunicationBatch_ to: CommunicationBatch kind: has_many via: items - from: ListResponse_Conversation_ to: Conversation kind: has_many via: items - from: ListResponse_CustomMessageResponse_ to: CustomMessageResponse kind: has_many via: items - from: ListResponse_DashboardResponse_ to: DashboardResponse kind: has_many via: items - from: ListResponse_DataSourceMetadataResponse_ to: DataSourceMetadataResponse kind: has_many via: items - from: ListResponse_DirectoryMemberHistoryResponse_ to: DirectoryMemberHistoryResponse kind: has_many via: items - from: ListResponse_DirectoryMember_ to: DirectoryMember kind: has_many via: items - from: ListResponse_Event_ to: Event kind: has_many via: items - from: ListResponse_IncidentResponse_ to: IncidentResponse kind: has_many via: items - from: ListResponse_InsightToolOutput_ to: InsightToolOutput kind: has_many via: items - from: ListResponse_InsightWorkflowOutput_ to: InsightWorkflowOutput kind: has_many via: items - from: ListResponse_InsightsFolder_ to: InsightsFolder kind: has_many via: items - from: ListResponse_InsightsOutput_ to: InsightsOutput kind: has_many via: items - from: ListResponse_InsightsUploadFile_ to: InsightsUploadFile kind: has_many via: items - from: ListResponse_LanguageGroupResponse_ to: LanguageGroupResponse kind: has_many via: items - from: ListResponse_OutboundCampaign_ to: OutboundCampaign kind: has_many via: items - from: ListResponse_PromptResponse_ to: PromptResponse kind: has_many via: items - from: ListResponse_RoleResponse_ to: RoleResponse kind: has_many via: items - from: ListResponse_ServiceResponse_ to: ServiceResponse kind: has_many via: items - from: ListResponse_SessionLabel_ to: SessionLabel kind: has_many via: items - from: ListResponse_Session_ to: Session kind: has_many via: items - from: ListResponse_ToolHistoryResponse_ to: ToolHistoryResponse kind: has_many via: items - from: ListResponse_ToolResponse_ to: ToolResponse kind: has_many via: items - from: ListResponse_UserResponse_ to: UserResponse kind: has_many via: items - from: ListResponse_VoiceGroupResponse_ to: VoiceGroupResponse kind: has_many via: items - from: OrganizationChannelCreateRequest to: ChannelServices kind: has_one via: channel_service - from: OrganizationChannelCreateRequest to: OrganizationChannelConfig kind: has_one via: config - from: OrganizationChannelUpdateRequest to: ChannelServices kind: has_one via: channel_service - from: OrganizationChannelUpdateRequest to: OrganizationChannelConfig kind: has_one via: config - from: OrganizationSipIpRange to: OrganizationSipIpRangeType kind: has_one via: type - from: OrganizationSipIpRangeCreate to: OrganizationSipIpRangeType kind: has_one via: type - from: OutboundCampaign to: DaysOfWeek kind: has_many via: active_days - from: OutboundCampaignInput to: DaysOfWeek kind: has_many via: active_days - from: OutboundCampaignInput to: OutboundCampaignWebhookInput kind: has_many via: webhooks - from: OutboundCampaignWebhookInput to: ChannelManagerStatus kind: has_many via: trigger_statuses - from: OutboundCampaignWebhookResponse to: ChannelManagerStatus kind: has_many via: trigger_statuses - from: PermissionGroupResponse to: PermissionResponse kind: has_many via: permissions - from: PromptCreateRequest to: PromptLlmConfig kind: has_one via: llm_config - from: PromptHistory to: PromptHistoryLinkedTool kind: has_many via: linked_tools - from: PromptLlmConfig to: PromptLlmProvider kind: has_one via: provider - from: PromptResponse to: PromptLlmConfig kind: has_one via: llm_config - from: PromptUpdateRequest to: PromptLlmConfig kind: has_one via: llm_config - from: PronunciationOverride to: MatchType kind: has_one via: match_type - from: PronunciationOverridesDictionary to: DictionaryMetadata kind: has_one via: metadata - from: PronunciationOverridesDictionary to: PronunciationOverride kind: has_many via: pronunciations - from: SessionData to: SessionMessage kind: has_many via: messages - from: SessionMessage to: DialogMessage kind: has_one via: dialog - from: SessionMessage to: DialogRole kind: has_one via: role - from: SessionMessage to: DialogToolCall kind: has_many via: tool_calls - from: SessionTimelineResponse to: TimelineEvent kind: has_many via: events - from: SessionTranscriptionResponse to: SessionAction kind: has_many via: actions - from: SessionTranscriptionResponse to: SessionText kind: has_many via: transcription - from: StaticToolParameter to: StaticToolParameterType kind: has_one via: type - from: Step to: StepEventActions kind: has_one via: 'True' - from: Step to: InputParameter kind: has_many via: inputs - from: Step to: StepTools kind: has_one via: tools - from: StepsTask to: Step kind: has_many via: steps - from: SummaryEntry to: LatencyCategory kind: has_one via: category - from: SupportedLlm to: PromptLlmProvider kind: has_one via: provider - from: TakeoutStatusResponse to: TakeoutRequestStatus kind: has_one via: status - from: TargetFilterRule to: FilterOp kind: has_one via: op - from: TargetFilters to: TargetFilterRule kind: has_many via: rules - from: TimelineEvent to: TimelineEventKind kind: has_one via: kind - from: ToolBridgePhraseConfig to: lib__database__dao__organization__bridge_phrases_dao__BridgePhraseMessages kind: has_one via: phrases - from: ToolCreateRequest to: ToolDefinition kind: has_one via: definition - from: ToolDefinition to: InternalTool kind: has_one via: tool - from: ToolDetailResponse to: ToolDefinition kind: has_one via: definition - from: ToolHistoryResponse to: ToolDefinition kind: has_one via: definition - from: ToolHttpEndpoint to: ToolArgumentLocation kind: has_one via: argument_location - from: ToolHttpEndpoint to: ToolHttpMethod kind: has_one via: method - from: ToolParameterDefault to: ToolParameterTransform kind: has_one via: transform - from: ToolResponse to: ToolDefinition kind: has_one via: definition - from: ToolUpdateRequest to: ToolDefinition kind: has_one via: definition - from: TwilioChannelCreateRequest to: TwilioChannelConfigCreate kind: has_one via: config - from: TwilioListNumbersResponse to: TwilioPhoneNumber kind: has_many via: phone_numbers - from: UserResponse to: UserActivityStatus kind: has_one via: activity_status - from: VoiceGroupCreateRequest to: LanguageConfig kind: has_many via: language_configs - from: VoiceGroupResponse to: LanguageConfig kind: has_many via: language_configs - from: VoiceGroupUpdateRequest to: LanguageConfig kind: has_many via: language_configs - from: VoiceSampleCreateRequest to: LanguageCode kind: has_one via: language_code - from: VoiceSampleCreateRequest to: AgentVoiceDisplayName kind: has_one via: voice_display_name - from: VoiceSampleCreateRequest to: TtsProvider kind: has_one via: voice_provider id_references: - from: AgentCreate to: bridge_phrases kind: belongs_to via: bridge_phrases_id - from: AgentCreate to: custom_message kind: belongs_to via: custom_message_id - from: AgentCreate to: language_group kind: belongs_to via: language_group_id - from: AgentCreate to: prompt kind: belongs_to via: prompt_id - from: AgentResponse to: bridge_phrases kind: belongs_to via: bridge_phrases_id - from: AgentResponse to: custom_message kind: belongs_to via: custom_message_id - from: AgentResponse to: language_group kind: belongs_to via: language_group_id - from: AgentResponse to: prompt kind: belongs_to via: prompt_id - from: AgentUpdate to: bridge_phrases kind: belongs_to via: bridge_phrases_id - from: AgentUpdate to: custom_message kind: belongs_to via: custom_message_id - from: AgentUpdate to: language_group kind: belongs_to via: language_group_id - from: AgentUpdate to: prompt kind: belongs_to via: prompt_id - from: AvailableTarget to: channel kind: belongs_to via: channel_id - from: AvailableTarget to: organization kind: belongs_to via: organization_id - from: BatchDetails to: batch kind: belongs_to via: batch_id - from: BatchDetails to: campaign kind: belongs_to via: campaign_id - from: BatchDetails to: dispatch kind: belongs_to via: dispatch_id - from: Body_organizations_create to: saml_provider kind: belongs_to via: saml_provider_id - from: Body_organizations_update to: saml_provider kind: belongs_to via: saml_provider_id - from: ChannelTargetCreateRequest to: agent kind: belongs_to via: agent_id - from: ChannelTargetCreateRequest to: channel kind: belongs_to via: channel_id - from: ChannelTargetResponse to: agent kind: belongs_to via: agent_id - from: ChannelTargetResponse to: channel kind: belongs_to via: channel_id - from: ChannelTargetUpdateRequest to: agent kind: belongs_to via: agent_id - from: ChannelTargetUpdateRequest to: channel kind: belongs_to via: channel_id - from: CommunicationBatch to: batch kind: belongs_to via: batch_id - from: CommunicationBatch to: campaign kind: belongs_to via: campaign_id - from: CommunicationBatch to: dispatch kind: belongs_to via: dispatch_id - from: CommunicationBatchInput to: batch kind: belongs_to via: batch_id - from: CommunicationBatchInput to: campaign kind: belongs_to via: campaign_id - from: CommunicationRequest to: reference kind: belongs_to via: reference_id - from: CommunicationRequestResult to: conversation kind: belongs_to via: conversation_id - from: CommunicationRequestResult to: reference kind: belongs_to via: reference_id - from: CommunicationRequestResult to: session kind: belongs_to via: session_id - from: Conversation to: agent kind: belongs_to via: agent_id - from: Conversation to: conversation kind: belongs_to via: conversation_id - from: Conversation to: prompt kind: belongs_to via: prompt_id - from: CreateTakeoutResponse to: job kind: belongs_to via: job_id - from: DaoToolResponse to: service kind: belongs_to via: service_id - from: Dashboard to: embedded kind: belongs_to via: embedded_id - from: DashboardTokenResponse to: embedded kind: belongs_to via: embedded_id - from: DialogToolCall to: tool_call kind: belongs_to via: tool_call_id - from: DirectoryMemberHistoryResponse to: directory_member kind: belongs_to via: directory_member_id - from: Event to: conversation kind: belongs_to via: conversation_id - from: Event to: session kind: belongs_to via: session_id - from: Event to: source kind: belongs_to via: source_id - from: Event to: user kind: belongs_to via: user_id - from: IncidentCreateRequest to: organization kind: belongs_to via: organization_id - from: IncidentCreateRequest to: sub_organization kind: belongs_to via: sub_organization_id - from: IncidentResponse to: organization kind: belongs_to via: organization_id - from: IncidentResponse to: sub_organization kind: belongs_to via: sub_organization_id - from: IncidentUpdateRequest to: organization kind: belongs_to via: organization_id - from: IncidentUpdateRequest to: sub_organization kind: belongs_to via: sub_organization_id - from: InsightToolInput to: insight_tool_definition kind: belongs_to via: insight_tool_definition_id - from: InsightToolOutput to: insight_tool_definition kind: belongs_to via: insight_tool_definition_id - from: InsightToolTestInput to: session kind: belongs_to via: session_id - from: InsightToolTestInput to: upload_file kind: belongs_to via: upload_file_id - from: InsightsFolderFileMove to: destination_folder kind: belongs_to via: destination_folder_id - from: InsightsOutput to: insight_tool kind: belongs_to via: insight_tool_id - from: InsightsOutput to: session kind: belongs_to via: session_id - from: InsightsOutput to: upload_file kind: belongs_to via: upload_file_id - from: InsightsOutput to: workflow kind: belongs_to via: workflow_id - from: InsightsUploadFile to: call kind: belongs_to via: call_id - from: InsightsUploadFile to: folder kind: belongs_to via: folder_id - from: InspectLatencyResponse to: session kind: belongs_to via: session_id - from: OrganizationResponse to: saml_provider kind: belongs_to via: saml_provider_id - from: OrganizationSipIpRange to: organization kind: belongs_to via: organization_id - from: OutboundCampaign to: agent kind: belongs_to via: agent_id - from: OutboundCampaign to: caller kind: belongs_to via: caller_id - from: OutboundCampaignInput to: caller kind: belongs_to via: caller_id - from: PromptCreateRequest to: session_end_tool kind: belongs_to via: session_end_tool_id - from: PromptHistory to: prompt kind: belongs_to via: prompt_id - from: PromptHistoryLinkedTool to: tool kind: belongs_to via: tool_id - from: PromptResponse to: session_end_tool kind: belongs_to via: session_end_tool_id - from: PromptUpdateRequest to: session_end_tool kind: belongs_to via: session_end_tool_id - from: Session to: agent kind: belongs_to via: agent_id - from: Session to: conversation kind: belongs_to via: conversation_id - from: Session to: prompt kind: belongs_to via: prompt_id - from: Session to: session kind: belongs_to via: session_id - from: Session to: session_label kind: belongs_to via: session_label_id - from: SessionData to: session kind: belongs_to via: session_id - from: SessionLabel to: session kind: belongs_to via: session_id - from: SessionLabelCreate to: session kind: belongs_to via: session_id - from: SessionRecordingResponse to: session kind: belongs_to via: session_id - from: SessionTimelineResponse to: session kind: belongs_to via: session_id - from: SessionTranscriptionResponse to: session kind: belongs_to via: session_id - from: TakeoutStatusResponse to: job kind: belongs_to via: job_id - from: TestMessage to: agent kind: belongs_to via: agent_id - from: TestMessage to: test kind: belongs_to via: test_id - from: TestMessageResponse to: agent kind: belongs_to via: agent_id - from: TestMessageResponse to: test kind: belongs_to via: test_id - from: ToolCreateRequest to: service kind: belongs_to via: service_id - from: ToolDetailResponse to: service kind: belongs_to via: service_id - from: ToolHistoryResponse to: service kind: belongs_to via: service_id - from: ToolHistoryResponse to: tool kind: belongs_to via: tool_id - from: ToolResponse to: service kind: belongs_to via: service_id - from: ToolUpdateRequest to: service kind: belongs_to via: service_id - from: UserCreateRequest to: role kind: belongs_to via: role_id - from: UserResponse to: role kind: belongs_to via: role_id - from: UserUpdateRequest to: role kind: belongs_to via: role_id