use serde::{Serialize, Deserialize};
pub type TargetID = String;
pub type SessionID = String;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct TargetInfo {
pub targetId: TargetID,
#[serde(rename = "type")]
pub type_: String,
pub title: String,
pub url: String,
pub attached: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub openerId: Option<TargetID>,
pub canAccessOpener: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub openerFrameId: Option<crate::page::FrameId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub parentFrameId: Option<crate::page::FrameId>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browserContextId: Option<crate::browser::BrowserContextID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub subtype: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct FilterEntry {
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "type")]
pub type_: Option<String>,
}
pub type TargetFilter = Vec<FilterEntry>;
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct RemoteLocation {
pub host: String,
pub port: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum WindowState {
#[default]
Normal,
Minimized,
Maximized,
Fullscreen,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ActivateTargetParams {
pub targetId: TargetID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AttachToTargetParams {
pub targetId: TargetID,
#[serde(skip_serializing_if = "Option::is_none")]
pub flatten: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AttachToTargetReturns {
pub sessionId: SessionID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AttachToBrowserTargetReturns {
pub sessionId: SessionID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CloseTargetParams {
pub targetId: TargetID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CloseTargetReturns {
pub success: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ExposeDevToolsProtocolParams {
pub targetId: TargetID,
#[serde(skip_serializing_if = "Option::is_none")]
pub bindingName: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub inheritPermissions: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateBrowserContextParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub disposeOnDetach: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub proxyServer: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub proxyBypassList: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub originsWithUniversalNetworkAccess: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateBrowserContextReturns {
pub browserContextId: crate::browser::BrowserContextID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetBrowserContextsReturns {
pub browserContextIds: Vec<crate::browser::BrowserContextID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub defaultBrowserContextId: Option<crate::browser::BrowserContextID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateTargetParams {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub left: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub top: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub width: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub height: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub windowState: Option<WindowState>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browserContextId: Option<crate::browser::BrowserContextID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enableBeginFrameControl: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub newWindow: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub background: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub forTab: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hidden: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub focus: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct CreateTargetReturns {
pub targetId: TargetID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DetachFromTargetParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub sessionId: Option<SessionID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub targetId: Option<TargetID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DisposeBrowserContextParams {
pub browserContextId: crate::browser::BrowserContextID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetInfoParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub targetId: Option<TargetID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetInfoReturns {
pub targetInfo: TargetInfo,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetsParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<TargetFilter>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetTargetsReturns {
pub targetInfos: Vec<TargetInfo>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SendMessageToTargetParams {
pub message: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub sessionId: Option<SessionID>,
#[serde(skip_serializing_if = "Option::is_none")]
pub targetId: Option<TargetID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetAutoAttachParams {
pub autoAttach: bool,
pub waitForDebuggerOnStart: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub flatten: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<TargetFilter>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct AutoAttachRelatedParams {
pub targetId: TargetID,
pub waitForDebuggerOnStart: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<TargetFilter>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetDiscoverTargetsParams {
pub discover: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<TargetFilter>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SetRemoteLocationsParams {
pub locations: Vec<RemoteLocation>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetDevToolsTargetParams {
pub targetId: TargetID,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct GetDevToolsTargetReturns {
#[serde(skip_serializing_if = "Option::is_none")]
pub targetId: Option<TargetID>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct OpenDevToolsParams {
pub targetId: TargetID,
#[serde(skip_serializing_if = "Option::is_none")]
pub panelId: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct OpenDevToolsReturns {
pub targetId: TargetID,
}