composio_sdk/models/mod.rs
1//! Data models for Composio API
2//!
3//! This module contains all request and response models for the Composio Tool Router API,
4//! as well as enums for various API types.
5//!
6//! # Organization
7//!
8//! - [`request`] - Request models for API calls
9//! - [`response`] - Response models from API calls
10//! - [`enums`] - Enums for meta tool slugs, tag types, and auth schemes
11//!
12//! # Examples
13//!
14//! ```rust
15//! use composio_sdk::models::{SessionConfig, ToolkitFilter, MetaToolSlug};
16//!
17//! // Create a session configuration
18//! let config = SessionConfig {
19//! user_id: "user_123".to_string(),
20//! toolkits: Some(ToolkitFilter::Enable(vec!["github".to_string()])),
21//! auth_configs: None,
22//! connected_accounts: None,
23//! manage_connections: Some(true),
24//! tools: None,
25//! tags: None,
26//! workbench: None,
27//! };
28//! ```
29
30pub mod auth_configs;
31pub mod base;
32pub mod cli;
33pub mod connected_accounts;
34pub mod custom_tools;
35pub mod enums;
36pub mod files;
37pub mod internal;
38pub mod link;
39pub mod mcp;
40pub mod migration;
41pub mod modifiers;
42pub mod project;
43pub mod request;
44pub mod response;
45pub mod telemetry;
46pub mod toolkits;
47pub mod tools;
48pub mod triggers;
49pub mod versioning;
50pub mod webhook_events;
51
52// ============================================================================
53// Base Resources
54// ============================================================================
55
56/// Base resource trait
57pub use base::Resource;
58
59/// Base resource structure
60pub use base::BaseResource;
61
62/// Telemetry context
63pub use base::TelemetryContext;
64
65/// Environment type
66pub use base::Environment;
67
68// ============================================================================
69// Auth Configs
70// ============================================================================
71
72// Note: AuthConfigs resource is pending full HTTP client integration
73
74/// Auth config list parameters
75pub use auth_configs::AuthConfigListParams;
76
77/// Auth config list response
78pub use auth_configs::AuthConfigListResponse;
79
80/// Auth config information
81pub use auth_configs::AuthConfigInfo;
82
83/// Auth config create parameters
84pub use auth_configs::AuthConfigCreateParams;
85
86/// Auth config options
87pub use auth_configs::AuthConfigOptions;
88
89/// Auth config create response
90pub use auth_configs::AuthConfigCreateResponse;
91
92/// Auth config
93pub use auth_configs::AuthConfig;
94
95/// Auth config retrieve response
96pub use auth_configs::AuthConfigRetrieveResponse;
97
98/// Auth config update parameters
99pub use auth_configs::AuthConfigUpdateParams;
100
101/// Default credentials
102pub use auth_configs::DefaultCredentials;
103
104/// Auth config update response
105pub use auth_configs::AuthConfigUpdateResponse;
106
107/// Auth config status enum
108pub use auth_configs::AuthConfigStatus;
109
110/// Auth config delete response
111pub use auth_configs::AuthConfigDeleteResponse;
112
113/// Auth config status update response
114pub use auth_configs::AuthConfigStatusUpdateResponse;
115
116// ============================================================================
117// CLI
118// ============================================================================
119
120/// CLI session status.
121pub use cli::CliSessionStatus;
122
123/// CLI linked account payload.
124pub use cli::CliLinkedAccount;
125
126/// CLI get-session params.
127pub use cli::CliGetSessionParams;
128
129/// CLI create-session response.
130pub use cli::CliCreateSessionResponse;
131
132/// CLI get-session response.
133pub use cli::CliGetSessionResponse;
134
135// ============================================================================
136// Connected Accounts
137// ============================================================================
138
139// Note: ConnectedAccounts resource is pending full HTTP client integration
140
141/// Connection request
142pub use connected_accounts::ConnectionRequest;
143
144/// Connection status
145pub use connected_accounts::ConnectionStatus;
146
147/// Connection error
148pub use connected_accounts::ConnectionError;
149
150/// Authentication scheme
151pub use connected_accounts::AuthScheme;
152
153/// Connection state
154pub use connected_accounts::ConnectionState;
155
156/// Auth scheme helper
157pub use connected_accounts::AuthSchemeHelper;
158
159/// Global auth scheme helper instance
160pub use connected_accounts::AUTH_SCHEME;
161
162/// Initiate connection parameters
163pub use connected_accounts::InitiateConnectionParams;
164
165/// Link connection parameters
166pub use connected_accounts::LinkConnectionParams;
167
168/// Connected account list parameters
169pub use connected_accounts::ConnectedAccountListParams;
170
171/// Connected account information
172pub use connected_accounts::ConnectedAccountInfo;
173
174/// Connected account list response
175pub use connected_accounts::ConnectedAccountListResponse;
176
177/// Connected account refresh parameters
178pub use connected_accounts::ConnectedAccountRefreshParams;
179
180/// Connected account refresh response
181pub use connected_accounts::ConnectedAccountRefreshResponse;
182
183/// Connected account update status parameters
184pub use connected_accounts::ConnectedAccountUpdateStatusParams;
185
186/// Connected account delete response
187pub use connected_accounts::ConnectedAccountDeleteResponse;
188
189/// Direct connected account link create params
190pub use link::ConnectedAccountLinkCreateParams;
191
192/// Direct connected account link create response
193pub use link::ConnectedAccountLinkCreateResponse;
194
195/// Connected account update status response
196pub use connected_accounts::ConnectedAccountUpdateStatusResponse;
197
198/// Default wait timeout for connections
199pub use connected_accounts::DEFAULT_WAIT_TIMEOUT;
200
201// ============================================================================
202// Tools
203// ============================================================================
204
205// Note: Tools resource is pending full HTTP client integration
206
207/// Tool execution response
208pub use tools::ToolExecutionResponse;
209
210/// Tool execution parameters
211pub use tools::ToolExecuteParams as ToolsExecuteParams;
212
213/// Custom authentication parameters for tools
214pub use tools::CustomAuthParams as ToolsCustomAuthParams;
215
216/// Custom connection data for tools
217pub use tools::CustomConnectionData as ToolsCustomConnectionData;
218
219/// Tool list parameters
220pub use tools::ToolListParams;
221
222/// Tool information
223pub use tools::ToolInfo;
224
225/// Toolkit reference
226pub use tools::ToolkitRef;
227
228/// Tool list response
229pub use tools::ToolListResponse;
230
231/// Tool enum response
232pub use tools::ToolRetrieveEnumResponse;
233
234/// Tool proxy parameters
235pub use tools::ToolProxyParams;
236
237/// HTTP method
238pub use tools::HttpMethod;
239
240/// Proxy parameter
241pub use tools::ProxyParameter;
242
243/// Parameter location
244pub use tools::ParameterLocation;
245
246/// Tool proxy response
247pub use tools::ToolProxyResponse;
248
249/// Tool input generation parameters
250pub use tools::ToolInputGenerationParams;
251
252/// Tool input generation response
253pub use tools::ToolInputGenerationResponse;
254
255/// Custom tool definition (legacy, use custom_tools module instead)
256pub use tools::CustomToolDefinition;
257
258/// Custom tool execution request (legacy, use custom_tools module instead)
259pub use tools::CustomToolExecutionRequest;
260
261// ============================================================================
262// Custom Tools (New Implementation)
263// ============================================================================
264
265/// Custom tool with execution logic
266pub use custom_tools::CustomTool;
267
268/// Custom tools registry for managing user-defined tools
269pub use custom_tools::CustomToolsRegistry;
270
271/// Trait for executing proxy requests
272pub use custom_tools::ExecuteRequestFn;
273
274/// Trait for custom tool executors
275pub use custom_tools::CustomToolExecutor;
276
277// ============================================================================
278// Modifiers
279// ============================================================================
280
281/// Tool execution parameters
282pub use modifiers::ToolExecuteParams;
283
284/// Custom authentication parameters
285pub use modifiers::CustomAuthParams;
286
287/// Custom connection data
288pub use modifiers::CustomConnectionData;
289
290/// Modifier type enumeration
291pub use modifiers::ModifierType;
292
293/// Before execute trait
294pub use modifiers::BeforeExecute;
295
296/// After execute trait
297pub use modifiers::AfterExecute;
298
299/// Schema modifier trait
300pub use modifiers::SchemaModifier;
301
302/// Before execute meta trait
303pub use modifiers::BeforeExecuteMeta;
304
305/// After execute meta trait
306pub use modifiers::AfterExecuteMeta;
307
308/// Modifier structure
309pub use modifiers::Modifier;
310
311/// Collection of modifiers
312pub use modifiers::Modifiers;
313
314/// Apply before execute modifiers
315pub use modifiers::apply_before_execute_modifiers;
316
317/// Apply after execute modifiers
318pub use modifiers::apply_after_execute_modifiers;
319
320/// Apply schema modifiers
321pub use modifiers::apply_schema_modifiers;
322
323/// Apply before execute meta modifiers
324pub use modifiers::apply_before_execute_meta_modifiers;
325
326/// Apply after execute meta modifiers
327pub use modifiers::apply_after_execute_meta_modifiers;
328
329// ============================================================================
330// Telemetry
331// ============================================================================
332
333/// Telemetry data structure
334pub use telemetry::TelemetryData;
335
336/// Error data for telemetry
337pub use telemetry::ErrorData;
338
339/// Source data for telemetry
340pub use telemetry::SourceData;
341
342/// Metadata for telemetry
343pub use telemetry::Metadata;
344
345/// Event type enumeration
346pub use telemetry::EventType;
347
348/// Event tuple
349pub use telemetry::Event;
350
351/// Push telemetry event
352pub use telemetry::push_event;
353
354/// Create telemetry event
355pub use telemetry::create_event;
356
357// ============================================================================
358// File Handling
359// ============================================================================
360
361/// File upload functionality
362pub use files::FileUploadable;
363
364/// File download functionality
365pub use files::FileDownloadable;
366
367/// File helper for schema processing
368pub use files::FileHelper;
369
370/// File list query parameters.
371pub use files::FileListParams;
372
373/// File list item.
374pub use files::FileListItem;
375
376/// File list response.
377pub use files::FileListResponse;
378
379/// File upload request parameters.
380pub use files::FileCreatePresignedUrlParams;
381
382/// File upload metadata.
383pub use files::FileCreatePresignedUrlMetadata;
384
385/// File storage backend.
386pub use files::FileStorageBackend;
387
388/// File upload response
389pub use files::FileUploadResponse;
390
391/// File upload response alias for endpoint parity.
392pub use files::FileCreatePresignedUrlResponse;
393
394// ============================================================================
395// Internal SDK
396// ============================================================================
397
398/// Internal SDK resource
399pub use internal::Internal;
400
401/// SDK realtime credentials response
402pub use internal::SDKRealtimeCredentialsResponse;
403
404// ============================================================================
405// Migration
406// ============================================================================
407
408/// Migration resource type for UUID conversion.
409pub use migration::MigrationResourceType;
410
411/// Migration get-nanoid query parameters.
412pub use migration::MigrationGetNanoIdParams;
413
414/// Migration get-nanoid response.
415pub use migration::MigrationGetNanoIdResponse;
416
417// ============================================================================
418// MCP (Model Context Protocol)
419// ============================================================================
420
421/// MCP toolkit configuration
422pub use mcp::MCPToolkitConfig;
423
424/// MCP server instance
425pub use mcp::MCPServerInstance;
426
427/// Complete MCP server information
428pub use mcp::MCPItem;
429
430/// Paginated MCP list response
431pub use mcp::MCPListResponse;
432
433/// MCP create response
434pub use mcp::MCPCreateResponse;
435
436/// MCP update response
437pub use mcp::MCPUpdateResponse;
438
439/// MCP delete response
440pub use mcp::MCPDeleteResponse;
441
442/// MCP generate URL response
443pub use mcp::MCPGenerateUrlResponse;
444
445/// MCP app-scoped list response
446pub use mcp::MCPRetrieveAppResponse;
447
448/// MCP custom create response
449pub use mcp::MCPCustomCreateResponse;
450
451/// MCP create parameters
452pub use mcp::MCPCreateParams;
453
454/// MCP update parameters
455pub use mcp::MCPUpdateParams;
456
457/// MCP list parameters
458pub use mcp::MCPListParams;
459
460/// MCP generate URL parameters
461pub use mcp::MCPGenerateUrlParams;
462
463/// MCP custom create parameters
464pub use mcp::MCPCustomCreateParams;
465
466/// MCP app-scoped list query parameters
467pub use mcp::MCPRetrieveAppParams;
468
469// ============================================================================
470// Project
471// ============================================================================
472
473/// Project log visibility setting
474pub use project::ProjectLogVisibilitySetting;
475
476/// Project config response
477pub use project::ProjectConfigResponse;
478
479/// Project config update parameters
480pub use project::ProjectConfigUpdateParams;
481
482// ============================================================================
483// Enums
484// ============================================================================
485
486/// Meta tool slugs for the 5 core Composio meta tools
487pub use enums::MetaToolSlug;
488
489/// Tag types for filtering tools by behavior hints
490pub use enums::TagType;
491
492// Note: AuthScheme is now exported from connected_accounts module
493
494// ============================================================================
495// Versioning Types
496// ============================================================================
497
498/// Toolkit version type
499pub use versioning::ToolkitVersion;
500
501/// Map of toolkit versions
502pub use versioning::ToolkitVersions;
503
504/// Toolkit version parameter for configuration
505pub use versioning::ToolkitVersionParam;
506
507/// Constant for "latest" version
508pub use versioning::TOOLKIT_LATEST_VERSION;
509
510// ============================================================================
511// Request Models
512// ============================================================================
513
514/// Configuration for creating a Tool Router session
515pub use request::SessionConfig;
516
517/// Configuration for connection management
518pub use request::ManageConnectionsConfig;
519
520/// Toolkit filter for enabling or disabling specific toolkits
521pub use request::ToolkitFilter;
522
523/// Configuration for per-toolkit tool filtering
524pub use request::ToolsConfig;
525
526/// Tool filter for a specific toolkit
527pub use request::ToolFilter;
528
529/// Configuration for tag-based tool filtering
530pub use request::TagsConfig;
531
532/// Configuration for workbench execution
533pub use request::WorkbenchConfig;
534
535/// Configuration for assistive prompt generation (experimental)
536pub use request::AssistivePromptConfig;
537
538/// Experimental configuration for Tool Router sessions
539pub use request::ExperimentalConfig;
540
541/// Request to execute a tool
542pub use request::ToolExecutionRequest;
543
544/// Request to execute a meta tool
545pub use request::MetaToolExecutionRequest;
546
547/// Request to create an authentication link
548pub use request::LinkRequest;
549
550// Note: AuthConfigCreateParams, AuthConfigListParams, and AuthConfigUpdateParams
551// are now exported from auth_configs module with more complete implementations
552
553/// Authentication configuration data (legacy, use auth_configs module)
554pub use request::AuthConfigData;
555
556/// Parameters for creating a connected account
557pub use request::ConnectedAccountCreateParams;
558
559/// Reference to an authentication configuration
560pub use request::AuthConfigReference;
561
562/// Connection data for creating a connected account
563pub use request::ConnectionData;
564
565// Note: ConnectedAccountListParams is now exported from connected_accounts module
566
567// Note: ToolProxyParams is now exported from tools module
568
569// ============================================================================
570// Response Models
571// ============================================================================
572
573/// Response from session creation
574pub use response::SessionResponse;
575
576/// MCP server information
577pub use response::McpInfo;
578
579/// Tool schema information
580pub use response::ToolSchema;
581
582// Note: ToolExecutionResponse is now exported from tools module
583
584/// Response from meta tool execution
585pub use response::MetaToolExecutionResponse;
586
587/// Response from listing toolkits
588pub use toolkits::ToolkitListResponse;
589
590/// Information about a toolkit
591pub use toolkits::ToolkitItem as ToolkitInfo;
592
593/// Metadata about a toolkit
594pub use toolkits::ToolkitMeta;
595
596// Note: ConnectedAccountInfo, ConnectedAccountListResponse, and
597// ConnectedAccountUpdateStatusResponse are now exported from connected_accounts module
598
599/// Response from creating an auth link
600pub use response::LinkResponse;
601
602/// MCP server type for Tool Router sessions
603pub use response::ToolRouterMcpServerType;
604
605/// MCP server configuration for Tool Router sessions
606pub use response::ToolRouterMcpServerConfig;
607
608/// Experimental features in Tool Router session response
609pub use response::ToolRouterSessionExperimental;
610
611/// Auth config information for a toolkit connection
612pub use response::ToolkitConnectionAuthConfig;
613
614/// Connected account information for a toolkit
615pub use response::ToolkitConnectedAccount;
616
617/// Connection information for a toolkit
618pub use response::ToolkitConnection;
619
620/// Connection state of a toolkit in a Tool Router session
621pub use response::ToolkitConnectionState;
622
623/// Details of toolkit connections in a Tool Router session
624pub use response::ToolkitConnectionsDetails;
625
626/// Error response from API
627pub use response::ErrorResponse;
628
629// Note: AuthConfigCreateResponse, AuthConfigListResponse, AuthConfigRetrieveResponse,
630// AuthConfigDetail, and AuthConfigInfo are now exported from auth_configs module
631// with more complete implementations
632
633/// Response from creating a connected account
634pub use response::ConnectedAccountCreateResponse;
635
636// Note: ConnectedAccountListResponse is exported from connected_accounts module
637
638/// Detailed information about a connected account
639pub use response::ConnectedAccountDetail;
640
641/// Response from retrieving a single connected account
642pub use response::ConnectedAccountRetrieveResponse;
643
644// Note: ConnectedAccountUpdateStatusResponse is exported from connected_accounts module
645
646// Note: ToolProxyResponse is now exported from tools module
647
648/// Response from creating or updating a trigger instance
649pub use response::TriggerInstanceUpsertResponse;
650
651// Triggers types
652pub use triggers::{
653 TriggerConnectedAccount, TriggerCreateParams, TriggerCreateResponse, TriggerEvent,
654 TriggerInstance, TriggerInstanceListParams, TriggerInstanceListResponse, TriggerMetadata,
655 TriggerToolkitRef, TriggerType, TriggerTypeListParams, TriggerTypeListResponse,
656 TriggerTypeRetrieveEnumResponse, TriggerTypeRetrieveParams, VerifyWebhookResult,
657 WebhookVerifyParams, WebhookVersion,
658};
659
660// ============================================================================
661// Webhook Events
662// ============================================================================
663
664/// Webhook event types
665pub use webhook_events::WebhookEventType;
666
667// Note: ConnectionStatus is already exported from connected_accounts module
668// webhook_events::ConnectionStatus is the same enum
669
670/// Connected account toolkit information
671pub use webhook_events::ConnectedAccountToolkit;
672
673/// Connected account auth config
674pub use webhook_events::ConnectedAccountAuthConfig;
675
676/// Connection state value (webhook-specific)
677pub use webhook_events::ConnectionStateVal;
678
679// Note: ConnectionState is already exported from connected_accounts module
680// webhook_events::ConnectionState is a different struct for webhook payloads
681
682/// Single connected account detailed response
683pub use webhook_events::SingleConnectedAccountDetailedResponse;
684
685/// Webhook connection metadata
686pub use webhook_events::WebhookConnectionMetadata;
687
688/// Connection expired event
689pub use webhook_events::ConnectionExpiredEvent;
690
691/// Webhook event union type
692pub use webhook_events::WebhookEvent;
693
694/// Check if payload is a connection expired event
695pub use webhook_events::is_connection_expired_event;
696
697// ============================================================================
698// Toolkits
699// ============================================================================
700
701// Note: Toolkits resource is pending full HTTP client integration
702
703/// Toolkit list parameters
704pub use toolkits::ToolkitListParams;
705
706/// Sort by options
707pub use toolkits::SortBy;
708
709/// Managed by options
710pub use toolkits::ManagedBy;
711
712/// Toolkit retrieve response
713pub use toolkits::ToolkitRetrieveResponse;
714
715/// Toolkit retrieve parameters
716pub use toolkits::ToolkitRetrieveParams;
717
718/// Authentication configuration detail
719pub use toolkits::AuthConfigDetail;
720
721/// Authentication configuration fields
722pub use toolkits::AuthConfigFields;
723
724/// Authentication field set
725pub use toolkits::AuthFieldSet;
726
727/// Authentication field
728pub use toolkits::AuthField;
729
730/// Toolkit categories response
731pub use toolkits::ToolkitCategoriesResponse;
732
733/// Toolkit category
734pub use toolkits::ToolkitCategory;
735
736/// Authorization parameters
737pub use toolkits::AuthorizeParams;