azure_security_keyvault/keys/operations/
get_random_bytes.rs

1use crate::prelude::*;
2use azure_core::{headers::Headers, Method, Url};
3use serde_json::{Map, Value};
4
5operation! {
6    GetRandomBytes,
7    client: KeyClient,
8    hsm_name: String,
9    count: u8,
10}
11
12impl GetRandomBytesBuilder {
13    pub fn into_future(self) -> GetRandomBytes {
14        Box::pin(async move {
15            // POST {HSMBaseUrl}//rng?api-version=7.4
16            let vault_url = format!("https://{}.managedhsm.azure.net/", self.hsm_name);
17            let mut uri = Url::parse(&vault_url)?;
18            let path = "rng".to_string();
19
20            uri.set_path(&path);
21
22            let mut request_body = Map::new();
23            request_body.insert("count".to_owned(), Value::from(self.count));
24
25            let headers = Headers::new();
26            let mut request = KeyvaultClient::finalize_request(
27                uri,
28                Method::Post,
29                headers,
30                Some(Value::Object(request_body).to_string().into()),
31            );
32
33            self.client
34                .keyvault_client
35                .send(&self.context, &mut request)
36                .await?
37                .json()
38                .await
39        })
40    }
41}
42
43type GetRandomBytesResponse = GetRandomBytesResult;