#![cfg(feature = "cloudflare_shares")]
#![allow(clippy::too_many_arguments, clippy::type_complexity)]
#![allow(
clippy::missing_errors_doc,
clippy::doc_markdown,
clippy::useless_format
)]
#![allow(unused_imports)]
use foundation_macros::JsonHash;
use foundation_netio::shared::client::http_client::HttpClient;
use foundation_netio::{DynNetClient, PreparedRequestBuilder};
use serde::{Deserialize, Serialize};
use super::shared::ResourceSharingAccountId;
use super::shared::ResourceSharingAccountName;
use super::shared::ResourceSharingApiResponseCollection;
use super::shared::ResourceSharingApiResponseCommon;
use super::shared::ResourceSharingCreated;
use super::shared::ResourceSharingModified;
use super::shared::ResourceSharingOrganizationId;
use super::shared::ResourceSharingResourceId;
use super::shared::ResourceSharingResourceMeta;
use super::shared::ResourceSharingResourceResourceId;
use super::shared::ResourceSharingResourceStatus;
use super::shared::ResourceSharingResourceType;
use super::shared::ResourceSharingResourceVersion;
use super::shared::ResourceSharingResultInfo;
use super::shared::ResourceSharingShareId;
use super::shared::ResourceSharingShareKind;
use super::shared::ResourceSharingShareName;
use super::shared::ResourceSharingShareObject;
use super::shared::ResourceSharingShareResourceObject;
use super::shared::ResourceSharingShareResponseCollection;
use super::shared::ResourceSharingShareStatus;
use super::shared::ResourceSharingShareTargetType;
use super::shared::ResourceSharingV4Error;
use super::shared::ApiResponse;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingCreateShareRecipientRequest {
pub account_id: Option<String>,
pub organization_id: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingCreateShareRequest {
pub name: String,
pub recipients: Vec<ResourceSharingCreateShareRecipientRequest>,
pub resources: Vec<ResourceSharingCreateShareResourceRequest>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingCreateShareResourceRequest {
pub meta: serde_json::Value,
pub resource_account_id: String,
pub resource_id: String,
pub resource_type: String,
}
pub type ResourceSharingRecipientAssociationStatus = String;
pub type ResourceSharingRecipientId = String;
pub type ResourceSharingRecipientResourceError = String;
pub type ResourceSharingRecipientResourceErrorTerminal = bool;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingShareRecipientObject {
pub account_id: String,
pub association_status: String,
pub created: String,
pub id: String,
pub modified: String,
pub resources: Option<Vec<ResourceSharingShareRecipientResourceObject>>,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingShareRecipientResourceObject {
pub error: String,
pub resource_id: String,
pub resource_version: i64,
pub terminal: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingShareRecipientResponseCollection {
pub errors: Vec<ResourceSharingV4Error>,
pub result: Option<Vec<ResourceSharingShareRecipientObject>>,
pub result_info: Option<ResourceSharingResultInfo>,
pub success: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingShareRecipientResponseSingle {
pub errors: Vec<ResourceSharingV4Error>,
pub result: Option<ResourceSharingShareRecipientObject>,
pub success: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingShareResourceResponseCollection {
pub errors: Vec<ResourceSharingV4Error>,
pub result: Option<Vec<ResourceSharingShareResourceObject>>,
pub result_info: Option<ResourceSharingResultInfo>,
pub success: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingShareResourceResponseSingle {
pub errors: Vec<ResourceSharingV4Error>,
pub result: Option<ResourceSharingShareResourceObject>,
pub success: bool,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingShareResponseSingle {
pub errors: Vec<ResourceSharingV4Error>,
pub result: Option<ResourceSharingShareObject>,
pub success: bool,
}
pub type ResourceSharingUpdateShareRequest = super::shared::NameObject;
#[derive(Debug, Clone, Default, Serialize, Deserialize, JsonHash)]
pub struct ResourceSharingUpdateShareResourceRequest {
pub meta: serde_json::Value,
}
pub type ResourceSharingV4Errors = Vec<ResourceSharingV4Error>;
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct SharesListArgs {
pub account_id: String,
pub status: Option<String>,
pub kind: Option<String>,
pub target_type: Option<String>,
pub resource_types: Vec<String>,
pub order: Option<String>,
pub direction: Option<String>,
pub page: Option<String>,
pub per_page: Option<String>,
pub include_resources: Option<String>,
pub include_recipient_counts: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareCreateArgs {
pub account_id: String,
pub body: ResourceSharingCreateShareRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct SharesGetByIdArgs {
pub account_id: String,
pub share_id: String,
pub include_resources: Option<String>,
pub include_recipient_counts: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareUpdateArgs {
pub account_id: String,
pub share_id: String,
pub body: ResourceSharingUpdateShareRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareDeleteArgs {
pub account_id: String,
pub share_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareRecipientsListArgs {
pub account_id: String,
pub share_id: String,
pub include_resources: Option<String>,
pub page: Option<String>,
pub per_page: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareRecipientCreateArgs {
pub account_id: String,
pub share_id: String,
pub body: ResourceSharingCreateShareRecipientRequest,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareRecipientsUpdateArgs {
pub account_id: String,
pub share_id: String,
pub body: Vec<ResourceSharingCreateShareRecipientRequest>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareRecipientsGetByIdArgs {
pub account_id: String,
pub share_id: String,
pub recipient_id: String,
pub include_resources: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareRecipientDeleteArgs {
pub account_id: String,
pub share_id: String,
pub recipient_id: String,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareResourcesListArgs {
pub account_id: String,
pub share_id: String,
pub status: Option<String>,
pub resource_type: Option<String>,
pub page: Option<String>,
pub per_page: Option<String>,
}
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareResourceCreateArgs {
pub account_id: String,
pub share_id: String,
pub body: ResourceSharingCreateShareResourceRequest,
}
pub type ShareResourcesGetByIdArgs = super::shared::AccountIdShareIdResourceIdArgs;
#[derive(Debug, Clone, Default, Serialize, JsonHash)]
pub struct ShareResourceUpdateArgs {
pub account_id: String,
pub share_id: String,
pub resource_id: String,
pub body: ResourceSharingUpdateShareResourceRequest,
}
pub type ShareResourceDeleteArgs = super::shared::AccountIdShareIdResourceIdArgs;
pub async fn shares_list_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &SharesListArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareResponseCollection>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/shares", 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("status", args.status.as_deref());
builder = builder.query("kind", args.kind.as_deref());
builder = builder.query("target_type", args.target_type.as_deref());
for value in &args.resource_types {
builder = builder.query("resource_types", Some(value.as_str()));
}
builder = builder.query("order", args.order.as_deref());
builder = builder.query("direction", args.direction.as_deref());
builder = builder.query("page", args.page.as_deref());
builder = builder.query("per_page", args.per_page.as_deref());
builder = builder.query("include_resources", args.include_resources.as_deref());
builder = builder.query(
"include_recipient_counts",
args.include_recipient_counts.as_deref(),
);
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_create_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareCreateArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/shares", args.account_id,);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::post(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
builder = builder
.body_json(&args.body)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn shares_get_by_id_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &SharesGetByIdArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/shares/{}", args.account_id, args.share_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("include_resources", args.include_resources.as_deref());
builder = builder.query(
"include_recipient_counts",
args.include_recipient_counts.as_deref(),
);
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_update_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareUpdateArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/shares/{}", args.account_id, args.share_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);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_delete_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareDeleteArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!("/accounts/{}/shares/{}", args.account_id, args.share_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);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_recipients_list_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareRecipientsListArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareRecipientResponseCollection>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/shares/{}/recipients",
args.account_id, args.share_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("include_resources", args.include_resources.as_deref());
builder = builder.query("page", args.page.as_deref());
builder = builder.query("per_page", args.per_page.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_recipient_create_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareRecipientCreateArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareRecipientResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/shares/{}/recipients",
args.account_id, args.share_id,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::post(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
builder = builder
.body_json(&args.body)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_recipients_update_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareRecipientsUpdateArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<()>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/shares/{}/recipients",
args.account_id, args.share_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);
}
super::shared::send_without_body(client.into(), builder.build()).await
}
pub async fn share_recipients_get_by_id_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareRecipientsGetByIdArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareRecipientResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/shares/{}/recipients/{}",
args.account_id, args.share_id, args.recipient_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("include_resources", args.include_resources.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_recipient_delete_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareRecipientDeleteArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareRecipientResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/shares/{}/recipients/{}",
args.account_id, args.share_id, args.recipient_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);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_resources_list_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareResourcesListArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareResourceResponseCollection>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/shares/{}/resources",
args.account_id, args.share_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("status", args.status.as_deref());
builder = builder.query("resource_type", args.resource_type.as_deref());
builder = builder.query("page", args.page.as_deref());
builder = builder.query("per_page", args.per_page.as_deref());
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_resource_create_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareResourceCreateArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareResourceResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/shares/{}/resources",
args.account_id, args.share_id,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::post(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
builder = builder
.body_json(&args.body)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_resources_get_by_id_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareResourcesGetByIdArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareResourceResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/shares/{}/resources/{}",
args.account_id, args.share_id, args.resource_id,
);
let endpoint_url = format!("{}{}", base_url, path);
let mut builder = PreparedRequestBuilder::get(&endpoint_url)
.map_err(|e| super::shared::ApiError::RequestBuildFailed(e.to_string()))?;
if let Some(f) = builder_mod {
f(&mut builder);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_resource_update_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareResourceUpdateArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareResourceResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/shares/{}/resources/{}",
args.account_id, args.share_id, args.resource_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);
}
super::shared::send_json(client.into(), builder.build()).await
}
pub async fn share_resource_delete_request<F>(
client: impl Into<super::shared::ApiClient>,
args: &ShareResourceDeleteArgs,
base_url: &str,
builder_mod: Option<F>,
) -> Result<ApiResponse<ResourceSharingShareResourceResponseSingle>, super::shared::ApiError>
where
F: FnOnce(&mut PreparedRequestBuilder),
{
let path = format!(
"/accounts/{}/shares/{}/resources/{}",
args.account_id, args.share_id, args.resource_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);
}
super::shared::send_json(client.into(), builder.build()).await
}