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
46
47
48
49
50
51
#![allow(unused)]
#![allow(non_upper_case_globals)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]

use crate::sdk::auth::singers::AccessKeySigner;
use crate::sdk::auth::singers::Signer;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use std::io::Error;
const Version: &str = "0.0.1";

#[derive(Default)]
pub struct Client {
    pub SourceIp: String,
    pub SecureTransport: String,
    pub isInsecure: bool,
    pub regionId: String,
    pub config: Option<Config>,
    pub httpProxy: String,
    pub httpsProxy: String,
    pub noProxy: String,
    // logger          *Logger
    pub userAgent: HashMap<String, String>,
    pub signer: AccessKeySigner,

    pub httpClient: gostd::net::http::Client,
    // asyncTaskQueue  chan func()
    // readTimeout     time.Duration
    // connectTimeout  time.Duration
    pub EndpointMap: HashMap<String, String>,
    pub EndpointType: String,
    pub Network: String,
    pub Domain: String,
    pub isOpenAsync: bool,
}

#[derive(Debug, Default, Clone)]
pub struct Config {
    pub AutoRetry: bool,        // `default:"false"`
    pub MaxRetryTime: i32,      //`default:"3"`
    pub UserAgent: String,      //`default:""`
    pub Debug: bool,            //`default:"false"`
    pub EnableAsync: bool,      //`default:"false"`
    pub MaxTaskQueueSize: i32,  //`default:"1000"`
    pub GoRoutinePoolSize: i32, //`default:"5"`
    pub Scheme: String,         //`default:"HTTP"`
                                // HttpTransport     *http.Transport   //`default:""`
                                // Transport         http.RoundTripper //`default:""`
                                // Timeout           :time.Duration
}