-
Notifications
You must be signed in to change notification settings - Fork 98
/
Copy pathinterface.ts
executable file
·121 lines (116 loc) · 2.48 KB
/
interface.ts
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import { Agent } from "http"
/**
* 初始化client对象参数类型
*/
export interface ClientConfig {
/**
* @param {Credential} credential 认证信息
* 必选
*/
credential: Credential | DynamicCredential
/**
* @param {string} region 产品地域
* 对于要求区分地域的产品,此参数必选(如 cvm);对于不区分地域的产品(如 sms),无需传入。
*/
region?: string
/**
* @param {ClientProfile} profile 可选配置实例
* 可选,没有特殊需求可以跳过。
*/
profile?: ClientProfile
}
/**
* 可选配置实例
*/
export interface ClientProfile {
/**
* 签名方法 (TC3-HMAC-SHA256 HmacSHA1 HmacSHA256)
* @type {string}
* 非必选
*/
signMethod?: "TC3-HMAC-SHA256" | "HmacSHA256" | "HmacSHA1"
/**
* http相关选项实例
* @type {HttpProfile}
* 非必选
*/
httpProfile?: HttpProfile
/**
* api请求时附带的 language 字段
* @type {"zh-CN" | "en-US"}
* 非必选
*/
language?: "zh-CN" | "en-US"
}
export interface HttpProfile {
/**
* 请求方法
* @type {"POST" | "GET"}
* 非必选
*/
reqMethod?: "POST" | "GET"
/**
* 接入点域名,形如(cvm.ap-shanghai.tencentcloud.com)
* @type {string}
* 非必选
*/
endpoint?: string
/**
* 协议,目前支持(https://)
* @type {string}
* 非必选
*/
protocol?: string
/**
* 请求超时时间,默认60s
* @type {number}
* 非必选
*/
reqTimeout?: number
/**
* 自定义请求头,例如 { "X-TC-TraceId": "ffe0c072-8a5d-4e17-8887-a8a60252abca" }
* @type {Record<string, string>}
* 非必选
*/
headers?: Record<string, string>
/**
* 高级请求代理,例如 new HttpsProxyAgent("http://127.0.0.1:8899")
*
* 优先级高于 proxy 配置
*/
agent?: Agent
/**
* http请求代理,例如 "http://127.0.0.1:8899"
*/
proxy?: string
}
/**
* ClientProfile.language 属性支持的取值列表
*/
export const SUPPORT_LANGUAGE_LIST = ["zh-CN", "en-US"]
/**
* 认证信息类
*/
export interface Credential {
/**
* 腾讯云账户secretId,secretKey
* 非必选,和 token 二选一
*/
secretId?: string
/**
* 腾讯云账户secretKey
* 非必选,和 token 二选一
*/
secretKey?: string
/**
* 腾讯云账户token
* 非必选,和 secretId 二选一
*/
token?: string
}
/**
* 动态认证信息
*/
export interface DynamicCredential {
getCredential(): Promise<Credential>
}