google_cloud_storage/http/hmac_keys/
create.rs1use reqwest::header::CONTENT_LENGTH;
2use reqwest_middleware::{ClientWithMiddleware as Client, RequestBuilder};
3
4use crate::http::hmac_keys::HmacKeyMetadata;
5use crate::http::Escape;
6
7#[derive(Clone, PartialEq, Eq, serde::Deserialize, serde::Serialize, Debug, Default)]
8#[serde(rename_all = "camelCase")]
9pub struct CreateHmacKeyRequest {
10 #[serde(skip_serializing)]
12 pub project_id: String,
13 pub service_account_email: String,
15}
16#[derive(Clone, PartialEq, Eq, serde::Deserialize, serde::Serialize, Debug, Default)]
18#[serde(rename_all = "camelCase")]
19pub struct CreateHmacKeyResponse {
20 pub metadata: HmacKeyMetadata,
22 pub secret: String,
24}
25
26pub(crate) fn build(base_url: &str, client: &Client, req: &CreateHmacKeyRequest) -> RequestBuilder {
27 let url = format!("{}/projects/{}/hmacKeys", base_url, req.project_id.escape());
28 client
29 .post(url)
30 .query(&req)
31 .header(CONTENT_LENGTH, 0)
33}