google_cloud_storage/http/hmac_keys/
list.rs

1use reqwest_middleware::{ClientWithMiddleware as Client, RequestBuilder};
2
3use crate::http::hmac_keys::HmacKeyMetadata;
4use crate::http::Escape;
5
6#[derive(Clone, PartialEq, Eq, serde::Deserialize, serde::Serialize, Debug, Default)]
7#[serde(rename_all = "camelCase")]
8pub struct ListHmacKeysRequest {
9    /// Required. The project id to list HMAC keys for.
10    pub project_id: String,
11    /// An optional filter to only return HMAC keys for one service account.
12    pub service_account_email: Option<String>,
13    /// An optional bool to return deleted keys that have not been wiped out yet.
14    pub show_deleted_keys: Option<bool>,
15    /// The maximum number of keys to return.
16    pub max_results: Option<i32>,
17    /// A previously returned token from ListHmacKeysResponse to get the next page.
18    pub page_token: Option<String>,
19}
20
21/// Hmac key list response with next page information.
22#[derive(Clone, PartialEq, Eq, serde::Deserialize, serde::Serialize, Debug)]
23#[serde(rename_all = "camelCase")]
24pub struct ListHmacKeysResponse {
25    /// The continuation token, used to page through large result sets. Provide
26    /// this value in a subsequent request to return the next page of results.
27    pub next_page_token: Option<String>,
28    /// The list of items.
29    pub items: Option<Vec<HmacKeyMetadata>>,
30}
31
32pub(crate) fn build(base_url: &str, client: &Client, req: &ListHmacKeysRequest) -> RequestBuilder {
33    let url = format!("{}/projects/{}/hmacKeys", base_url, req.project_id.escape());
34    client.get(url)
35}