alibaba_cloud_sdk_rust/sdk/auth/singers/
signer.rs

1#![allow(unused)]
2#![allow(non_upper_case_globals)]
3#![allow(non_snake_case)]
4#![allow(non_camel_case_types)]
5use crate::error::AliyunResult;
6use crate::sdk::auth::credentials;
7use crate::sdk::auth::singers;
8use crate::sdk::requests;
9use std::collections::HashMap;
10pub trait Signer {
11    fn GetName(&self) -> String;
12    fn GetType(&self) -> String;
13    fn GetVersion(&self) -> String;
14    fn GetAccessKeyId(&self) -> AliyunResult<String>;
15    fn GetExtraParam(&self) -> Option<HashMap<String, String>>;
16    fn Sign(&self, stringToSign: &str, secretSuffix: &str) -> String;
17}
18
19pub fn NewSignerWithCredential(
20    credential: credentials::AccessKeyCredential,
21) -> AliyunResult<singers::AccessKeySigner> {
22    Ok(singers::AccessKeySigner::NewAccessKeySigner(credential))
23}
24
25pub fn Sign(
26    request: &mut requests::AcsRequest,
27    signer: Option<Box<dyn Signer>>,
28    regionId: &str,
29) -> AliyunResult<()> {
30    super::signRpcRequest(request, signer, regionId)
31}