#![cfg(feature = "cloudflare_tasks")]
#![allow(clippy::too_many_arguments, clippy::type_complexity)]
#![allow(
clippy::missing_errors_doc,
clippy::doc_markdown,
clippy::useless_format
)]
#![allow(unused_imports)]
use foundation_macros::JsonHash;
use foundation_netio::shared::client::http_client::HttpClient;
use foundation_netio::{DynNetClient, PreparedRequestBuilder};
use serde::{Deserialize, Serialize};
use super::shared::ApiResponse;
pub type R2SlurperApiV4Error = Vec<std::collections::HashMap<String, serde_json::Value>>;
pub type R2SlurperApiV4Message = Vec<String>;
pub type R2SlurperApiV4Success = super::shared::ErrorsMessagesSuccessObject2;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2SlurperCreateJobRequest {
pub overwrite: Option<bool>,
pub source: Option<serde_json::Value>,
pub target: Option<R2SlurperR2TargetSchema>,
}
pub type R2SlurperGCSLikeCredsSchema = super::shared::ClientEmailPrivateKeyObject;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2SlurperGCSSourceSchema {
pub bucket: String,
pub keys: Option<Vec<String>>,
#[serde(rename = "pathPrefix")]
pub path_prefix: Option<String>,
pub secret: R2SlurperGCSLikeCredsSchema,
pub vendor: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2SlurperJobResponse {
#[serde(rename = "createdAt")]
pub created_at: Option<String>,
#[serde(rename = "finishedAt")]
pub finished_at: Option<String>,
pub id: Option<String>,
pub overwrite: Option<bool>,
pub source: Option<serde_json::Value>,
pub status: Option<String>,
pub target: Option<std::collections::HashMap<String, serde_json::Value>>,
}
pub type R2SlurperJobStatus = String;
pub type R2SlurperJurisdiction = String;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2SlurperR2SourceSchema {
pub bucket: String,
pub jurisdiction: Option<String>,
pub keys: Option<Vec<String>>,
#[serde(rename = "pathPrefix")]
pub path_prefix: Option<String>,
pub secret: R2SlurperS3LikeCredsSchema,
pub vendor: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2SlurperR2TargetSchema {
pub bucket: String,
pub jurisdiction: Option<String>,
pub secret: R2SlurperS3LikeCredsSchema,
pub vendor: String,
}
pub type R2SlurperS3LikeCredsSchema = super::shared::AccessKeyIdSecretAccessKeyObject;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2SlurperS3SourceSchema {
pub bucket: String,
pub endpoint: Option<String>,
pub keys: Option<Vec<String>>,
#[serde(rename = "pathPrefix")]
pub path_prefix: Option<String>,
pub region: Option<String>,
pub secret: R2SlurperS3LikeCredsSchema,
pub vendor: String,
}
pub type R2SlurperSourceJobSchema = serde_json::Value;
pub type SlurperAbortAllJobsResponse = super::shared::ApiEnvelope3<Option<String>>;
pub type SlurperAbortJobResponse = super::shared::ApiEnvelope3<Option<String>>;
pub type SlurperCreateJobResponse =
super::shared::ApiEnvelope3<Option<std::collections::HashMap<String, serde_json::Value>>>;
pub type SlurperGetJobResponse = super::shared::ApiEnvelope3<Option<R2SlurperJobResponse>>;
pub type SlurperListJobsResponse = super::shared::ApiEnvelope3<Option<Vec<R2SlurperJobResponse>>>;
pub type SlurperPauseJobResponse = super::shared::ApiEnvelope3<Option<String>>;
pub type SlurperResumeJobResponse = super::shared::ApiEnvelope3<Option<String>>;
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct SlurperListJobsArgs {
pub account_id: String,
pub limit: Option<String>,
pub offset: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct SlurperCreateJobArgs {
pub account_id: String,
pub body: R2SlurperCreateJobRequest,
}
pub type SlurperAbortAllJobsArgs = super::shared::AccountIdArgs;
pub type SlurperGetJobArgs = super::shared::AccountIdJobIdArgs;
pub type SlurperAbortJobArgs = super::shared::AccountIdJobIdArgs;
pub type SlurperPauseJobArgs = super::shared::AccountIdJobIdArgs;
pub type SlurperResumeJobArgs = super::shared::AccountIdJobIdArgs;
pub async fn slurper_list_jobs_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &SlurperListJobsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<SlurperListJobsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/slurper/jobs", args.account_id,);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
builder = builder.query("limit", args.limit.as_deref());
builder = builder.query("offset", args.offset.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn slurper_create_job_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &SlurperCreateJobArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<SlurperCreateJobResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/slurper/jobs", args.account_id,);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::post(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
builder = builder
.body_json(&args.body)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn slurper_abort_all_jobs_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &SlurperAbortAllJobsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<SlurperAbortAllJobsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/slurper/jobs/abortAll", args.account_id,);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::put(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn slurper_get_job_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &SlurperGetJobArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<SlurperGetJobResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/slurper/jobs/{}", args.account_id, args.job_id,);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn slurper_abort_job_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &SlurperAbortJobArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<SlurperAbortJobResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/slurper/jobs/{}/abort",
args.account_id, args.job_id,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::put(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn slurper_pause_job_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &SlurperPauseJobArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<SlurperPauseJobResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/slurper/jobs/{}/pause",
args.account_id, args.job_id,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::put(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn slurper_resume_job_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &SlurperResumeJobArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<SlurperResumeJobResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/slurper/jobs/{}/resume",
args.account_id, args.job_id,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::put(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}