#![allow(dead_code)]
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum AnalyzeInputBodyFetchMode {
Auto,
Static,
Dynamic,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum CleanerOptionsInputOutput {
Html,
Text,
Markdown,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum CleanerOptionsInputPreset {
Default,
Minimal,
Aggressive,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum CreateSavedSiteInputBodyFetchMode {
Auto,
Static,
Dynamic,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum CreateSchemaInputBodyVisibility {
Private,
Public,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum ExtractInputBodyFetchMode {
Auto,
Static,
Dynamic,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum FallbackChainEntryInputProvider {
Openrouter,
Anthropic,
Openai,
Ollama,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum JobCleanerOptionsInputOutput {
Html,
Text,
Markdown,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum JobCleanerOptionsInputPreset {
Default,
Minimal,
Aggressive,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum LLMConfigInputProvider {
Anthropic,
Openai,
Openrouter,
Ollama,
Credits,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum ServiceKeyInputProvider {
Openrouter,
Anthropic,
Openai,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum UpdateSavedSiteInputBodyFetchMode {
Auto,
Static,
Dynamic,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum UpdateSchemaInputBodyVisibility {
Private,
Public,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum UserFallbackChainEntryInputProvider {
Openrouter,
Anthropic,
Openai,
Ollama,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "lowercase")]
pub enum UserServiceKeyInputProvider {
Openrouter,
Anthropic,
Openai,
Ollama,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct AnalysisResultInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub detected_elements: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub follow_patterns: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub recommended_fetch_mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sample_links: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub site_summary: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub suggested_schema: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct AnalyzeInputBody {
#[serde(rename = "debug")]
#[serde(skip_serializing_if = "Option::is_none")]
pub debug: Option<bool>,
#[serde(rename = "depth")]
#[serde(skip_serializing_if = "Option::is_none")]
pub depth: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fetch_mode: Option<AnalyzeInputBodyFetchMode>,
#[serde(rename = "url")]
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CleanerConfigInput {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<CleanerOptionsInput>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CleanerOptionsInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub base_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub extract_headings: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub extract_images: Option<bool>,
#[serde(rename = "images")]
#[serde(skip_serializing_if = "Option::is_none")]
pub images: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_frontmatter: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub keep_selectors: Option<serde_json::Value>,
#[serde(rename = "links")]
#[serde(skip_serializing_if = "Option::is_none")]
pub links: Option<bool>,
#[serde(rename = "output")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output: Option<CleanerOptionsInputOutput>,
#[serde(rename = "preset")]
#[serde(skip_serializing_if = "Option::is_none")]
pub preset: Option<CleanerOptionsInputPreset>,
#[serde(skip_serializing_if = "Option::is_none")]
pub remove_selectors: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_urls: Option<bool>,
#[serde(rename = "tables")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tables: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CrawlInlineWebhookInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub events: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub headers: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub secret: Option<String>,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CrawlOptionsInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub follow_pattern: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub follow_selector: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_depth: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_pages: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CrawlWebhookHeaderInput {
pub name: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CreateCrawlJobInputBody {
#[serde(skip_serializing_if = "Option::is_none")]
pub cleaner_chain: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub llm_config: Option<LLMConfigInput>,
#[serde(rename = "options")]
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<CrawlOptions>,
#[serde(rename = "schema")]
pub schema: serde_json::Value,
#[serde(rename = "url")]
pub url: String,
#[serde(rename = "webhook")]
#[serde(skip_serializing_if = "Option::is_none")]
pub webhook: Option<CrawlInlineWebhookInput>,
#[serde(skip_serializing_if = "Option::is_none")]
pub webhook_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub webhook_url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CreateKeyInputBody {
#[serde(skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "scopes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub scopes: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CreatePlatformSchemaInputBody {
#[serde(rename = "category")]
pub category: String,
#[serde(rename = "description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "name")]
pub name: String,
pub schema_yaml: String,
#[serde(rename = "tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct CreateSavedSiteInputBody {
#[serde(skip_serializing_if = "Option::is_none")]
pub analysis_result: Option<AnalysisResultInput>,
#[serde(skip_serializing_if = "Option::is_none")]
pub crawl_options: Option<CrawlOptionsInput>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_schema_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fetch_mode: Option<CreateSavedSiteInputBodyFetchMode>,
#[serde(rename = "name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "url")]
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateSchemaInputBody {
#[serde(rename = "category")]
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(rename = "description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "name")]
pub name: String,
pub schema_yaml: String,
#[serde(rename = "tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<serde_json::Value>,
#[serde(rename = "visibility")]
pub visibility: CreateSchemaInputBodyVisibility,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct DebugCaptureLLMRequest {
pub content_size: i64,
#[serde(skip_serializing_if = "Option::is_none")]
pub fetch_mode: Option<String>,
#[serde(rename = "model")]
pub model: String,
pub prompt_size: i64,
#[serde(rename = "provider")]
pub provider: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DetectedElementInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub r#type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct ExtractInputBody {
#[serde(skip_serializing_if = "Option::is_none")]
pub cleaner_chain: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fetch_mode: Option<ExtractInputBodyFetchMode>,
#[serde(skip_serializing_if = "Option::is_none")]
pub llm_config: Option<LLMConfigInput>,
#[serde(rename = "schema")]
pub schema: serde_json::Value,
#[serde(rename = "url")]
pub url: String,
#[serde(rename = "webhook")]
#[serde(skip_serializing_if = "Option::is_none")]
pub webhook: Option<InlineWebhookInput>,
#[serde(skip_serializing_if = "Option::is_none")]
pub webhook_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub webhook_url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FallbackChainEntryInput {
pub is_enabled: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_tokens: Option<i64>,
#[serde(rename = "model")]
pub model: String,
#[serde(rename = "provider")]
pub provider: FallbackChainEntryInputProvider,
#[serde(rename = "temperature")]
#[serde(skip_serializing_if = "Option::is_none")]
pub temperature: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct FollowPatternInput {
#[serde(rename = "description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "pattern")]
#[serde(skip_serializing_if = "Option::is_none")]
pub pattern: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sample_urls: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct InlineWebhookInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub events: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub headers: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub secret: Option<String>,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct JobCleanerConfigInput {
pub name: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<JobCleanerOptionsInput>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct JobCleanerOptionsInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub base_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub extract_headings: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub extract_images: Option<bool>,
#[serde(rename = "images")]
#[serde(skip_serializing_if = "Option::is_none")]
pub images: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_frontmatter: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub keep_selectors: Option<serde_json::Value>,
#[serde(rename = "links")]
#[serde(skip_serializing_if = "Option::is_none")]
pub links: Option<bool>,
#[serde(rename = "output")]
#[serde(skip_serializing_if = "Option::is_none")]
pub output: Option<JobCleanerOptionsInputOutput>,
#[serde(rename = "preset")]
#[serde(skip_serializing_if = "Option::is_none")]
pub preset: Option<JobCleanerOptionsInputPreset>,
#[serde(skip_serializing_if = "Option::is_none")]
pub remove_selectors: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resolve_urls: Option<bool>,
#[serde(rename = "tables")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tables: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct LLMConfigInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub api_key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub base_url: Option<String>,
#[serde(rename = "model")]
#[serde(skip_serializing_if = "Option::is_none")]
pub model: Option<String>,
#[serde(rename = "provider")]
#[serde(skip_serializing_if = "Option::is_none")]
pub provider: Option<LLMConfigInputProvider>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ModelValidationRequest {
pub model: String,
pub provider: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ServiceKeyInput {
pub api_key: String,
pub default_model: String,
pub is_enabled: bool,
#[serde(rename = "provider")]
pub provider: ServiceKeyInputProvider,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetFallbackChainInputBody {
pub chain: serde_json::Value,
#[serde(skip_serializing_if = "Option::is_none")]
pub tier: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetUserFallbackChainInputBody {
pub chain: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct TierValidationRequest {
pub tier_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct UpdateSavedSiteInputBody {
#[serde(skip_serializing_if = "Option::is_none")]
pub analysis_result: Option<AnalysisResultInput>,
#[serde(skip_serializing_if = "Option::is_none")]
pub crawl_options: Option<CrawlOptionsInput>,
#[serde(skip_serializing_if = "Option::is_none")]
pub default_schema_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub fetch_mode: Option<UpdateSavedSiteInputBodyFetchMode>,
#[serde(rename = "name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "url")]
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct UpdateSchemaInputBody {
#[serde(rename = "category")]
#[serde(skip_serializing_if = "Option::is_none")]
pub category: Option<String>,
#[serde(rename = "description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub schema_yaml: Option<String>,
#[serde(rename = "tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<serde_json::Value>,
#[serde(rename = "visibility")]
#[serde(skip_serializing_if = "Option::is_none")]
pub visibility: Option<UpdateSchemaInputBodyVisibility>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserFallbackChainEntryInput {
pub is_enabled: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_tokens: Option<i64>,
#[serde(rename = "model")]
pub model: String,
#[serde(rename = "provider")]
pub provider: UserFallbackChainEntryInputProvider,
#[serde(rename = "temperature")]
#[serde(skip_serializing_if = "Option::is_none")]
pub temperature: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserServiceKeyInput {
#[serde(skip_serializing_if = "Option::is_none")]
pub api_key: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub base_url: Option<String>,
pub is_enabled: bool,
#[serde(rename = "provider")]
pub provider: UserServiceKeyInputProvider,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ValidateModelsInputBody {
pub models: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ValidateTiersInputBody {
pub tiers: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct WebhookHeaderInput {
pub name: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct WebhookInput {
#[serde(rename = "events")]
#[serde(skip_serializing_if = "Option::is_none")]
pub events: Option<serde_json::Value>,
#[serde(rename = "headers")]
#[serde(skip_serializing_if = "Option::is_none")]
pub headers: Option<serde_json::Value>,
pub is_active: bool,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "secret")]
#[serde(skip_serializing_if = "Option::is_none")]
pub secret: Option<String>,
#[serde(rename = "url")]
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct APIKeyResponse {
pub created_at: String,
pub expires_at: Option<String>,
#[serde(rename = "id")]
pub id: String,
pub key_prefix: String,
pub last_used_at: Option<String>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "scopes")]
pub scopes: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AdminJobResultsOutputBody {
pub download_url: String,
pub expires_at: String,
pub job_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AnalysisResultOutput {
pub detected_elements: serde_json::Value,
pub follow_patterns: serde_json::Value,
pub page_type: String,
pub recommended_fetch_mode: String,
pub sample_links: serde_json::Value,
pub site_summary: String,
pub suggested_schema: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AnalyticsJobResponse {
pub completed_at: Option<String>,
pub cost_usd: f64,
pub created_at: String,
pub discovery_method: Option<String>,
pub error_category: Option<String>,
pub error_message: Option<String>,
#[serde(rename = "id")]
pub id: String,
pub is_byok: bool,
pub llm_cost_usd: f64,
#[serde(rename = "model")]
pub model: Option<String>,
#[serde(rename = "provider")]
pub provider: Option<String>,
#[serde(rename = "status")]
pub status: String,
pub tokens_input: i64,
pub tokens_output: i64,
#[serde(rename = "type")]
pub r#type: String,
#[serde(rename = "url")]
pub url: String,
pub user_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AnalyzeResponseBody {
pub detected_elements: serde_json::Value,
pub follow_patterns: serde_json::Value,
pub job_id: String,
pub page_type: String,
pub recommended_fetch_mode: String,
pub sample_data: Option<serde_json::Value>,
pub sample_links: serde_json::Value,
pub site_summary: String,
pub suggested_schema: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CleanerChainItemResponse {
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CleanerOptionResponse {
pub default: serde_json::Value,
pub description: String,
pub name: String,
pub r#type: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CleanerResponse {
pub description: String,
pub name: String,
pub options: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CrawlJobResponseBody {
pub cost_usd: Option<f64>,
#[serde(rename = "data")]
pub data: Option<std::collections::HashMap<String, serde_json::Value>>,
pub duration_ms: Option<i64>,
pub error_message: Option<String>,
pub job_id: String,
pub page_count: Option<i64>,
#[serde(rename = "status")]
pub status: String,
pub status_url: Option<String>,
pub token_usage: Option<TokenUsage>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CrawlOptionsOutput {
pub follow_pattern: Option<String>,
pub follow_selector: Option<String>,
pub max_depth: Option<i64>,
pub max_pages: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CreateKeyOutputBody {
pub created_at: String,
pub expires_at: Option<String>,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "key")]
pub key: String,
pub key_prefix: String,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "scopes")]
pub scopes: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DebugCaptureLLMResponse {
pub duration_ms: i64,
#[serde(rename = "error")]
pub error: Option<String>,
pub input_tokens: i64,
pub output_tokens: i64,
#[serde(rename = "success")]
pub success: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteSavedSiteOutputBody {
pub success: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteSchemaOutputBody {
pub success: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteServiceKeyOutputBody {
pub success: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteUserServiceKeyOutputBody {
pub success: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteWebhookOutputBody {
pub success: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DetectedElementOutput {
pub count: Option<i64>,
pub description: String,
pub name: String,
pub r#type: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ErrorCategoryResponse {
#[serde(rename = "category")]
pub category: String,
#[serde(rename = "count")]
pub count: i64,
#[serde(rename = "percentage")]
pub percentage: f64,
pub sample_messages: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ExtractOutputBody {
#[serde(rename = "data")]
pub data: serde_json::Value,
pub fetched_at: String,
pub input_format: String,
pub job_id: String,
#[serde(rename = "metadata")]
pub metadata: MetadataResponse,
#[serde(rename = "url")]
pub url: String,
#[serde(rename = "usage")]
pub usage: UsageResponse,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct FailingURLResponse {
pub count: i64,
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FallbackChainEntryResponse {
pub created_at: String,
#[serde(rename = "id")]
pub id: String,
pub is_enabled: bool,
pub max_tokens: Option<i64>,
#[serde(rename = "model")]
pub model: String,
#[serde(rename = "position")]
pub position: i64,
#[serde(rename = "provider")]
pub provider: String,
#[serde(rename = "temperature")]
pub temperature: Option<f64>,
#[serde(rename = "tier")]
pub tier: Option<String>,
pub updated_at: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FollowPatternOutput {
#[serde(rename = "description")]
pub description: String,
#[serde(rename = "pattern")]
pub pattern: String,
pub sample_urls: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetAnalyticsJobsOutputBody {
#[serde(rename = "jobs")]
pub jobs: serde_json::Value,
pub total_count: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetAnalyticsUsersOutputBody {
pub total_count: i64,
#[serde(rename = "users")]
pub users: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetCrawlMapOutputBody {
#[serde(rename = "completed")]
pub completed: i64,
#[serde(rename = "entries")]
pub entries: serde_json::Value,
pub error_summary: Option<ErrorSummary>,
#[serde(rename = "failed")]
pub failed: i64,
pub job_id: String,
pub max_depth: i64,
pub seed_url: String,
#[serde(rename = "total")]
pub total: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetErrorsOutputBody {
pub by_category: serde_json::Value,
pub by_provider: serde_json::Value,
pub top_failing_urls: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetFallbackChainOutputBody {
pub chain: serde_json::Value,
pub tiers: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetJobDebugCaptureOutputBody {
#[serde(rename = "captures")]
pub captures: serde_json::Value,
#[serde(rename = "enabled")]
pub enabled: bool,
pub job_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetJobResultsDownloadOutputBody {
pub download_url: String,
pub expires_at: String,
pub job_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetJobWebhookDeliveriesOutputBody {
#[serde(rename = "deliveries")]
pub deliveries: serde_json::Value,
pub job_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetTrendsOutputBody {
pub trends: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct GetUsageOutputBody {
pub byok_jobs: i64,
pub total_charged_usd: f64,
pub total_jobs: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetUserFallbackChainOutputBody {
pub chain: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct HealthCheckOutputBody {
pub status: String,
pub version: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JobResponse {
pub capture_debug: bool,
pub completed_at: Option<String>,
pub cost_usd: f64,
pub created_at: String,
pub error_category: Option<String>,
pub error_message: Option<String>,
#[serde(rename = "id")]
pub id: String,
pub page_count: i64,
pub started_at: Option<String>,
#[serde(rename = "status")]
pub status: String,
pub token_usage_input: i64,
pub token_usage_output: i64,
#[serde(rename = "type")]
pub r#type: String,
#[serde(rename = "url")]
pub url: String,
pub urls_queued: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct JobWebhookDeliveryResponse {
pub attempt_number: i64,
pub created_at: String,
pub delivered_at: Option<String>,
pub error_message: Option<String>,
pub event_type: String,
#[serde(rename = "id")]
pub id: String,
pub max_attempts: i64,
pub response_time_ms: Option<i64>,
#[serde(rename = "status")]
pub status: String,
pub status_code: Option<i64>,
#[serde(rename = "url")]
pub url: String,
pub webhook_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListAllSchemasOutputBody {
pub schemas: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ListCleanersOutputBody {
#[serde(rename = "cleaners")]
pub cleaners: serde_json::Value,
pub default_analysis_chain: serde_json::Value,
pub default_extraction_chain: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListJobsOutputBody {
pub jobs: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListKeysOutputBody {
pub keys: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListModelsOutputBody {
pub models: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListProvidersOutputBody {
pub providers: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListSavedSitesOutputBody {
pub sites: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListSchemasOutputBody {
pub schemas: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListServiceKeysOutputBody {
pub keys: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListTierLimitsOutputBody {
pub tiers: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListTiersOutputBody {
pub tiers: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListUserServiceKeysOutputBody {
pub keys: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListWebhookDeliveriesOutputBody {
pub deliveries: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListWebhooksOutputBody {
pub webhooks: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LivezOutputBody {
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MetadataResponse {
pub extract_duration_ms: i64,
pub fetch_duration_ms: i64,
#[serde(rename = "model")]
pub model: String,
#[serde(rename = "provider")]
pub provider: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ModelValidationResponse {
pub message: Option<String>,
pub model: String,
pub provider: String,
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OverviewResponse {
pub active_users: i64,
pub byok_jobs: i64,
pub completed_jobs: i64,
pub error_rate: f64,
pub failed_jobs: i64,
pub platform_jobs: i64,
pub total_cost_usd: f64,
pub total_jobs: i64,
pub total_tokens_input: i64,
pub total_tokens_output: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ProviderErrorResponse {
pub count: i64,
pub model: String,
pub provider: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProviderModelResponse {
pub context_size: Option<i64>,
#[serde(rename = "description")]
pub description: Option<String>,
#[serde(rename = "id")]
pub id: String,
pub is_free: bool,
#[serde(rename = "name")]
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ReadyzOutputBody {
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RevokeKeyOutputBody {
pub success: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SavedSiteOutput {
pub analysis_result: Option<AnalysisResultOutput>,
pub crawl_options: Option<CrawlOptionsOutput>,
pub created_at: String,
pub default_schema_id: Option<String>,
#[serde(rename = "domain")]
pub domain: String,
pub fetch_mode: String,
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "name")]
pub name: Option<String>,
pub organization_id: Option<String>,
pub updated_at: String,
#[serde(rename = "url")]
pub url: String,
pub user_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SchemaOutput {
#[serde(rename = "category")]
pub category: Option<String>,
pub created_at: String,
#[serde(rename = "description")]
pub description: Option<String>,
#[serde(rename = "id")]
pub id: String,
pub is_platform: bool,
#[serde(rename = "name")]
pub name: String,
pub organization_id: Option<String>,
pub schema_yaml: String,
#[serde(rename = "tags")]
pub tags: Option<serde_json::Value>,
pub updated_at: String,
pub usage_count: i64,
pub user_id: Option<String>,
#[serde(rename = "visibility")]
pub visibility: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ServiceKeyResponse {
pub created_at: String,
pub default_model: String,
pub has_key: bool,
pub is_enabled: bool,
#[serde(rename = "provider")]
pub provider: String,
pub updated_at: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SetFallbackChainOutputBody {
pub chain: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SetUserFallbackChainOutputBody {
pub chain: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SubscriptionTierResponse {
#[serde(rename = "description")]
pub description: Option<String>,
#[serde(rename = "id")]
pub id: String,
pub is_default: bool,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "slug")]
pub slug: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SyncTiersOutputBody {
pub message: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TierLimitsResponse {
pub credit_allocation_usd: f64,
pub credit_rollover_months: i64,
pub display_name: String,
pub max_concurrent_jobs: i64,
pub max_pages_per_crawl: i64,
pub monthly_extractions: i64,
#[serde(rename = "name")]
pub name: String,
pub requests_per_minute: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TierValidationResponse {
pub current_slug: Option<String>,
#[serde(rename = "message")]
pub message: Option<String>,
#[serde(rename = "status")]
pub status: String,
pub tier_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct TrendPointResponse {
pub cost_usd: f64,
#[serde(rename = "date")]
pub date: String,
pub error_count: i64,
pub job_count: i64,
#[serde(rename = "tokens")]
pub tokens: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UsageResponse {
pub cost_usd: f64,
pub input_tokens: i64,
pub is_byok: bool,
pub llm_cost_usd: f64,
pub output_tokens: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserFallbackChainEntryResponse {
pub created_at: String,
#[serde(rename = "id")]
pub id: String,
pub is_enabled: bool,
pub max_tokens: Option<i64>,
#[serde(rename = "model")]
pub model: String,
#[serde(rename = "position")]
pub position: i64,
#[serde(rename = "provider")]
pub provider: String,
#[serde(rename = "temperature")]
pub temperature: Option<f64>,
pub updated_at: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct UserListModelsOutputBody {
pub models: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserModelResponse {
pub context_size: Option<i64>,
#[serde(rename = "description")]
pub description: Option<String>,
#[serde(rename = "id")]
pub id: String,
pub is_free: bool,
#[serde(rename = "name")]
pub name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserServiceKeyResponse {
pub base_url: Option<String>,
pub created_at: String,
pub has_key: bool,
#[serde(rename = "id")]
pub id: String,
pub is_enabled: bool,
#[serde(rename = "provider")]
pub provider: String,
pub updated_at: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserSummaryResponse {
pub completed_jobs: i64,
pub failed_jobs: i64,
pub last_active: Option<String>,
pub total_cost_usd: f64,
pub total_jobs: i64,
pub total_tokens: i64,
pub user_id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ValidateModelsOutputBody {
pub results: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ValidateTiersOutputBody {
pub results: serde_json::Value,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct WebhookDeliveryResponse {
pub attempt_number: i64,
pub created_at: String,
pub delivered_at: Option<String>,
pub error_message: Option<String>,
pub event_type: String,
#[serde(rename = "id")]
pub id: String,
pub job_id: String,
pub max_attempts: i64,
pub next_retry_at: Option<String>,
pub response_time_ms: Option<i64>,
#[serde(rename = "status")]
pub status: String,
pub status_code: Option<i64>,
#[serde(rename = "url")]
pub url: String,
pub webhook_id: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct WebhookResponse {
pub created_at: String,
#[serde(rename = "events")]
pub events: serde_json::Value,
pub has_secret: bool,
#[serde(rename = "headers")]
pub headers: Option<serde_json::Value>,
#[serde(rename = "id")]
pub id: String,
pub is_active: bool,
#[serde(rename = "name")]
pub name: String,
pub updated_at: String,
#[serde(rename = "url")]
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CrawlMapEntry {
pub completed_at: Option<String>,
#[serde(rename = "depth")]
pub depth: i64,
pub discovered_at: Option<String>,
pub error_category: Option<String>,
pub error_details: Option<String>,
pub error_message: Option<String>,
pub extract_duration_ms: i64,
pub fetch_duration_ms: i64,
#[serde(rename = "id")]
pub id: String,
pub llm_model: Option<String>,
pub llm_provider: Option<String>,
pub parent_url: Option<String>,
#[serde(rename = "status")]
pub status: String,
pub token_usage_input: i64,
pub token_usage_output: i64,
#[serde(rename = "url")]
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CrawlOptions {
#[serde(rename = "concurrency")]
pub concurrency: Option<i64>,
#[serde(rename = "delay")]
pub delay: Option<String>,
pub extract_from_seeds: Option<bool>,
pub follow_pattern: Option<String>,
pub follow_selector: Option<String>,
pub max_depth: Option<i64>,
pub max_pages: Option<i64>,
pub max_urls: Option<i64>,
pub next_selector: Option<String>,
pub same_domain_only: Option<bool>,
pub use_sitemap: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct DebugCaptureEntry {
pub hints_applied: Option<std::collections::HashMap<String, String>>,
#[serde(rename = "id")]
pub id: String,
pub job_type: String,
#[serde(rename = "prompt")]
pub prompt: Option<String>,
pub raw_content: Option<String>,
#[serde(rename = "request")]
pub request: DebugCaptureLLMRequest,
#[serde(rename = "response")]
pub response: DebugCaptureLLMResponse,
#[serde(rename = "schema")]
pub schema: Option<String>,
#[serde(rename = "timestamp")]
pub timestamp: String,
#[serde(rename = "url")]
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ErrorDetail {
pub location: Option<String>,
pub message: Option<String>,
pub value: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ErrorModel {
pub detail: Option<String>,
pub errors: Option<serde_json::Value>,
pub instance: Option<String>,
pub status: Option<i64>,
pub title: Option<String>,
pub r#type: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ErrorSummary {
pub by_category: std::collections::HashMap<String, i64>,
pub has_rate_limit: bool,
#[serde(rename = "total")]
pub total: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProviderInfo {
pub base_url_hint: Option<String>,
#[serde(rename = "description")]
pub description: String,
pub display_name: String,
pub docs_url: Option<String>,
pub key_placeholder: Option<String>,
#[serde(rename = "name")]
pub name: String,
pub required_features: Option<serde_json::Value>,
pub requires_key: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SSECompleteEvent {
pub cost_usd: Option<f64>,
pub error_category: Option<String>,
pub error_message: Option<String>,
pub job_id: String,
pub page_count: i64,
pub results_url: String,
#[serde(rename = "status")]
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SSEErrorEvent {
pub message: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SSEResultEvent {
pub error_category: Option<String>,
pub error_message: Option<String>,
#[serde(rename = "id")]
pub id: String,
pub llm_model: Option<String>,
pub llm_provider: Option<String>,
#[serde(rename = "status")]
pub status: String,
#[serde(rename = "url")]
pub url: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SSEStatusEvent {
pub job_id: String,
pub page_count: i64,
#[serde(rename = "status")]
pub status: String,
pub urls_queued: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TokenUsage {
pub input: i64,
pub output: i64,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ProvidersResponse {
pub providers: Vec<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct Model {
pub id: String,
pub name: String,
}
pub type Job = JobResponse;
pub type JobList = ListJobsOutputBody;
pub type JobResults = serde_json::Value;
pub type Schema = SchemaOutput;
pub type SchemaList = ListSchemasOutputBody;
pub type CreateSchemaRequest = CreateSchemaInputBody;
pub type Site = SavedSiteOutput;
pub type SiteList = ListSavedSitesOutputBody;
pub type CreateSiteRequest = CreateSavedSiteInputBody;
pub type ApiKeyList = ListKeysOutputBody;
pub type ApiKeyCreated = CreateKeyOutputBody;
pub type LlmKey = UserServiceKeyResponse;
pub type LlmKeyList = ListUserServiceKeysOutputBody;
pub type UpsertLlmKeyRequest = UserServiceKeyInput;
pub type LlmChain = GetUserFallbackChainOutputBody;
pub type LlmChainEntry = UserFallbackChainEntryInput;
pub type ModelList = UserListModelsOutputBody;
pub type ExtractRequest = ExtractInputBody;
pub type ExtractResponse = ExtractOutputBody;
pub type CrawlRequest = CreateCrawlJobInputBody;
pub type CrawlJobCreated = CrawlJobResponseBody;
pub type AnalyzeRequest = AnalyzeInputBody;
pub type AnalyzeResponse = AnalyzeResponseBody;