use crate::entity::{
BacklinksApiAnchor, BacklinksApiBacklinks, BacklinksApiBulkBacklinks,
BacklinksApiBulkNewLostBacklinks, BacklinksApiBulkNewLostReferringDomains,
BacklinksApiBulkPagesSummary, BacklinksApiBulkRanks, BacklinksApiBulkReferringDomains,
BacklinksApiBulkSpamScore, BacklinksApiCompetitors, BacklinksApiDomainIntersection,
BacklinksApiDomainPages, BacklinksApiDomainPagesSummary, BacklinksApiError,
BacklinksApiHistory, BacklinksApiIdListItem, BacklinksApiIndex, BacklinksApiPageIntersection,
BacklinksApiReferringDomains, BacklinksApiReferringNetworks, BacklinksApiSummary,
BacklinksApiTimeseriesNewLostSummary, BacklinksApiTimeseriesSummary,
};
use crate::{DataForSeoApiResponse, DataForSeoClient};
use serde::{Deserialize, Serialize};
use serde_json::Value;
pub struct BacklinksApi<'a> {
client: &'a DataForSeoClient,
}
impl DataForSeoClient {
pub fn backlinks(&self) -> BacklinksApi<'_> {
BacklinksApi { client: self }
}
}
impl BacklinksApi<'_> {
pub async fn index(&self) -> DataForSeoApiResponse<BacklinksApiIndex> {
self.client.http_get("/v3/backlinks/index").await
}
pub async fn available_filters(&self) -> DataForSeoApiResponse<Value> {
self.client
.http_get("/v3/backlinks/available_filters")
.await
}
pub async fn summary(
&self,
data: Vec<BacklinksApiSummaryPost>,
) -> DataForSeoApiResponse<BacklinksApiSummary> {
self.client
.http_post("/v3/backlinks/summary/live", &data)
.await
}
pub async fn history(
&self,
data: Vec<BacklinksApiHistoryPost>,
) -> DataForSeoApiResponse<BacklinksApiHistory> {
self.client
.http_post("/v3/backlinks/history/live", &data)
.await
}
pub async fn backlinks(
&self,
data: Vec<BacklinksApiBacklinksPost>,
) -> DataForSeoApiResponse<BacklinksApiBacklinks> {
self.client
.http_post("/v3/backlinks/backlinks/live", &data)
.await
}
pub async fn anchor(
&self,
data: Vec<BacklinksApiAnchorPost>,
) -> DataForSeoApiResponse<BacklinksApiAnchor> {
self.client
.http_post("/v3/backlinks/anchors/live", &data)
.await
}
pub async fn domain_pages(
&self,
data: Vec<BacklinksApiDomainPagesPost>,
) -> DataForSeoApiResponse<BacklinksApiDomainPages> {
self.client
.http_post("/v3/backlinks/domain_pages/live", &data)
.await
}
pub async fn domain_pages_summary(
&self,
data: Vec<BacklinksApiDomainPagesSummaryPost>,
) -> DataForSeoApiResponse<BacklinksApiDomainPagesSummary> {
self.client
.http_post("/v3/backlinks/domain_pages_summary/live", &data)
.await
}
pub async fn referring_domains(
&self,
data: Vec<BacklinksApiReferringDomainsPost>,
) -> DataForSeoApiResponse<BacklinksApiReferringDomains> {
self.client
.http_post("/v3/backlinks/referring_domains/live", &data)
.await
}
pub async fn referring_networks(
&self,
data: Vec<BacklinksApiReferringNetworksPost>,
) -> DataForSeoApiResponse<BacklinksApiReferringNetworks> {
self.client
.http_post("/v3/backlinks/referring_networks/live", &data)
.await
}
pub async fn competitors(
&self,
data: Vec<BacklinksApiCompetitorsPost>,
) -> DataForSeoApiResponse<BacklinksApiCompetitors> {
self.client
.http_post("/v3/backlinks/competitors/live", &data)
.await
}
pub async fn domain_intersection(
&self,
data: Vec<BacklinksApiDomainIntersectionPost>,
) -> DataForSeoApiResponse<BacklinksApiDomainIntersection> {
self.client
.http_post("/v3/backlinks/domain_intersection/live", &data)
.await
}
pub async fn page_intersection(
&self,
data: Vec<BacklinksApiPageIntersectionPost>,
) -> DataForSeoApiResponse<BacklinksApiPageIntersection> {
self.client
.http_post("/v3/backlinks/page_intersection/live", &data)
.await
}
pub async fn timeseries_summary(
&self,
data: Vec<BacklinksApiTimeseriesSummaryPost>,
) -> DataForSeoApiResponse<BacklinksApiTimeseriesSummary> {
self.client
.http_post("/v3/backlinks/timeseries_summary/live", &data)
.await
}
pub async fn timeseries_new_lost_summary(
&self,
data: Vec<BacklinksApiTimeseriesNewLostSummaryPost>,
) -> DataForSeoApiResponse<BacklinksApiTimeseriesNewLostSummary> {
self.client
.http_post("/v3/backlinks/timeseries_new_lost_summary/live", &data)
.await
}
pub async fn bulk_ranks(
&self,
data: Vec<BacklinksApiBulkRanksPost>,
) -> DataForSeoApiResponse<BacklinksApiBulkRanks> {
self.client
.http_post("/v3/backlinks/bulk_ranks/live", &data)
.await
}
pub async fn bulk_backlinks(
&self,
data: Vec<BacklinksApiBulkBacklinksPost>,
) -> DataForSeoApiResponse<BacklinksApiBulkBacklinks> {
self.client
.http_post("/v3/backlinks/bulk_backlinks/live", &data)
.await
}
pub async fn bulk_spam_score(
&self,
data: Vec<BacklinksApiBulkSpamScorePost>,
) -> DataForSeoApiResponse<BacklinksApiBulkSpamScore> {
self.client
.http_post("/v3/backlinks/bulk_spam_score/live", &data)
.await
}
pub async fn bulk_new_lost_backlinks(
&self,
data: Vec<BacklinksApiBulkNewLostBacklinksPost>,
) -> DataForSeoApiResponse<BacklinksApiBulkNewLostBacklinks> {
self.client
.http_post("/v3/backlinks/bulk_new_lost_backlinks/live", &data)
.await
}
pub async fn bulk_new_lost_referring_domains(
&self,
data: Vec<BacklinksApiBulkNewLostReferringDomainsPost>,
) -> DataForSeoApiResponse<BacklinksApiBulkNewLostReferringDomains> {
self.client
.http_post("/v3/backlinks/bulk_new_lost_referring_domains/live", &data)
.await
}
pub async fn bulk_referring_domains(
&self,
data: Vec<BacklinksApiBulkReferringDomainsPost>,
) -> DataForSeoApiResponse<BacklinksApiBulkReferringDomains> {
self.client
.http_post("/v3/backlinks/bulk_referring_domains/live", &data)
.await
}
pub async fn bulk_pages_summary(
&self,
data: Vec<BacklinksApiBulkPagesSummaryPost>,
) -> DataForSeoApiResponse<BacklinksApiBulkPagesSummary> {
self.client
.http_post("/v3/backlinks/bulk_pages_summary/live", &data)
.await
}
pub async fn errors(
&self,
data: Vec<BacklinksApiErrorsPost>,
) -> DataForSeoApiResponse<BacklinksApiError> {
self.client.http_post("/v3/backlinks/errors", &data).await
}
pub async fn id_list(
&self,
data: Vec<BacklinksApiIdListPost>,
) -> DataForSeoApiResponse<BacklinksApiIdListItem> {
self.client.http_post("/v3/backlinks/id_list", &data).await
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiSummaryPost {
pub target: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_indirect_links: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_internal_backlinks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub internal_list_limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_status_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiSummaryPost {
pub fn new(target: &str) -> BacklinksApiSummaryPost {
BacklinksApiSummaryPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiHistoryPost {
pub target: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_from: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_to: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiHistoryPost {
pub fn new(target: &str) -> BacklinksApiHistoryPost {
BacklinksApiHistoryPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiBacklinksPost {
pub target: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_mode: Option<Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub 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 offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub search_after_token: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_status_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_indirect_links: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_internal_backlinks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiBacklinksPost {
pub fn new(target: &str) -> BacklinksApiBacklinksPost {
BacklinksApiBacklinksPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiAnchorPost {
pub target: 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 internal_list_limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_status_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub 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 backlinks_filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_indirect_links: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_internal_backlinks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiAnchorPost {
pub fn new(target: &str) -> BacklinksApiAnchorPost {
BacklinksApiAnchorPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiDomainPagesPost {
pub target: 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 internal_list_limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_status_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub 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 backlinks_filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_internal_backlinks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiDomainPagesPost {
pub fn new(target: &str) -> BacklinksApiDomainPagesPost {
BacklinksApiDomainPagesPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiDomainPagesSummaryPost {
pub target: 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 internal_list_limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_status_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub 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 backlinks_filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_indirect_links: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_internal_backlinks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiDomainPagesSummaryPost {
pub fn new(target: &str) -> BacklinksApiDomainPagesSummaryPost {
BacklinksApiDomainPagesSummaryPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiReferringDomainsPost {
pub target: 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 internal_list_limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_status_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub 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 backlinks_filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_indirect_links: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_internal_backlinks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiReferringDomainsPost {
pub fn new(target: &str) -> BacklinksApiReferringDomainsPost {
BacklinksApiReferringDomainsPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiReferringNetworksPost {
pub target: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub network_address_type: 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 internal_list_limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_status_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub 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 backlinks_filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_indirect_links: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_internal_backlinks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiReferringNetworksPost {
pub fn new(target: &str) -> BacklinksApiReferringNetworksPost {
BacklinksApiReferringNetworksPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiCompetitorsPost {
pub target: 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 order_by: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub main_domain: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_large_domains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_internal_backlinks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiCompetitorsPost {
pub fn new(target: &str) -> BacklinksApiCompetitorsPost {
BacklinksApiCompetitorsPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiDomainIntersectionPost {
pub targets: Value,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_targets: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub 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 offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub internal_list_limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_status_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_filters: Option<Vec<Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_indirect_links: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_internal_backlinks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub intersection_mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiDomainIntersectionPost {
pub fn new(targets: Value) -> BacklinksApiDomainIntersectionPost {
BacklinksApiDomainIntersectionPost {
targets,
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiPageIntersectionPost {
pub targets: Value,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_targets: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub backlinks_status_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub 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 offset: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub internal_list_limit: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_indirect_links: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub exclude_internal_backlinks: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub intersection_mode: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiPageIntersectionPost {
pub fn new(targets: Value) -> BacklinksApiPageIntersectionPost {
BacklinksApiPageIntersectionPost {
targets,
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiTimeseriesSummaryPost {
pub target: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_from: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_to: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub group_range: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiTimeseriesSummaryPost {
pub fn new(target: &str) -> BacklinksApiTimeseriesSummaryPost {
BacklinksApiTimeseriesSummaryPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiTimeseriesNewLostSummaryPost {
pub target: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_from: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_to: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub group_range: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiTimeseriesNewLostSummaryPost {
pub fn new(target: &str) -> BacklinksApiTimeseriesNewLostSummaryPost {
BacklinksApiTimeseriesNewLostSummaryPost {
target: target.to_string(),
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiBulkRanksPost {
pub targets: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiBulkRanksPost {
pub fn new(targets: Vec<String>) -> BacklinksApiBulkRanksPost {
BacklinksApiBulkRanksPost {
targets,
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiBulkBacklinksPost {
pub targets: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiBulkBacklinksPost {
pub fn new(targets: Vec<String>) -> BacklinksApiBulkBacklinksPost {
BacklinksApiBulkBacklinksPost {
targets,
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiBulkSpamScorePost {
pub targets: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiBulkSpamScorePost {
pub fn new(targets: Vec<String>) -> BacklinksApiBulkSpamScorePost {
BacklinksApiBulkSpamScorePost {
targets,
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiBulkNewLostBacklinksPost {
pub targets: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_from: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiBulkNewLostBacklinksPost {
pub fn new(targets: Vec<String>) -> BacklinksApiBulkNewLostBacklinksPost {
BacklinksApiBulkNewLostBacklinksPost {
targets,
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiBulkNewLostReferringDomainsPost {
pub targets: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_from: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiBulkNewLostReferringDomainsPost {
pub fn new(targets: Vec<String>) -> BacklinksApiBulkNewLostReferringDomainsPost {
BacklinksApiBulkNewLostReferringDomainsPost {
targets,
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiBulkReferringDomainsPost {
pub targets: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiBulkReferringDomainsPost {
pub fn new(targets: Vec<String>) -> BacklinksApiBulkReferringDomainsPost {
BacklinksApiBulkReferringDomainsPost {
targets,
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiBulkPagesSummaryPost {
pub targets: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_subdomains: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub rank_scale: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tag: Option<String>,
}
impl BacklinksApiBulkPagesSummaryPost {
pub fn new(targets: Vec<String>) -> BacklinksApiBulkPagesSummaryPost {
BacklinksApiBulkPagesSummaryPost {
targets,
..Default::default()
}
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiErrorsPost {
#[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>,
}
impl BacklinksApiErrorsPost {
pub fn new() -> BacklinksApiErrorsPost {
BacklinksApiErrorsPost::default()
}
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct BacklinksApiIdListPost {
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 BacklinksApiIdListPost {
pub fn new(datetime_from: &str, datetime_to: &str) -> BacklinksApiIdListPost {
BacklinksApiIdListPost {
datetime_from: datetime_from.to_string(),
datetime_to: datetime_to.to_string(),
..Default::default()
}
}
}