google_cloud_storage/http/default_object_access_controls/
patch.rs

1use reqwest_middleware::{ClientWithMiddleware as Client, RequestBuilder};
2
3use crate::http::object_access_controls::ObjectAccessControl;
4use crate::http::Escape;
5
6/// Request message for InsertDefaultObjectAccessControl.
7#[derive(Clone, PartialEq, Eq, serde::Deserialize, serde::Serialize, Debug)]
8#[serde(rename_all = "camelCase")]
9pub struct PatchDefaultObjectAccessControlRequest {
10    /// Required. Name of a bucket.
11    pub bucket: String,
12    /// Required. The entity holding the permission. Can be one of:
13    /// * `user-`*userId*
14    /// * `user-`*emailAddress*
15    /// * `group-`*groupId*
16    /// * `group-`*emailAddress*
17    /// * `allUsers`
18    /// * `allAuthenticatedUsers`
19    pub entity: String,
20    /// Properties of the object access control being inserted.
21    pub object_access_control: ObjectAccessControl,
22}
23
24pub(crate) fn build(base_url: &str, client: &Client, req: &PatchDefaultObjectAccessControlRequest) -> RequestBuilder {
25    let url = format!(
26        "{}/b/{}/defaultObjectAcl/{}",
27        base_url,
28        req.bucket.escape(),
29        req.entity.escape()
30    );
31    client.patch(url).json(&req.object_access_control)
32}