gcloud_storage/http/object_access_controls/
patch.rs1use reqwest_middleware::{ClientWithMiddleware as Client, RequestBuilder};
2
3use crate::http::object_access_controls::ObjectAccessControl;
4
5#[derive(Clone, PartialEq, Eq, serde::Deserialize, serde::Serialize, Debug, Default)]
7#[serde(rename_all = "camelCase")]
8pub struct PatchObjectAccessControlRequest {
9 #[serde(skip_serializing)]
11 pub bucket: String,
12 #[serde(skip_serializing)]
20 pub entity: String,
21 #[serde(skip_serializing)]
24 pub object: String,
25 pub generation: Option<i64>,
28 #[serde(skip_serializing)]
30 pub acl: ObjectAccessControl,
31}
32
33pub(crate) fn build(base_url: &str, client: &Client, req: &PatchObjectAccessControlRequest) -> RequestBuilder {
34 let url = format!("{}/b/{}/o/{}/acl/{}", base_url, req.bucket, req.object, req.entity);
35 client.patch(url).query(&req).json(&req.acl)
36}