use crate::entity::{
OnPageDataApiContentParsing, OnPageDataApiDuplicateContent, OnPageDataApiDuplicateTags,
OnPageDataApiError, OnPageDataApiIdList, OnPageDataApiInstantPages,
OnPageDataApiKeywordDensity, OnPageDataApiLighthouseTaskGet, OnPageDataApiLighthouseTasksReady,
OnPageDataApiLinks, OnPageDataApiMicrodata, OnPageDataApiNonIndexable, OnPageDataApiPage,
OnPageDataApiPageScreensShot, OnPageDataApiRawHtml, OnPageDataApiRedirectChains,
OnPageDataApiResources, OnPageDataApiSummary, OnPageDataApiTasksReady, OnPageDataApiWaterfall,
};
use crate::{DataForSeoApiResponse, DataForSeoClient};
use serde::{Deserialize, Serialize};
use serde_json::Value;
pub struct OnPageApi<'a> {
client: &'a DataForSeoClient,
}
impl DataForSeoClient {
pub fn on_page(&self) -> OnPageApi<'_> {
OnPageApi { client: self }
}
}
impl OnPageApi<'_> {
pub async fn task_post(&self, data: Vec<OnPageApiTaskPost>) -> DataForSeoApiResponse<Value> {
self.client.http_post("/v3/on_page/task_post", &data).await
}
pub async fn tasks_ready(&self) -> DataForSeoApiResponse<OnPageDataApiTasksReady> {
self.client.http_get("/v3/on_page/tasks_ready").await
}
pub async fn force_stop(
&self,
data: Vec<OnPageApiForceStopPost>,
) -> DataForSeoApiResponse<Value> {
self.client.http_post("/v3/on_page/force_stop", &data).await
}
pub async fn summary(&self, id: &str) -> DataForSeoApiResponse<OnPageDataApiSummary> {
self.client
.http_get(format!("/v3/on_page/summary/{id}").as_str())
.await
}
pub async fn pages(
&self,
data: Vec<OnPageApiPagesPost>,
) -> DataForSeoApiResponse<OnPageDataApiPage> {
self.client.http_post("/v3/on_page/pages", &data).await
}
pub async fn pages_by_resource(
&self,
data: Vec<OnPageApiPagesByResourcePost>,
) -> DataForSeoApiResponse<OnPageDataApiPage> {
self.client
.http_post("/v3/on_page/pages_by_resource", &data)
.await
}
pub async fn resources(
&self,
data: Vec<OnPageApiResourcesPost>,
) -> DataForSeoApiResponse<OnPageDataApiResources> {
self.client.http_post("/v3/on_page/resources", &data).await
}
pub async fn duplicate_tags(
&self,
data: Vec<OnPageApiDuplicateTagsPost>,
) -> DataForSeoApiResponse<OnPageDataApiDuplicateTags> {
self.client
.http_post("/v3/on_page/duplicate_tags", &data)
.await
}
pub async fn duplicate_content(
&self,
data: Vec<OnPageApiDuplicateContentPost>,
) -> DataForSeoApiResponse<OnPageDataApiDuplicateContent> {
self.client
.http_post("/v3/on_page/duplicate_content", &data)
.await
}
pub async fn links(
&self,
data: Vec<OnPageApiLinksPost>,
) -> DataForSeoApiResponse<OnPageDataApiLinks> {
self.client.http_post("/v3/on_page/links", &data).await
}
pub async fn redirect_chains(
&self,
data: Vec<OnPageApiRedirectChainsPost>,
) -> DataForSeoApiResponse<OnPageDataApiRedirectChains> {
self.client
.http_post("/v3/on_page/redirect_chains", &data)
.await
}
pub async fn non_indexable(
&self,
data: Vec<OnPageApiNonIndexablePost>,
) -> DataForSeoApiResponse<OnPageDataApiNonIndexable> {
self.client
.http_post("/v3/on_page/non_indexable", &data)
.await
}
pub async fn waterfall(
&self,
data: Vec<OnPageApiWaterfallPost>,
) -> DataForSeoApiResponse<OnPageDataApiWaterfall> {
self.client.http_post("/v3/on_page/waterfall", &data).await
}
pub async fn keyword_density(
&self,
data: Vec<OnPageApiKeywordDensityPost>,
) -> DataForSeoApiResponse<OnPageDataApiKeywordDensity> {
self.client
.http_post("/v3/on_page/keyword_density", &data)
.await
}
pub async fn microdata(
&self,
data: Vec<OnPageApiMicrodataPost>,
) -> DataForSeoApiResponse<OnPageDataApiMicrodata> {
self.client.http_post("/v3/on_page/microdata", &data).await
}
pub async fn raw_html(
&self,
data: Vec<OnPageApiRawHtmlPost>,
) -> DataForSeoApiResponse<OnPageDataApiRawHtml> {
self.client.http_post("/v3/on_page/raw_html", &data).await
}
pub async fn page_screenshot(
&self,
data: Vec<OnPageApiPageScreenshotPost>,
) -> DataForSeoApiResponse<OnPageDataApiPageScreensShot> {
self.client
.http_post("/v3/on_page/page_screenshot", &data)
.await
}
pub async fn content_parsing(
&self,
data: Vec<OnPageApiContentParsingPost>,
) -> DataForSeoApiResponse<OnPageDataApiContentParsing> {
self.client
.http_post("/v3/on_page/content_parsing", &data)
.await
}
pub async fn content_parsing_live(
&self,
data: Vec<OnPageApiContentParsingLivePost>,
) -> DataForSeoApiResponse<OnPageDataApiContentParsing> {
self.client
.http_post("/v3/on_page/content_parsing/live", &data)
.await
}
pub async fn instant_pages(
&self,
data: Vec<OnPageApiInstantPagesPost>,
) -> DataForSeoApiResponse<OnPageDataApiInstantPages> {
self.client
.http_post("/v3/on_page/instant_pages", &data)
.await
}
pub async fn id_list(
&self,
data: Vec<OnPageApiIdListPost>,
) -> DataForSeoApiResponse<OnPageDataApiIdList> {
self.client.http_post("/v3/on_page/id_list", &data).await
}
pub async fn errors(
&self,
data: Vec<OnPageApiErrorsPost>,
) -> DataForSeoApiResponse<OnPageDataApiError> {
self.client.http_post("/v3/on_page/errors", &data).await
}
pub async fn available_filters(&self) -> DataForSeoApiResponse<Value> {
self.client.http_get("/v3/on_page/available_filters").await
}
pub async fn lighthouse_task_post(
&self,
data: Vec<OnPageApiLighthouseTaskPost>,
) -> DataForSeoApiResponse<Value> {
self.client
.http_post("/v3/on_page/lighthouse/task_post", &data)
.await
}
pub async fn lighthouse_tasks_ready(
&self,
) -> DataForSeoApiResponse<OnPageDataApiLighthouseTasksReady> {
self.client
.http_get("/v3/on_page/lighthouse/tasks_ready")
.await
}
pub async fn lighthouse_task_get(
&self,
id: &str,
) -> DataForSeoApiResponse<OnPageDataApiLighthouseTaskGet> {
self.client
.http_get(format!("/v3/on_page/lighthouse/task_get/json/{id}").as_str())
.await
}
pub async fn lighthouse_live(
&self,
data: Vec<OnPageApiLighthouseLivePost>,
) -> DataForSeoApiResponse<OnPageDataApiLighthouseTaskGet> {
self.client
.http_post("/v3/on_page/lighthouse/live/json", &data)
.await
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiTaskPost {
pub target: String,
pub max_crawl_pages: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub start_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub force_sitewide_checks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub priority_urls: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub max_crawl_depth: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub crawl_delay: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub store_raw_html: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_content_parsing: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub support_cookies: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub accept_language: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_robots_txt: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub robots_txt_merge_mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_user_agent: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_preset: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_width: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_height: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_scale_factor: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub respect_sitemap: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_sitemap: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub crawl_sitemap_only: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub load_resources: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_www_redirect_check: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_javascript: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_xhr: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_browser_rendering: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_cookie_popup: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_js: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub validate_micromarkup: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allow_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub allowed_subdomains: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disallowed_subdomains: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub check_spell: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub check_spell_language: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub check_spell_exceptions: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub calculate_keyword_density: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub checks_threshold: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_sitewide_checks: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_page_checks: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub switch_pool: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub return_despite_timeout: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pingback_url: Option<String>,
}
impl OnPageApiTaskPost {
pub fn new(target: String, max_crawl_pages: i32) -> Self {
OnPageApiTaskPost {
target,
max_crawl_pages,
..OnPageApiTaskPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiPagesPost {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<Vec<String>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub order_by: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub search_after_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiPagesPost {
pub fn new(id: String) -> Self {
OnPageApiPagesPost {
id,
..OnPageApiPagesPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiPagesByResourcePost {
pub id: String,
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<Vec<String>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub order_by: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiPagesByResourcePost {
pub fn new(id: String, url: String) -> Self {
OnPageApiPagesByResourcePost {
id,
url,
..OnPageApiPagesByResourcePost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiResourcesPost {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub relevant_pages_filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub order_by: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub search_after_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiResourcesPost {
pub fn new(id: String) -> Self {
OnPageApiResourcesPost {
id,
..OnPageApiResourcesPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiDuplicateTagsPost {
pub id: String,
#[serde(rename = "type")]
pub duplicate_type: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub accumulator: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiDuplicateTagsPost {
pub fn new(id: String, duplicate_type: String) -> Self {
OnPageApiDuplicateTagsPost {
id,
duplicate_type,
..OnPageApiDuplicateTagsPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiDuplicateContentPost {
pub id: String,
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub similarity: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiDuplicateContentPost {
pub fn new(id: String, url: String) -> Self {
OnPageApiDuplicateContentPost {
id,
url,
..OnPageApiDuplicateContentPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiLinksPost {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_from: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_to: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub search_after_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiLinksPost {
pub fn new(id: String) -> Self {
OnPageApiLinksPost {
id,
..OnPageApiLinksPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiRedirectChainsPost {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiRedirectChainsPost {
pub fn new(id: String) -> Self {
OnPageApiRedirectChainsPost {
id,
..OnPageApiRedirectChainsPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiNonIndexablePost {
pub id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<Value>>,
}
impl OnPageApiNonIndexablePost {
pub fn new(id: String) -> Self {
OnPageApiNonIndexablePost {
id,
..OnPageApiNonIndexablePost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiWaterfallPost {
pub id: String,
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiWaterfallPost {
pub fn new(id: String, url: String) -> OnPageApiWaterfallPost {
OnPageApiWaterfallPost { id, url, tag: None }
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiKeywordDensityPost {
pub id: String,
pub keyword_length: i32,
#[serde(skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<Vec<Vec<String>>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub order_by: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiKeywordDensityPost {
pub fn new(id: String, keyword_length: i32) -> OnPageApiKeywordDensityPost {
OnPageApiKeywordDensityPost {
id,
keyword_length,
..OnPageApiKeywordDensityPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiMicrodataPost {
pub id: String,
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiMicrodataPost {
pub fn new(id: String, url: String) -> OnPageApiMicrodataPost {
OnPageApiMicrodataPost { id, url, tag: None }
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiRawHtmlPost {
pub id: String,
pub url: String,
}
impl OnPageApiRawHtmlPost {
pub fn new(id: String, url: String) -> Self {
OnPageApiRawHtmlPost { id, url }
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiPageScreenshotPost {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub accept_language: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_user_agent: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_preset: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_width: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_height: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_scale_factor: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub full_page_screenshot: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_cookie_popup: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub switch_pool: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip_pool_for_scan: Option<String>,
}
impl OnPageApiPageScreenshotPost {
pub fn new(url: String) -> Self {
OnPageApiPageScreenshotPost {
url,
..OnPageApiPageScreenshotPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiContentParsingPost {
pub id: String,
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub markdown_view: Option<bool>,
}
impl OnPageApiContentParsingPost {
pub fn new(id: String, url: String) -> Self {
OnPageApiContentParsingPost {
id,
url,
..OnPageApiContentParsingPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiContentParsingLivePost {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_user_agent: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_preset: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_width: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_height: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_scale_factor: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub store_raw_html: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_cookie_popup: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub accept_language: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_javascript: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_browser_rendering: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_xhr: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub switch_pool: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip_pool_for_scan: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub markdown_view: Option<bool>,
}
impl OnPageApiContentParsingLivePost {
pub fn new(url: String) -> Self {
OnPageApiContentParsingLivePost {
url,
..OnPageApiContentParsingLivePost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiInstantPagesPost {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_user_agent: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_preset: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_width: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_height: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_scale_factor: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub store_raw_html: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub accept_language: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub load_resources: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_javascript: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_browser_rendering: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_cookie_popup: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub return_despite_timeout: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub enable_xhr: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_js: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub validate_micromarkup: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub check_spell: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub checks_threshold: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub switch_pool: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ip_pool_for_scan: Option<String>,
}
impl OnPageApiInstantPagesPost {
pub fn new(url: String) -> Self {
OnPageApiInstantPagesPost {
url,
..OnPageApiInstantPagesPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiIdListPost {
pub datetime_from: String,
pub datetime_to: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sort: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_metadata: Option<bool>,
}
impl OnPageApiIdListPost {
pub fn new(datetime_from: String, datetime_to: String) -> Self {
OnPageApiIdListPost {
datetime_from,
datetime_to,
..OnPageApiIdListPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiErrorsPost {
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filtered_function: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub datetime_from: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub datetime_to: Option<String>,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiForceStopPost {
pub id: String,
}
impl OnPageApiForceStopPost {
pub fn new(id: String) -> Self {
OnPageApiForceStopPost { id }
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiLighthouseTaskPost {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub for_mobile: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub categories: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub audits: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub language_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub language_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pingback_url: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub postback_url: Option<String>,
}
impl OnPageApiLighthouseTaskPost {
pub fn new(url: String) -> Self {
OnPageApiLighthouseTaskPost {
url,
..OnPageApiLighthouseTaskPost::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct OnPageApiLighthouseLivePost {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub for_mobile: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub categories: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub audits: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub language_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub language_code: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_user_agent: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_width: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_height: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_screen_scale_factor: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_network_throttling_method: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_cpu_throttling_multiplier: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub browser_network_throttling: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl OnPageApiLighthouseLivePost {
pub fn new(url: String) -> Self {
OnPageApiLighthouseLivePost {
url,
..OnPageApiLighthouseLivePost::default()
}
}
}