use super::{configuration, Error};
use crate::{apis::ResponseContent, models};
use reqwest;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Default)]
pub struct AddRecordsToRrsetParams {
pub id_or_name: String,
pub rr_name: String,
pub rr_type: String,
pub add_records_to_rrset_request: models::AddRecordsToRrsetRequest,
}
#[derive(Clone, Debug, Default)]
pub struct ChangeRrsetsProtectionParams {
pub id_or_name: String,
pub rr_name: String,
pub rr_type: String,
pub change_rrsets_protection_request: models::ChangeRrsetsProtectionRequest,
}
#[derive(Clone, Debug, Default)]
pub struct ChangeRrsetsTtlParams {
pub id_or_name: String,
pub rr_name: String,
pub rr_type: String,
pub change_rrsets_ttl_request: models::ChangeRrsetsTtlRequest,
}
#[derive(Clone, Debug, Default)]
pub struct ChangeZonesDefaultTtlParams {
pub id_or_name: String,
pub change_zones_default_ttl_request: models::ChangeZonesDefaultTtlRequest,
}
#[derive(Clone, Debug, Default)]
pub struct ChangeZonesPrimaryNameserversParams {
pub id_or_name: String,
pub change_zones_primary_nameservers_request: models::ChangeZonesPrimaryNameserversRequest,
}
#[derive(Clone, Debug, Default)]
pub struct ChangeZonesProtectionParams {
pub id_or_name: String,
pub change_zones_protection_request: models::ChangeZonesProtectionRequest,
}
#[derive(Clone, Debug, Default)]
pub struct CreateRrsetParams {
pub id_or_name: String,
pub body: models::ResourceRecordSetToCreate,
}
#[derive(Clone, Debug, Default)]
pub struct CreateZoneParams {
pub create_zone_request: models::CreateZoneRequest,
}
#[derive(Clone, Debug, Default)]
pub struct DeleteRrsetParams {
pub id_or_name: String,
pub rr_name: String,
pub rr_type: String,
}
#[derive(Clone, Debug, Default)]
pub struct DeleteZoneParams {
pub id_or_name: String,
}
#[derive(Clone, Debug, Default)]
pub struct ExportZoneFileParams {
pub id_or_name: String,
}
#[derive(Clone, Debug, Default)]
pub struct GetActionForZoneParams {
pub id_or_name: String,
pub action_id: i64,
}
#[derive(Clone, Debug, Default)]
pub struct GetRrsetParams {
pub id_or_name: String,
pub rr_name: String,
pub rr_type: String,
}
#[derive(Clone, Debug, Default)]
pub struct GetZoneParams {
pub id_or_name: String,
}
#[derive(Clone, Debug, Default)]
pub struct GetZoneActionParams {
pub id: i64,
}
#[derive(Clone, Debug, Default)]
pub struct ImportZoneFileParams {
pub id_or_name: String,
pub import_zone_file_request: models::ImportZoneFileRequest,
}
#[derive(Clone, Debug, Default)]
pub struct ListActionsForZoneParams {
pub id_or_name: String,
pub sort: Option<Vec<String>>,
pub status: Option<Vec<String>>,
pub page: Option<i64>,
pub per_page: Option<i64>,
}
#[derive(Clone, Debug, Default)]
pub struct ListRrsetsParams {
pub id_or_name: String,
pub name: Option<String>,
pub r#type: Option<Vec<String>>,
pub label_selector: Option<String>,
pub sort: Option<Vec<String>>,
pub page: Option<i64>,
pub per_page: Option<i64>,
}
#[derive(Clone, Debug, Default)]
pub struct ListZoneActionsParams {
pub id: Option<Vec<i64>>,
pub sort: Option<Vec<String>>,
pub status: Option<Vec<String>>,
pub page: Option<i64>,
pub per_page: Option<i64>,
}
#[derive(Clone, Debug, Default)]
pub struct ListZonesParams {
pub name: Option<String>,
pub mode: Option<String>,
pub label_selector: Option<String>,
pub sort: Option<Vec<String>>,
pub page: Option<i64>,
pub per_page: Option<i64>,
}
#[derive(Clone, Debug, Default)]
pub struct RemoveRecordsFromRrsetParams {
pub id_or_name: String,
pub rr_name: String,
pub rr_type: String,
pub remove_records_from_rrset_request: models::RemoveRecordsFromRrsetRequest,
}
#[derive(Clone, Debug, Default)]
pub struct ReplaceRrsetParams {
pub id_or_name: String,
pub rr_name: String,
pub rr_type: String,
pub replace_rrset_request: models::ReplaceRrsetRequest,
}
#[derive(Clone, Debug, Default)]
pub struct ReplaceZoneParams {
pub id_or_name: String,
pub replace_zone_request: models::ReplaceZoneRequest,
}
#[derive(Clone, Debug, Default)]
pub struct SetRecordsOfRrsetParams {
pub id_or_name: String,
pub rr_name: String,
pub rr_type: String,
pub set_records_of_rrset_request: models::SetRecordsOfRrsetRequest,
}
#[derive(Clone, Debug, Default)]
pub struct UpdateRecordsOfRrsetParams {
pub id_or_name: String,
pub rr_name: String,
pub rr_type: String,
pub update_records_of_rrset_request: models::UpdateRecordsOfRrsetRequest,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum AddRecordsToRrsetError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ChangeRrsetsProtectionError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ChangeRrsetsTtlError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ChangeZonesDefaultTtlError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ChangeZonesPrimaryNameserversError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ChangeZonesProtectionError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateRrsetError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CreateZoneError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DeleteRrsetError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum DeleteZoneError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ExportZoneFileError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetActionForZoneError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetRrsetError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetZoneError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum GetZoneActionError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ImportZoneFileError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ListActionsForZoneError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ListRrsetsError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ListZoneActionsError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ListZonesError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum RemoveRecordsFromRrsetError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ReplaceRrsetError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum ReplaceZoneError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum SetRecordsOfRrsetError {
UnknownValue(serde_json::Value),
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(untagged)]
pub enum UpdateRecordsOfRrsetError {
UnknownValue(serde_json::Value),
}
pub async fn add_records_to_rrset(
configuration: &configuration::Configuration,
params: AddRecordsToRrsetParams,
) -> Result<models::AddRecordsToRrsetResponse, Error<AddRecordsToRrsetError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let rr_name = params.rr_name;
let rr_type = params.rr_type;
let add_records_to_rrset_request = params.add_records_to_rrset_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/add_records",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name),
rr_name = crate::apis::urlencode(rr_name),
rr_type = crate::apis::urlencode(rr_type)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&add_records_to_rrset_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<AddRecordsToRrsetError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn change_rrsets_protection(
configuration: &configuration::Configuration,
params: ChangeRrsetsProtectionParams,
) -> Result<models::ChangeRrsetsProtectionResponse, Error<ChangeRrsetsProtectionError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let rr_name = params.rr_name;
let rr_type = params.rr_type;
let change_rrsets_protection_request = params.change_rrsets_protection_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/change_protection",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name),
rr_name = crate::apis::urlencode(rr_name),
rr_type = crate::apis::urlencode(rr_type)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&change_rrsets_protection_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ChangeRrsetsProtectionError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn change_rrsets_ttl(
configuration: &configuration::Configuration,
params: ChangeRrsetsTtlParams,
) -> Result<models::ChangeRrsetsTtlResponse, Error<ChangeRrsetsTtlError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let rr_name = params.rr_name;
let rr_type = params.rr_type;
let change_rrsets_ttl_request = params.change_rrsets_ttl_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/change_ttl",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name),
rr_name = crate::apis::urlencode(rr_name),
rr_type = crate::apis::urlencode(rr_type)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&change_rrsets_ttl_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ChangeRrsetsTtlError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn change_zones_default_ttl(
configuration: &configuration::Configuration,
params: ChangeZonesDefaultTtlParams,
) -> Result<models::ChangeZonesDefaultTtlResponse, Error<ChangeZonesDefaultTtlError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let change_zones_default_ttl_request = params.change_zones_default_ttl_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/actions/change_ttl",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&change_zones_default_ttl_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ChangeZonesDefaultTtlError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn change_zones_primary_nameservers(
configuration: &configuration::Configuration,
params: ChangeZonesPrimaryNameserversParams,
) -> Result<models::ChangeZonesPrimaryNameserversResponse, Error<ChangeZonesPrimaryNameserversError>>
{
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let change_zones_primary_nameservers_request = params.change_zones_primary_nameservers_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/actions/change_primary_nameservers",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&change_zones_primary_nameservers_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ChangeZonesPrimaryNameserversError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn change_zones_protection(
configuration: &configuration::Configuration,
params: ChangeZonesProtectionParams,
) -> Result<models::ChangeZonesProtectionResponse, Error<ChangeZonesProtectionError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let change_zones_protection_request = params.change_zones_protection_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/actions/change_protection",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&change_zones_protection_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ChangeZonesProtectionError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn create_rrset(
configuration: &configuration::Configuration,
params: CreateRrsetParams,
) -> Result<models::CreateRrsetResponse, Error<CreateRrsetError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let body = params.body;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&body);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<CreateRrsetError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn create_zone(
configuration: &configuration::Configuration,
params: CreateZoneParams,
) -> Result<models::CreateZoneResponse, Error<CreateZoneError>> {
let local_var_configuration = configuration;
let create_zone_request = params.create_zone_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!("{}/zones", local_base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&create_zone_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<CreateZoneError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn delete_rrset(
configuration: &configuration::Configuration,
params: DeleteRrsetParams,
) -> Result<models::DeleteRrsetResponse, Error<DeleteRrsetError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let rr_name = params.rr_name;
let rr_type = params.rr_type;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets/{rr_name}/{rr_type}",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name),
rr_name = crate::apis::urlencode(rr_name),
rr_type = crate::apis::urlencode(rr_type)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<DeleteRrsetError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn delete_zone(
configuration: &configuration::Configuration,
params: DeleteZoneParams,
) -> Result<models::DeleteZoneResponse, Error<DeleteZoneError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<DeleteZoneError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn export_zone_file(
configuration: &configuration::Configuration,
params: ExportZoneFileParams,
) -> Result<models::ExportZoneFileResponse, Error<ExportZoneFileError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/zonefile",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ExportZoneFileError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn get_action_for_zone(
configuration: &configuration::Configuration,
params: GetActionForZoneParams,
) -> Result<models::GetActionResponse, Error<GetActionForZoneError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let action_id = params.action_id;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/actions/{action_id}",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name),
action_id = action_id
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetActionForZoneError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn get_rrset(
configuration: &configuration::Configuration,
params: GetRrsetParams,
) -> Result<models::GetRrsetResponse, Error<GetRrsetError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let rr_name = params.rr_name;
let rr_type = params.rr_type;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets/{rr_name}/{rr_type}",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name),
rr_name = crate::apis::urlencode(rr_name),
rr_type = crate::apis::urlencode(rr_type)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetRrsetError> = serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn get_zone(
configuration: &configuration::Configuration,
params: GetZoneParams,
) -> Result<models::GetZoneResponse, Error<GetZoneError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetZoneError> = serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn get_zone_action(
configuration: &configuration::Configuration,
params: GetZoneActionParams,
) -> Result<models::GetActionResponse, Error<GetZoneActionError>> {
let local_var_configuration = configuration;
let id = params.id;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!("{}/zones/actions/{id}", local_base_path, id = id);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetZoneActionError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn import_zone_file(
configuration: &configuration::Configuration,
params: ImportZoneFileParams,
) -> Result<models::ImportZoneFileResponse, Error<ImportZoneFileError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let import_zone_file_request = params.import_zone_file_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/actions/import_zonefile",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&import_zone_file_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ImportZoneFileError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn list_actions_for_zone(
configuration: &configuration::Configuration,
params: ListActionsForZoneParams,
) -> Result<models::ListActionsResponse, Error<ListActionsForZoneError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let sort = params.sort;
let status = params.status;
let page = params.page;
let per_page = params.per_page;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/actions",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = sort {
local_var_req_builder = match "multi" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("sort".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"sort",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_str) = status {
local_var_req_builder = match "multi" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("status".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"status",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_str) = page {
local_var_req_builder =
local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = per_page {
local_var_req_builder =
local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ListActionsForZoneError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn list_rrsets(
configuration: &configuration::Configuration,
params: ListRrsetsParams,
) -> Result<models::ListRrsetsResponse, Error<ListRrsetsError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let name = params.name;
let r#type = params.r#type;
let label_selector = params.label_selector;
let sort = params.sort;
let page = params.page;
let per_page = params.per_page;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = name {
local_var_req_builder =
local_var_req_builder.query(&[("name", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = r#type {
local_var_req_builder = match "multi" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("type".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"type",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_str) = label_selector {
local_var_req_builder =
local_var_req_builder.query(&[("label_selector", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = sort {
local_var_req_builder = match "multi" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("sort".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"sort",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_str) = page {
local_var_req_builder =
local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = per_page {
local_var_req_builder =
local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ListRrsetsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn list_zone_actions(
configuration: &configuration::Configuration,
params: ListZoneActionsParams,
) -> Result<models::ListActionsResponse, Error<ListZoneActionsError>> {
let local_var_configuration = configuration;
let id = params.id;
let sort = params.sort;
let status = params.status;
let page = params.page;
let per_page = params.per_page;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!("{}/zones/actions", local_base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = id {
local_var_req_builder = match "multi" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("id".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"id",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_str) = sort {
local_var_req_builder = match "multi" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("sort".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"sort",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_str) = status {
local_var_req_builder = match "multi" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("status".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"status",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_str) = page {
local_var_req_builder =
local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = per_page {
local_var_req_builder =
local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ListZoneActionsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn list_zones(
configuration: &configuration::Configuration,
params: ListZonesParams,
) -> Result<models::ListZonesResponse, Error<ListZonesError>> {
let local_var_configuration = configuration;
let name = params.name;
let mode = params.mode;
let label_selector = params.label_selector;
let sort = params.sort;
let page = params.page;
let per_page = params.per_page;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!("{}/zones", local_base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = name {
local_var_req_builder =
local_var_req_builder.query(&[("name", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = mode {
local_var_req_builder =
local_var_req_builder.query(&[("mode", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = label_selector {
local_var_req_builder =
local_var_req_builder.query(&[("label_selector", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = sort {
local_var_req_builder = match "multi" {
"multi" => local_var_req_builder.query(
&local_var_str
.iter()
.map(|p| ("sort".to_owned(), p.to_string()))
.collect::<Vec<(std::string::String, std::string::String)>>(),
),
_ => local_var_req_builder.query(&[(
"sort",
&local_var_str
.iter()
.map(|p| p.to_string())
.collect::<Vec<String>>()
.join(",")
.to_string(),
)]),
};
}
if let Some(ref local_var_str) = page {
local_var_req_builder =
local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = per_page {
local_var_req_builder =
local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ListZonesError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn remove_records_from_rrset(
configuration: &configuration::Configuration,
params: RemoveRecordsFromRrsetParams,
) -> Result<models::RemoveRecordsFromRrsetResponse, Error<RemoveRecordsFromRrsetError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let rr_name = params.rr_name;
let rr_type = params.rr_type;
let remove_records_from_rrset_request = params.remove_records_from_rrset_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/remove_records",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name),
rr_name = crate::apis::urlencode(rr_name),
rr_type = crate::apis::urlencode(rr_type)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&remove_records_from_rrset_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<RemoveRecordsFromRrsetError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn replace_rrset(
configuration: &configuration::Configuration,
params: ReplaceRrsetParams,
) -> Result<models::ReplaceRrsetResponse, Error<ReplaceRrsetError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let rr_name = params.rr_name;
let rr_type = params.rr_type;
let replace_rrset_request = params.replace_rrset_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets/{rr_name}/{rr_type}",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name),
rr_name = crate::apis::urlencode(rr_name),
rr_type = crate::apis::urlencode(rr_type)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&replace_rrset_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ReplaceRrsetError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn replace_zone(
configuration: &configuration::Configuration,
params: ReplaceZoneParams,
) -> Result<models::ReplaceZoneResponse, Error<ReplaceZoneError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let replace_zone_request = params.replace_zone_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&replace_zone_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ReplaceZoneError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn set_records_of_rrset(
configuration: &configuration::Configuration,
params: SetRecordsOfRrsetParams,
) -> Result<models::SetRecordsOfRrsetResponse, Error<SetRecordsOfRrsetError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let rr_name = params.rr_name;
let rr_type = params.rr_type;
let set_records_of_rrset_request = params.set_records_of_rrset_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/set_records",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name),
rr_name = crate::apis::urlencode(rr_name),
rr_type = crate::apis::urlencode(rr_type)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&set_records_of_rrset_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SetRecordsOfRrsetError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
pub async fn update_records_of_rrset(
configuration: &configuration::Configuration,
params: UpdateRecordsOfRrsetParams,
) -> Result<models::UpdateRecordsOfRrsetResponse, Error<UpdateRecordsOfRrsetError>> {
let local_var_configuration = configuration;
let id_or_name = params.id_or_name;
let rr_name = params.rr_name;
let rr_type = params.rr_type;
let update_records_of_rrset_request = params.update_records_of_rrset_request;
let local_var_client = &local_var_configuration.client;
let local_base_path = local_var_configuration.get_base_path("https://api.hetzner.cloud/v1");
let local_var_uri_str = format!(
"{}/zones/{id_or_name}/rrsets/{rr_name}/{rr_type}/actions/update_records",
local_base_path,
id_or_name = crate::apis::urlencode(id_or_name),
rr_name = crate::apis::urlencode(rr_name),
rr_type = crate::apis::urlencode(rr_type)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&update_records_of_rrset_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateRecordsOfRrsetError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}