/
create_secret.rs
45 lines (40 loc) · 1.19 KB
/
create_secret.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
use super::WorkersSecret;
use crate::framework::endpoint::{EndpointSpec, Method};
use serde::Serialize;
/// Create Secret
/// <https://api.cloudflare.com/#worker-create-secret>
#[derive(Debug)]
pub struct CreateSecret<'a> {
/// Account ID of script owner
pub account_identifier: &'a str,
/// The name of the script to attach the secret to
pub script_name: &'a str,
/// The contents of the secret
pub params: CreateSecretParams,
}
impl<'a> EndpointSpec<WorkersSecret> for CreateSecret<'a> {
fn method(&self) -> Method {
Method::PUT
}
fn path(&self) -> String {
format!(
"accounts/{}/workers/scripts/{}/secrets",
self.account_identifier, self.script_name
)
}
#[inline]
fn body(&self) -> Option<String> {
let body = serde_json::to_string(&self.params).unwrap();
Some(body)
}
}
#[derive(Serialize, Clone, Debug)]
pub struct CreateSecretParams {
/// the variable name of the secret that will be bound to the script
pub name: String,
/// the string value of the secret
pub text: String,
// type of binding (e.g.secret_text)
#[serde(rename = "type")]
pub secret_type: String,
}