#![cfg(feature = "cloudflare_storage")]
#![allow(clippy::too_many_arguments, clippy::type_complexity)]
#![allow(clippy::missing_errors_doc, clippy::doc_markdown, clippy::useless_format)]
#![allow(unused_imports)]
use foundation_netio::{DynNetClient, PreparedRequestBuilder};
use foundation_netio::shared::client::http_client::HttpClient;
use serde::{Deserialize, Serialize};
use foundation_macros::JsonHash;
use super::shared::ApiResponse;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct EnableCatalogResponse {
pub result: Option<R2DataCatalogCatalogActivationResponse>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct GetCatalogDetailsResponse {
pub result: Option<R2DataCatalogCatalog>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct GetMaintenanceConfigResponse {
pub result: Option<R2DataCatalogCatalogMaintenanceConfigResponse>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct GetTableMaintenanceConfigResponse {
pub result: Option<R2DataCatalogTableMaintenanceConfigResponse>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ListCatalogsResponse {
pub result: Option<R2DataCatalogCatalogList>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ListNamespacesResponse {
pub result: Option<R2DataCatalogNamespaceListResponse>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ListTablesResponse {
pub result: Option<R2DataCatalogTableListResponse>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsApiResponseCollection {
pub result: Option<Vec<serde_json::Value>>,
pub result_info: Option<MagicVisibilityPcapsResultInfo>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsApiResponseCommon {
pub errors: Vec<std::collections::HashMap<String, serde_json::Value>>,
pub messages: Vec<std::collections::HashMap<String, serde_json::Value>>,
pub result: serde_json::Value,
pub success: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsMessages {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsPcapsDestinationConf {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsPcapsOwnershipChallenge {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsPcapsOwnershipCollection {
pub result: Option<Vec<MagicVisibilityPcapsPcapsOwnershipResponse>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsPcapsOwnershipRequest {
pub destination_conf: MagicVisibilityPcapsPcapsDestinationConf,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsPcapsOwnershipResponse {
pub destination_conf: MagicVisibilityPcapsPcapsDestinationConf,
pub filename: MagicVisibilityPcapsPcapsOwnershipChallenge,
pub id: String,
pub status: String,
pub submitted: String,
pub validated: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsPcapsOwnershipSingleResponse {
pub result: Option<MagicVisibilityPcapsPcapsOwnershipResponse>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsPcapsOwnershipValidateRequest {
pub destination_conf: MagicVisibilityPcapsPcapsDestinationConf,
pub ownership_challenge: MagicVisibilityPcapsPcapsOwnershipChallenge,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct MagicVisibilityPcapsResultInfo {
pub count: Option<f64>,
pub page: Option<f64>,
pub per_page: Option<f64>,
pub total_count: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2AccountLevelMetrics {
#[serde(rename = "infrequentAccess")]
pub infrequent_access: Option<R2ClassBasedMetrics>,
pub standard: Option<R2ClassBasedMetrics>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2Bucket {
pub creation_date: Option<String>,
pub jurisdiction: Option<R2Jurisdiction>,
pub location: Option<R2BucketLocation>,
pub name: Option<R2BucketName>,
pub storage_class: Option<R2StorageClass>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2BucketConfig {
#[serde(rename = "bucketName")]
pub bucket_name: Option<String>,
pub queues: Option<Vec<R2QueuesConfig>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2BucketLocation {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2BucketLockRule {
pub condition: serde_json::Value,
pub enabled: bool,
pub id: String,
pub prefix: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2BucketLockRuleConfig {
pub rules: Option<Vec<serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2BucketName {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2ClassBasedMetrics {
pub published: Option<R2ObjectSizeMetrics>,
pub uploaded: Option<R2ObjectSizeMetrics>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2CorsRule {
pub allowed: std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "exposeHeaders")]
pub expose_headers: Option<Vec<String>>,
pub id: Option<String>,
#[serde(rename = "maxAgeSeconds")]
pub max_age_seconds: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2CreateBucketRequest {
#[serde(rename = "locationHint")]
pub location_hint: Option<R2BucketLocation>,
pub name: R2BucketName,
#[serde(rename = "storageClass")]
pub storage_class: Option<R2StorageClass>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2CreateBucketResponse {
pub result: Option<R2Bucket>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2CreateTempAccessCredentialsResponse {
pub result: Option<R2TempAccessCredsResponse>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogApiResponseErrors {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogApiResponseMessages {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogApiResponseSingle {
pub errors: Vec<std::collections::HashMap<String, serde_json::Value>>,
pub messages: Vec<std::collections::HashMap<String, serde_json::Value>>,
pub success: R2DataCatalogApiResponseSuccess,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogApiResponseSuccess {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalog {
pub bucket: String,
pub credential_status: Option<String>,
pub id: String,
pub maintenance_config: Option<serde_json::Value>,
pub name: String,
pub status: R2DataCatalogCatalogStatus,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalogActivationResponse {
pub id: String,
pub name: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalogCompactionConfig {
pub state: R2DataCatalogCatalogMaintenanceState,
pub target_size_mb: R2DataCatalogCatalogTargetFileSize,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalogCredentialRequest {
pub token: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalogList {
pub warehouses: Vec<R2DataCatalogCatalog>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalogMaintenanceConfig {
pub compaction: Option<R2DataCatalogCatalogCompactionConfig>,
pub snapshot_expiration: Option<R2DataCatalogSnapshotExpirationConfig>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalogMaintenanceConfigResponse {
pub credential_status: R2DataCatalogCredentialStatus,
pub maintenance_config: R2DataCatalogCatalogMaintenanceConfig,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalogMaintenanceState {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalogMaintenanceUpdateRequest {
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalogStatus {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCatalogTargetFileSize {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCompactionUpdateParams {
pub state: Option<serde_json::Value>,
pub target_size_mb: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogCredentialStatus {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogMaintenanceUpdateParams {
pub compaction: Option<R2DataCatalogCompactionUpdateParams>,
pub snapshot_expiration: Option<R2DataCatalogSnapshotExpirationUpdateParams>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogNamespaceDetails {
pub created_at: Option<String>,
pub namespace: Vec<String>,
pub namespace_uuid: String,
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogNamespaceIdentifier {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogNamespaceListResponse {
pub details: Option<Vec<R2DataCatalogNamespaceDetails>>,
pub namespace_uuids: Option<Vec<String>>,
pub namespaces: Vec<Vec<String>>,
pub next_page_token: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogSnapshotExpirationConfig {
pub max_snapshot_age: String,
pub min_snapshots_to_keep: i64,
pub state: R2DataCatalogCatalogMaintenanceState,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogSnapshotExpirationUpdateParams {
pub max_snapshot_age: Option<String>,
pub min_snapshots_to_keep: Option<i64>,
pub state: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogTableCompactionConfig {
pub state: R2DataCatalogCatalogMaintenanceState,
pub target_size_mb: R2DataCatalogCatalogTargetFileSize,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogTableDetails {
pub created_at: Option<String>,
pub identifier: R2DataCatalogTableIdentifier,
pub location: Option<String>,
pub metadata_location: Option<String>,
pub table_uuid: String,
pub updated_at: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogTableIdentifier {
pub name: String,
pub namespace: Vec<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogTableListResponse {
pub details: Option<Vec<R2DataCatalogTableDetails>>,
pub identifiers: Vec<R2DataCatalogTableIdentifier>,
pub next_page_token: Option<String>,
pub table_uuids: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogTableMaintenanceConfig {
pub compaction: Option<R2DataCatalogTableCompactionConfig>,
pub snapshot_expiration: Option<R2DataCatalogSnapshotExpirationConfig>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogTableMaintenanceConfigResponse {
pub maintenance_config: R2DataCatalogTableMaintenanceConfig,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DataCatalogTableMaintenanceUpdateRequest {
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DeleteBucketCorsPolicyResponse {
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2DeleteBucketSippyConfigResponse {
pub result: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2EnableSippyAws {
pub destination: Option<std::collections::HashMap<String, serde_json::Value>>,
pub source: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2EnableSippyGcs {
pub destination: Option<std::collections::HashMap<String, serde_json::Value>>,
pub source: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2EnableSippyS3 {
pub destination: Option<std::collections::HashMap<String, serde_json::Value>>,
pub source: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2Errors {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2EventNotificationDeleteConfigRequest {
#[serde(rename = "ruleIds")]
pub rule_ids: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2EventNotificationDeleteConfigResponse {
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2GetAccountLevelMetricsResponse {
pub result: Option<R2AccountLevelMetrics>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2GetBucketCorsPolicyResponse {
pub result: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2GetBucketLifecycleConfigurationResponse {
pub result: Option<R2LifecycleConfig>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2GetBucketLocalUploadsConfigurationResponse {
pub result: Option<R2LocalUploadsConfiguration>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2GetBucketLockConfigurationResponse {
pub result: Option<R2BucketLockRuleConfig>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2GetBucketResponse {
pub result: Option<R2Bucket>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2GetBucketSippyConfigResponse {
pub result: Option<R2Sippy>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2GetEventNotificationConfigResponse {
pub result: Option<R2QueuesConfig>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2GetEventNotificationConfigsResponse {
pub result: Option<R2BucketConfig>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2Jurisdiction {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2LifecycleConfig {
pub rules: Option<Vec<serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2LifecycleRule {
#[serde(rename = "abortMultipartUploadsTransition")]
pub abort_multipart_uploads_transition: Option<std::collections::HashMap<String, serde_json::Value>>,
pub conditions: std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "deleteObjectsTransition")]
pub delete_objects_transition: Option<std::collections::HashMap<String, serde_json::Value>>,
pub enabled: bool,
pub id: String,
#[serde(rename = "storageClassTransitions")]
pub storage_class_transitions: Option<Vec<serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2LifecycleStorageTransition {
pub condition: serde_json::Value,
#[serde(rename = "storageClass")]
pub storage_class: String,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2ListBucketsResponse {
pub result: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2LocalUploadsConfiguration {
pub enabled: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2Messages {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2ObjectSizeMetrics {
#[serde(rename = "metadataSize")]
pub metadata_size: Option<f64>,
pub objects: Option<f64>,
#[serde(rename = "payloadSize")]
pub payload_size: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PatchBucketResponse {
pub result: Option<R2Bucket>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutBucketCorsPolicyRequest {
pub rules: Option<Vec<R2CorsRule>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutBucketCorsPolicyResponse {
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutBucketLifecycleConfigurationRequest {
pub rules: Option<Vec<R2LifecycleRule>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutBucketLifecycleConfigurationResponse {
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutBucketLocalUploadsConfigurationRequest {
pub enabled: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutBucketLocalUploadsConfigurationResponse {
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutBucketLockConfigurationRequest {
pub rules: Option<Vec<R2BucketLockRule>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutBucketLockConfigurationResponse {
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutBucketSippyConfigRequest {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutBucketSippyConfigResponse {
pub result: Option<R2Sippy>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutEventNotificationConfigRequest {
pub rules: Vec<R2Rule>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2PutEventNotificationConfigResponse {
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2QueuesConfig {
#[serde(rename = "queueId")]
pub queue_id: Option<String>,
#[serde(rename = "queueName")]
pub queue_name: Option<String>,
pub rules: Option<Vec<serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2R2Action {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2ResultInfo {
pub cursor: Option<String>,
pub per_page: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2Rule {
pub actions: Vec<R2R2Action>,
pub description: Option<String>,
pub prefix: Option<String>,
pub suffix: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2Sippy {
pub destination: Option<std::collections::HashMap<String, serde_json::Value>>,
pub enabled: Option<bool>,
pub source: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2StorageClass {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2TempAccessCredsRequest {
pub bucket: String,
pub objects: Option<Vec<String>>,
#[serde(rename = "parentAccessKeyId")]
pub parent_access_key_id: String,
pub permission: String,
pub prefixes: Option<Vec<String>>,
#[serde(rename = "ttlSeconds")]
pub ttl_seconds: f64,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2TempAccessCredsResponse {
#[serde(rename = "accessKeyId")]
pub access_key_id: Option<String>,
#[serde(rename = "secretAccessKey")]
pub secret_access_key: Option<String>,
#[serde(rename = "sessionToken")]
pub session_token: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2V4Response {
pub errors: Vec<std::collections::HashMap<String, serde_json::Value>>,
pub messages: Vec<String>,
pub result: serde_json::Value,
pub success: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct R2V4ResponseList {
pub result_info: Option<R2ResultInfo>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct StoreCredentialsResponse {
pub result: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct UpdateMaintenanceConfigResponse {
pub result: Option<R2DataCatalogCatalogMaintenanceConfig>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct UpdateTableMaintenanceConfigResponse {
pub result: Option<R2DataCatalogTableMaintenanceConfig>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvAny {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvApiResponseCollection {
pub result_info: Option<WorkersKvResultInfo>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvApiResponseCommon {
pub errors: Vec<std::collections::HashMap<String, serde_json::Value>>,
pub messages: Vec<std::collections::HashMap<String, serde_json::Value>>,
pub success: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvApiResponseCommonNoResult {
pub result: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvBulkResult {
pub successful_key_count: Option<f64>,
pub unsuccessful_keys: Option<Vec<String>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvCreateRenameNamespaceBody {
pub title: WorkersKvNamespaceTitle,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvCursor {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvCursorResultInfo {
pub count: Option<f64>,
pub cursor: Option<WorkersKvCursor>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvKey {
pub expiration: Option<f64>,
pub metadata: Option<WorkersKvListMetadata>,
pub name: WorkersKvKeyName,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvKeyName {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvKeyNameBulk {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvListMetadata {
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvMessages {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespace {
pub id: WorkersKvNamespaceIdentifier,
pub supports_url_encoding: Option<bool>,
pub title: WorkersKvNamespaceTitle,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceCreateANamespaceResponse {
pub result: Option<WorkersKvNamespace>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceDeleteMultipleKeyValuePairsResponse {
pub result: Option<WorkersKvBulkResult>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceGetANamespaceResponse {
pub result: Option<WorkersKvNamespace>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceGetMultipleKeyValuePairsRequest {
pub keys: Vec<WorkersKvKeyNameBulk>,
#[serde(rename = "type")]
pub r#type: Option<String>,
#[serde(rename = "withMetadata")]
pub with_metadata: Option<bool>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceGetMultipleKeyValuePairsResponse {
pub result: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceIdentifier {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceListANamespaceSKeysResponse {
pub result: Option<Vec<WorkersKvKey>>,
pub result_info: Option<WorkersKvCursorResultInfo>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceListNamespacesResponse {
pub result: Option<Vec<WorkersKvNamespace>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceReadTheMetadataForAKeyResponse {
pub result: Option<WorkersKvListMetadata>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceRenameANamespaceResponse {
pub result: WorkersKvNamespace,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceTitle {
#[serde(flatten)]
pub data: std::collections::HashMap<String, serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvNamespaceWriteMultipleKeyValuePairsResponse {
pub result: Option<WorkersKvBulkResult>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct WorkersKvResultInfo {
pub count: Option<f64>,
pub page: Option<f64>,
pub per_page: Option<f64>,
pub total_count: Option<f64>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2GetEventNotificationConfigsArgs {
pub bucket_name: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2GetEventNotificationConfigArgs {
pub queue_id: String,
pub bucket_name: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2PutEventNotificationConfigArgs {
pub queue_id: String,
pub bucket_name: String,
pub account_id: String,
pub body: R2PutEventNotificationConfigRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2EventNotificationDeleteConfigArgs {
pub queue_id: String,
pub bucket_name: String,
pub account_id: String,
pub body: R2EventNotificationDeleteConfigRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct MagicPcapCollectionListPcaPsBucketOwnershipArgs {
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct MagicPcapCollectionAddBucketsForFullPacketCapturesArgs {
pub account_id: String,
pub body: MagicVisibilityPcapsPcapsOwnershipRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct MagicPcapCollectionValidateBucketsForFullPacketCapturesArgs {
pub account_id: String,
pub body: MagicVisibilityPcapsPcapsOwnershipValidateRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct MagicPcapCollectionDeleteBucketsForFullPacketCapturesArgs {
pub ownership_id: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ListCatalogsArgs {
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct GetCatalogDetailsArgs {
pub account_id: String,
pub bucket_name: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct StoreCredentialsArgs {
pub account_id: String,
pub bucket_name: String,
pub body: R2DataCatalogCatalogCredentialRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct DisableCatalogArgs {
pub account_id: String,
pub bucket_name: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct EnableCatalogArgs {
pub account_id: String,
pub bucket_name: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct GetMaintenanceConfigArgs {
pub account_id: String,
pub bucket_name: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct UpdateMaintenanceConfigArgs {
pub account_id: String,
pub bucket_name: String,
pub body: R2DataCatalogCatalogMaintenanceUpdateRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ListNamespacesArgs {
pub account_id: String,
pub bucket_name: String,
pub page_token: Option<String>,
pub page_size: Option<String>,
pub parent: Option<String>,
pub return_uuids: Option<String>,
pub return_details: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ListTablesArgs {
pub account_id: String,
pub bucket_name: String,
pub namespace: String,
pub page_token: Option<String>,
pub page_size: Option<String>,
pub return_uuids: Option<String>,
pub return_details: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct GetTableMaintenanceConfigArgs {
pub account_id: String,
pub bucket_name: String,
pub namespace: String,
pub table_name: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct UpdateTableMaintenanceConfigArgs {
pub account_id: String,
pub bucket_name: String,
pub namespace: String,
pub table_name: String,
pub body: R2DataCatalogTableMaintenanceUpdateRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2ListBucketsArgs {
pub account_id: String,
pub name_contains: Option<String>,
pub start_after: Option<String>,
pub per_page: Option<String>,
pub order: Option<String>,
pub direction: Option<String>,
pub cursor: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2CreateBucketArgs {
pub account_id: String,
pub body: R2CreateBucketRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2GetBucketArgs {
pub account_id: String,
pub bucket_name: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2PatchBucketArgs {
pub account_id: String,
pub bucket_name: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2DeleteBucketArgs {
pub bucket_name: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2GetBucketCorsPolicyArgs {
pub bucket_name: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2PutBucketCorsPolicyArgs {
pub bucket_name: String,
pub account_id: String,
pub body: R2PutBucketCorsPolicyRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2DeleteBucketCorsPolicyArgs {
pub bucket_name: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2GetBucketLifecycleConfigurationArgs {
pub bucket_name: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2PutBucketLifecycleConfigurationArgs {
pub bucket_name: String,
pub account_id: String,
pub body: R2PutBucketLifecycleConfigurationRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2GetBucketLocalUploadsConfigurationArgs {
pub bucket_name: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2PutBucketLocalUploadsConfigurationArgs {
pub bucket_name: String,
pub account_id: String,
pub body: R2PutBucketLocalUploadsConfigurationRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2GetBucketLockConfigurationArgs {
pub bucket_name: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2PutBucketLockConfigurationArgs {
pub bucket_name: String,
pub account_id: String,
pub body: R2PutBucketLockConfigurationRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2GetBucketSippyConfigArgs {
pub account_id: String,
pub bucket_name: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2PutBucketSippyConfigArgs {
pub account_id: String,
pub bucket_name: String,
pub body: R2PutBucketSippyConfigRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2DeleteBucketSippyConfigArgs {
pub bucket_name: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2GetAccountLevelMetricsArgs {
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct R2CreateTempAccessCredentialsArgs {
pub account_id: String,
pub body: R2TempAccessCredsRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceListNamespacesArgs {
pub account_id: String,
pub page: Option<String>,
pub per_page: Option<String>,
pub order: Option<String>,
pub direction: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceCreateANamespaceArgs {
pub account_id: String,
pub body: WorkersKvCreateRenameNamespaceBody,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceGetANamespaceArgs {
pub namespace_id: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceRenameANamespaceArgs {
pub namespace_id: String,
pub account_id: String,
pub body: WorkersKvCreateRenameNamespaceBody,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceRemoveANamespaceArgs {
pub namespace_id: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceWriteMultipleKeyValuePairsArgs {
pub namespace_id: String,
pub account_id: String,
pub body: Vec<serde_json::Value>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceDeleteMultipleKeyValuePairsArgs {
pub namespace_id: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceGetMultipleKeyValuePairsArgs {
pub namespace_id: String,
pub account_id: String,
pub body: WorkersKvNamespaceGetMultipleKeyValuePairsRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceListANamespaceSKeysArgs {
pub namespace_id: String,
pub account_id: String,
pub limit: Option<String>,
pub prefix: Option<String>,
pub cursor: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceReadTheMetadataForAKeyArgs {
pub key_name: String,
pub namespace_id: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceReadKeyValuePairArgs {
pub key_name: String,
pub namespace_id: String,
pub account_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceWriteKeyValuePairWithMetadataArgs {
pub key_name: String,
pub namespace_id: String,
pub account_id: String,
pub expiration: Option<String>,
pub expiration_ttl: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct WorkersKvNamespaceDeleteKeyValuePairArgs {
pub key_name: String,
pub namespace_id: String,
pub account_id: String,
}
pub async fn r2_get_event_notification_configs_request<F>(
client: DynNetClient,
args: &R2GetEventNotificationConfigsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2GetEventNotificationConfigsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/event_notifications/r2/{}/configuration",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2GetEventNotificationConfigsResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_get_event_notification_config_request<F>(
client: DynNetClient,
args: &R2GetEventNotificationConfigArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2GetEventNotificationConfigResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/event_notifications/r2/{}/configuration/queues/{}",
args.account_id,
args.bucket_name,
args.queue_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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2GetEventNotificationConfigResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_put_event_notification_config_request<F>(
client: DynNetClient,
args: &R2PutEventNotificationConfigArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2PutEventNotificationConfigResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/event_notifications/r2/{}/configuration/queues/{}",
args.account_id,
args.bucket_name,
args.queue_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()))?;
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2PutEventNotificationConfigResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_event_notification_delete_config_request<F>(
client: DynNetClient,
args: &R2EventNotificationDeleteConfigArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2EventNotificationDeleteConfigResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/event_notifications/r2/{}/configuration/queues/{}",
args.account_id,
args.bucket_name,
args.queue_id,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::delete(&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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2EventNotificationDeleteConfigResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn magic_pcap_collection_list_pca_ps_bucket_ownership_request<F>(
client: DynNetClient,
args: &MagicPcapCollectionListPcaPsBucketOwnershipArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<MagicVisibilityPcapsPcapsOwnershipCollection>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/pcaps/ownership",
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()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: MagicVisibilityPcapsPcapsOwnershipCollection = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn magic_pcap_collection_add_buckets_for_full_packet_captures_request<F>(
client: DynNetClient,
args: &MagicPcapCollectionAddBucketsForFullPacketCapturesArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<MagicVisibilityPcapsPcapsOwnershipSingleResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/pcaps/ownership",
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: MagicVisibilityPcapsPcapsOwnershipSingleResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn magic_pcap_collection_validate_buckets_for_full_packet_captures_request<F>(
client: DynNetClient,
args: &MagicPcapCollectionValidateBucketsForFullPacketCapturesArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<MagicVisibilityPcapsPcapsOwnershipSingleResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/pcaps/ownership/validate",
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: MagicVisibilityPcapsPcapsOwnershipSingleResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn magic_pcap_collection_delete_buckets_for_full_packet_captures_request<F>(
client: DynNetClient,
args: &MagicPcapCollectionDeleteBucketsForFullPacketCapturesArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<()>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/pcaps/ownership/{}",
args.account_id,
args.ownership_id,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::delete(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
Ok(ApiResponse { status: status as u16, headers, body: () })
}
pub async fn list_catalogs_request<F>(
client: DynNetClient,
args: &ListCatalogsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ListCatalogsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog",
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()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: ListCatalogsResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn get_catalog_details_request<F>(
client: DynNetClient,
args: &GetCatalogDetailsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<GetCatalogDetailsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog/{}",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: GetCatalogDetailsResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn store_credentials_request<F>(
client: DynNetClient,
args: &StoreCredentialsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<StoreCredentialsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog/{}/credential",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: StoreCredentialsResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn disable_catalog_request<F>(
client: DynNetClient,
args: &DisableCatalogArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<()>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog/{}/disable",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::post(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
Ok(ApiResponse { status: status as u16, headers, body: () })
}
pub async fn enable_catalog_request<F>(
client: DynNetClient,
args: &EnableCatalogArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<EnableCatalogResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog/{}/enable",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::post(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: EnableCatalogResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn get_maintenance_config_request<F>(
client: DynNetClient,
args: &GetMaintenanceConfigArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<GetMaintenanceConfigResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog/{}/maintenance-configs",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: GetMaintenanceConfigResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn update_maintenance_config_request<F>(
client: DynNetClient,
args: &UpdateMaintenanceConfigArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<UpdateMaintenanceConfigResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog/{}/maintenance-configs",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: UpdateMaintenanceConfigResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn list_namespaces_request<F>(
client: DynNetClient,
args: &ListNamespacesArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ListNamespacesResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog/{}/namespaces",
args.account_id,
args.bucket_name,
);
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("page_token", args.page_token.as_deref());
builder = builder.query("page_size", args.page_size.as_deref());
builder = builder.query("parent", args.parent.as_deref());
builder = builder.query("return_uuids", args.return_uuids.as_deref());
builder = builder.query("return_details", args.return_details.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: ListNamespacesResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn list_tables_request<F>(
client: DynNetClient,
args: &ListTablesArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ListTablesResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog/{}/namespaces/{}/tables",
args.account_id,
args.bucket_name,
args.namespace,
);
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("page_token", args.page_token.as_deref());
builder = builder.query("page_size", args.page_size.as_deref());
builder = builder.query("return_uuids", args.return_uuids.as_deref());
builder = builder.query("return_details", args.return_details.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: ListTablesResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn get_table_maintenance_config_request<F>(
client: DynNetClient,
args: &GetTableMaintenanceConfigArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<GetTableMaintenanceConfigResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog/{}/namespaces/{}/tables/{}/maintenance-configs",
args.account_id,
args.bucket_name,
args.namespace,
args.table_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: GetTableMaintenanceConfigResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn update_table_maintenance_config_request<F>(
client: DynNetClient,
args: &UpdateTableMaintenanceConfigArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<UpdateTableMaintenanceConfigResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2-catalog/{}/namespaces/{}/tables/{}/maintenance-configs",
args.account_id,
args.bucket_name,
args.namespace,
args.table_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: UpdateTableMaintenanceConfigResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_list_buckets_request<F>(
client: DynNetClient,
args: &R2ListBucketsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2ListBucketsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets",
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("name_contains", args.name_contains.as_deref());
builder = builder.query("start_after", args.start_after.as_deref());
builder = builder.query("per_page", args.per_page.as_deref());
builder = builder.query("order", args.order.as_deref());
builder = builder.query("direction", args.direction.as_deref());
builder = builder.query("cursor", args.cursor.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2ListBucketsResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_create_bucket_request<F>(
client: DynNetClient,
args: &R2CreateBucketArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2CreateBucketResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets",
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2CreateBucketResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_get_bucket_request<F>(
client: DynNetClient,
args: &R2GetBucketArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2GetBucketResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2GetBucketResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_patch_bucket_request<F>(
client: DynNetClient,
args: &R2PatchBucketArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2PatchBucketResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::patch(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2PatchBucketResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_delete_bucket_request<F>(
client: DynNetClient,
args: &R2DeleteBucketArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2V4Response>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::delete(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2V4Response = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_get_bucket_cors_policy_request<F>(
client: DynNetClient,
args: &R2GetBucketCorsPolicyArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2GetBucketCorsPolicyResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/cors",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2GetBucketCorsPolicyResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_put_bucket_cors_policy_request<F>(
client: DynNetClient,
args: &R2PutBucketCorsPolicyArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2PutBucketCorsPolicyResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/cors",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::put(&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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2PutBucketCorsPolicyResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_delete_bucket_cors_policy_request<F>(
client: DynNetClient,
args: &R2DeleteBucketCorsPolicyArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2DeleteBucketCorsPolicyResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/cors",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::delete(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2DeleteBucketCorsPolicyResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_get_bucket_lifecycle_configuration_request<F>(
client: DynNetClient,
args: &R2GetBucketLifecycleConfigurationArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2GetBucketLifecycleConfigurationResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/lifecycle",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2GetBucketLifecycleConfigurationResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_put_bucket_lifecycle_configuration_request<F>(
client: DynNetClient,
args: &R2PutBucketLifecycleConfigurationArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2PutBucketLifecycleConfigurationResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/lifecycle",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::put(&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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2PutBucketLifecycleConfigurationResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_get_bucket_local_uploads_configuration_request<F>(
client: DynNetClient,
args: &R2GetBucketLocalUploadsConfigurationArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2GetBucketLocalUploadsConfigurationResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/local-uploads",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2GetBucketLocalUploadsConfigurationResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_put_bucket_local_uploads_configuration_request<F>(
client: DynNetClient,
args: &R2PutBucketLocalUploadsConfigurationArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2PutBucketLocalUploadsConfigurationResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/local-uploads",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::put(&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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2PutBucketLocalUploadsConfigurationResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_get_bucket_lock_configuration_request<F>(
client: DynNetClient,
args: &R2GetBucketLockConfigurationArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2GetBucketLockConfigurationResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/lock",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2GetBucketLockConfigurationResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_put_bucket_lock_configuration_request<F>(
client: DynNetClient,
args: &R2PutBucketLockConfigurationArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2PutBucketLockConfigurationResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/lock",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::put(&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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2PutBucketLockConfigurationResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_get_bucket_sippy_config_request<F>(
client: DynNetClient,
args: &R2GetBucketSippyConfigArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2GetBucketSippyConfigResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/sippy",
args.account_id,
args.bucket_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2GetBucketSippyConfigResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_put_bucket_sippy_config_request<F>(
client: DynNetClient,
args: &R2PutBucketSippyConfigArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2PutBucketSippyConfigResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/sippy",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::put(&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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2PutBucketSippyConfigResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_delete_bucket_sippy_config_request<F>(
client: DynNetClient,
args: &R2DeleteBucketSippyConfigArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2DeleteBucketSippyConfigResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/buckets/{}/sippy",
args.account_id,
args.bucket_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::delete(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2DeleteBucketSippyConfigResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_get_account_level_metrics_request<F>(
client: DynNetClient,
args: &R2GetAccountLevelMetricsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2GetAccountLevelMetricsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/metrics",
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()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2GetAccountLevelMetricsResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn r2_create_temp_access_credentials_request<F>(
client: DynNetClient,
args: &R2CreateTempAccessCredentialsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<R2CreateTempAccessCredentialsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/r2/temp-access-credentials",
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: R2CreateTempAccessCredentialsResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_list_namespaces_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceListNamespacesArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvNamespaceListNamespacesResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces",
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("page", args.page.as_deref());
builder = builder.query("per_page", args.per_page.as_deref());
builder = builder.query("order", args.order.as_deref());
builder = builder.query("direction", args.direction.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvNamespaceListNamespacesResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_create_a_namespace_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceCreateANamespaceArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvNamespaceCreateANamespaceResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces",
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvNamespaceCreateANamespaceResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_get_a_namespace_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceGetANamespaceArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvNamespaceGetANamespaceResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}",
args.account_id,
args.namespace_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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvNamespaceGetANamespaceResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_rename_a_namespace_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceRenameANamespaceArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvNamespaceRenameANamespaceResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}",
args.account_id,
args.namespace_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()))?;
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvNamespaceRenameANamespaceResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_remove_a_namespace_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceRemoveANamespaceArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvApiResponseCommonNoResult>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}",
args.account_id,
args.namespace_id,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::delete(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvApiResponseCommonNoResult = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_write_multiple_key_value_pairs_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceWriteMultipleKeyValuePairsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvNamespaceWriteMultipleKeyValuePairsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}/bulk",
args.account_id,
args.namespace_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()))?;
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvNamespaceWriteMultipleKeyValuePairsResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_delete_multiple_key_value_pairs_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceDeleteMultipleKeyValuePairsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvNamespaceDeleteMultipleKeyValuePairsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}/bulk/delete",
args.account_id,
args.namespace_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()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvNamespaceDeleteMultipleKeyValuePairsResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_get_multiple_key_value_pairs_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceGetMultipleKeyValuePairsArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvNamespaceGetMultipleKeyValuePairsResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}/bulk/get",
args.account_id,
args.namespace_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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvNamespaceGetMultipleKeyValuePairsResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_list_a_namespace_s_keys_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceListANamespaceSKeysArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvNamespaceListANamespaceSKeysResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}/keys",
args.account_id,
args.namespace_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("prefix", args.prefix.as_deref());
builder = builder.query("cursor", args.cursor.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvNamespaceListANamespaceSKeysResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_read_the_metadata_for_a_key_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceReadTheMetadataForAKeyArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvNamespaceReadTheMetadataForAKeyResponse>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}/metadata/{}",
args.account_id,
args.namespace_id,
args.key_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvNamespaceReadTheMetadataForAKeyResponse = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_read_key_value_pair_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceReadKeyValuePairArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<()>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}/values/{}",
args.account_id,
args.namespace_id,
args.key_name,
);
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);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
Ok(ApiResponse { status: status as u16, headers, body: () })
}
pub async fn workers_kv_namespace_write_key_value_pair_with_metadata_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceWriteKeyValuePairWithMetadataArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvApiResponseCommonNoResult>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}/values/{}",
args.account_id,
args.namespace_id,
args.key_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::put(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
builder = builder.query("expiration", args.expiration.as_deref());
builder = builder.query("expiration_ttl", args.expiration_ttl.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvApiResponseCommonNoResult = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}
pub async fn workers_kv_namespace_delete_key_value_pair_request<F>(
client: DynNetClient,
args: &WorkersKvNamespaceDeleteKeyValuePairArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<WorkersKvApiResponseCommonNoResult>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/storage/kv/namespaces/{}/values/{}",
args.account_id,
args.namespace_id,
args.key_name,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::delete(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
let response = client.send_async(builder.build()).await
.map_err(|e| super::shared::ApiError::RequestSendFailed(e.to_string()))?;
let status: usize = response.get_status().into();
let headers = response.get_headers_ref().clone();
if status < 200 || status >= 300 {
let error_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let body = (!error_bytes.is_empty())
.then(|| String::from_utf8_lossy(&error_bytes).into_owned());
return Err(super::shared::ApiError::HttpStatus { code: status as u16, headers, body });
}
let body_bytes = foundation_netio::shared::client::body_reader::collect_bytes_from_send_safe(response.take_body());
let parsed: WorkersKvApiResponseCommonNoResult = serde_json::from_slice(&body_bytes).map_err(|e: serde_json::Error| super::shared::ApiError::ParseFailed(e.to_string()))?;
Ok(ApiResponse { status: status as u16, headers, body: parsed })
}