forked from huaweicloud/huaweicloud-sdk-go-v3
-
Notifications
You must be signed in to change notification settings - Fork 0
/
model_api_create.go
487 lines (394 loc) · 11.8 KB
/
model_api_create.go
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
package model
import (
"github.com/dysodeng/huaweicloud-sdk-go-v3/core/utils"
"errors"
"github.com/dysodeng/huaweicloud-sdk-go-v3/core/converter"
"strings"
)
type ApiCreate struct {
// API名称。 长度为3 ~ 64位的字符串,字符串由中文、英文字母、数字、下划线组成,且只能以英文或中文开头。 > 中文字符必须为UTF-8或者unicode编码。
Name string `json:"name"`
// API类型 - 1:公有API - 2:私有API
Type ApiCreateType `json:"type"`
// API的版本
Version *string `json:"version,omitempty"`
// API的请求协议 - HTTP - HTTPS - BOTH:同时支持HTTP和HTTPS
ReqProtocol ApiCreateReqProtocol `json:"req_protocol"`
// API的请求方式
ReqMethod ApiCreateReqMethod `json:"req_method"`
// 请求地址。可以包含请求参数,用{}标识,比如/getUserInfo/{userId},支持 * % - _ . 等特殊字符,总长度不超过512,且满足URI规范。 > 需要服从URI规范。
ReqUri string `json:"req_uri"`
// API的认证方式 - NONE:无认证 - APP:APP认证 - IAM:IAM认证 - AUTHORIZER:自定义认证
AuthType ApiCreateAuthType `json:"auth_type"`
AuthOpt *AuthOpt `json:"auth_opt,omitempty"`
// 是否支持跨域 - TRUE:支持 - FALSE:不支持
Cors *bool `json:"cors,omitempty"`
// API的匹配方式 - SWA:前缀匹配 - NORMAL:正常匹配(绝对匹配) 默认:NORMAL
MatchMode *ApiCreateMatchMode `json:"match_mode,omitempty"`
// 后端类型 - HTTP:web后端 - FUNCTION:函数工作流 - MOCK:模拟的后端
BackendType ApiCreateBackendType `json:"backend_type"`
// API描述。字符长度不超过255 > 中文字符必须为UTF-8或者unicode编码。
Remark *string `json:"remark,omitempty"`
// API所属的分组编号
GroupId string `json:"group_id"`
// API请求体描述,可以是请求体示例、媒体类型、参数等信息。字符长度不超过20480 > 中文字符必须为UTF-8或者unicode编码。
BodyRemark *string `json:"body_remark,omitempty"`
// 正常响应示例,描述API的正常返回信息。字符长度不超过20480 > 中文字符必须为UTF-8或者unicode编码。
ResultNormalSample *string `json:"result_normal_sample,omitempty"`
// 失败返回示例,描述API的异常返回信息。字符长度不超过20480 > 中文字符必须为UTF-8或者unicode编码。
ResultFailureSample *string `json:"result_failure_sample,omitempty"`
// 前端自定义认证对象的ID
AuthorizerId *string `json:"authorizer_id,omitempty"`
// 标签。 支持英文,数字,中文,特殊符号(-*#%.:_),且只能以中文或英文开头。 默认支持10个标签,如需扩大配额请联系技术工程师修改API_TAG_NUM_LIMIT配置。
Tags *[]string `json:"tags,omitempty"`
// 分组自定义响应ID
ResponseId *string `json:"response_id,omitempty"`
// 集成应用ID 暂不支持
RomaAppId *string `json:"roma_app_id,omitempty"`
// API绑定的自定义域名 暂不支持
DomainName *string `json:"domain_name,omitempty"`
// 标签 待废弃,优先使用tags字段
Tag *string `json:"tag,omitempty"`
// 请求内容格式类型: application/json application/xml multipart/form-date text/plain 暂不支持
ContentType *ApiCreateContentType `json:"content_type,omitempty"`
MockInfo *ApiMockCreate `json:"mock_info,omitempty"`
FuncInfo *ApiFuncCreate `json:"func_info,omitempty"`
// API的请求参数列表
ReqParams *[]ReqParamBase `json:"req_params,omitempty"`
// API的后端参数列表
BackendParams *[]BackendParamBase `json:"backend_params,omitempty"`
// mock策略后端列表
PolicyMocks *[]ApiPolicyMockCreate `json:"policy_mocks,omitempty"`
// 函数工作流策略后端列表
PolicyFunctions *[]ApiPolicyFunctionCreate `json:"policy_functions,omitempty"`
BackendApi *BackendApiCreate `json:"backend_api,omitempty"`
// web策略后端列表
PolicyHttps *[]ApiPolicyHttpCreate `json:"policy_https,omitempty"`
}
func (o ApiCreate) String() string {
data, err := utils.Marshal(o)
if err != nil {
return "ApiCreate struct{}"
}
return strings.Join([]string{"ApiCreate", string(data)}, " ")
}
type ApiCreateType struct {
value int32
}
type ApiCreateTypeEnum struct {
E_1 ApiCreateType
E_2 ApiCreateType
}
func GetApiCreateTypeEnum() ApiCreateTypeEnum {
return ApiCreateTypeEnum{
E_1: ApiCreateType{
value: 1,
}, E_2: ApiCreateType{
value: 2,
},
}
}
func (c ApiCreateType) Value() int32 {
return c.value
}
func (c ApiCreateType) MarshalJSON() ([]byte, error) {
return utils.Marshal(c.value)
}
func (c *ApiCreateType) UnmarshalJSON(b []byte) error {
myConverter := converter.StringConverterFactory("int32")
if myConverter == nil {
return errors.New("unsupported StringConverter type: int32")
}
interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
if err != nil {
return err
}
if val, ok := interf.(int32); ok {
c.value = val
return nil
} else {
return errors.New("convert enum data to int32 error")
}
}
type ApiCreateReqProtocol struct {
value string
}
type ApiCreateReqProtocolEnum struct {
HTTP ApiCreateReqProtocol
HTTPS ApiCreateReqProtocol
BOTH ApiCreateReqProtocol
}
func GetApiCreateReqProtocolEnum() ApiCreateReqProtocolEnum {
return ApiCreateReqProtocolEnum{
HTTP: ApiCreateReqProtocol{
value: "HTTP",
},
HTTPS: ApiCreateReqProtocol{
value: "HTTPS",
},
BOTH: ApiCreateReqProtocol{
value: "BOTH",
},
}
}
func (c ApiCreateReqProtocol) Value() string {
return c.value
}
func (c ApiCreateReqProtocol) MarshalJSON() ([]byte, error) {
return utils.Marshal(c.value)
}
func (c *ApiCreateReqProtocol) UnmarshalJSON(b []byte) error {
myConverter := converter.StringConverterFactory("string")
if myConverter == nil {
return errors.New("unsupported StringConverter type: string")
}
interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
if err != nil {
return err
}
if val, ok := interf.(string); ok {
c.value = val
return nil
} else {
return errors.New("convert enum data to string error")
}
}
type ApiCreateReqMethod struct {
value string
}
type ApiCreateReqMethodEnum struct {
GET ApiCreateReqMethod
POST ApiCreateReqMethod
PUT ApiCreateReqMethod
DELETE ApiCreateReqMethod
HEAD ApiCreateReqMethod
PATCH ApiCreateReqMethod
OPTIONS ApiCreateReqMethod
ANY ApiCreateReqMethod
}
func GetApiCreateReqMethodEnum() ApiCreateReqMethodEnum {
return ApiCreateReqMethodEnum{
GET: ApiCreateReqMethod{
value: "GET",
},
POST: ApiCreateReqMethod{
value: "POST",
},
PUT: ApiCreateReqMethod{
value: "PUT",
},
DELETE: ApiCreateReqMethod{
value: "DELETE",
},
HEAD: ApiCreateReqMethod{
value: "HEAD",
},
PATCH: ApiCreateReqMethod{
value: "PATCH",
},
OPTIONS: ApiCreateReqMethod{
value: "OPTIONS",
},
ANY: ApiCreateReqMethod{
value: "ANY",
},
}
}
func (c ApiCreateReqMethod) Value() string {
return c.value
}
func (c ApiCreateReqMethod) MarshalJSON() ([]byte, error) {
return utils.Marshal(c.value)
}
func (c *ApiCreateReqMethod) UnmarshalJSON(b []byte) error {
myConverter := converter.StringConverterFactory("string")
if myConverter == nil {
return errors.New("unsupported StringConverter type: string")
}
interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
if err != nil {
return err
}
if val, ok := interf.(string); ok {
c.value = val
return nil
} else {
return errors.New("convert enum data to string error")
}
}
type ApiCreateAuthType struct {
value string
}
type ApiCreateAuthTypeEnum struct {
NONE ApiCreateAuthType
APP ApiCreateAuthType
IAM ApiCreateAuthType
AUTHORIZER ApiCreateAuthType
}
func GetApiCreateAuthTypeEnum() ApiCreateAuthTypeEnum {
return ApiCreateAuthTypeEnum{
NONE: ApiCreateAuthType{
value: "NONE",
},
APP: ApiCreateAuthType{
value: "APP",
},
IAM: ApiCreateAuthType{
value: "IAM",
},
AUTHORIZER: ApiCreateAuthType{
value: "AUTHORIZER",
},
}
}
func (c ApiCreateAuthType) Value() string {
return c.value
}
func (c ApiCreateAuthType) MarshalJSON() ([]byte, error) {
return utils.Marshal(c.value)
}
func (c *ApiCreateAuthType) UnmarshalJSON(b []byte) error {
myConverter := converter.StringConverterFactory("string")
if myConverter == nil {
return errors.New("unsupported StringConverter type: string")
}
interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
if err != nil {
return err
}
if val, ok := interf.(string); ok {
c.value = val
return nil
} else {
return errors.New("convert enum data to string error")
}
}
type ApiCreateMatchMode struct {
value string
}
type ApiCreateMatchModeEnum struct {
SWA ApiCreateMatchMode
NORMAL ApiCreateMatchMode
}
func GetApiCreateMatchModeEnum() ApiCreateMatchModeEnum {
return ApiCreateMatchModeEnum{
SWA: ApiCreateMatchMode{
value: "SWA",
},
NORMAL: ApiCreateMatchMode{
value: "NORMAL",
},
}
}
func (c ApiCreateMatchMode) Value() string {
return c.value
}
func (c ApiCreateMatchMode) MarshalJSON() ([]byte, error) {
return utils.Marshal(c.value)
}
func (c *ApiCreateMatchMode) UnmarshalJSON(b []byte) error {
myConverter := converter.StringConverterFactory("string")
if myConverter == nil {
return errors.New("unsupported StringConverter type: string")
}
interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
if err != nil {
return err
}
if val, ok := interf.(string); ok {
c.value = val
return nil
} else {
return errors.New("convert enum data to string error")
}
}
type ApiCreateBackendType struct {
value string
}
type ApiCreateBackendTypeEnum struct {
HTTP ApiCreateBackendType
FUNCTION ApiCreateBackendType
MOCK ApiCreateBackendType
}
func GetApiCreateBackendTypeEnum() ApiCreateBackendTypeEnum {
return ApiCreateBackendTypeEnum{
HTTP: ApiCreateBackendType{
value: "HTTP",
},
FUNCTION: ApiCreateBackendType{
value: "FUNCTION",
},
MOCK: ApiCreateBackendType{
value: "MOCK",
},
}
}
func (c ApiCreateBackendType) Value() string {
return c.value
}
func (c ApiCreateBackendType) MarshalJSON() ([]byte, error) {
return utils.Marshal(c.value)
}
func (c *ApiCreateBackendType) UnmarshalJSON(b []byte) error {
myConverter := converter.StringConverterFactory("string")
if myConverter == nil {
return errors.New("unsupported StringConverter type: string")
}
interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
if err != nil {
return err
}
if val, ok := interf.(string); ok {
c.value = val
return nil
} else {
return errors.New("convert enum data to string error")
}
}
type ApiCreateContentType struct {
value string
}
type ApiCreateContentTypeEnum struct {
APPLICATION_JSON ApiCreateContentType
APPLICATION_XML ApiCreateContentType
MULTIPART_FORM_DATE ApiCreateContentType
TEXT_PLAIN ApiCreateContentType
}
func GetApiCreateContentTypeEnum() ApiCreateContentTypeEnum {
return ApiCreateContentTypeEnum{
APPLICATION_JSON: ApiCreateContentType{
value: "application/json",
},
APPLICATION_XML: ApiCreateContentType{
value: "application/xml",
},
MULTIPART_FORM_DATE: ApiCreateContentType{
value: "multipart/form-date",
},
TEXT_PLAIN: ApiCreateContentType{
value: "text/plain",
},
}
}
func (c ApiCreateContentType) Value() string {
return c.value
}
func (c ApiCreateContentType) MarshalJSON() ([]byte, error) {
return utils.Marshal(c.value)
}
func (c *ApiCreateContentType) UnmarshalJSON(b []byte) error {
myConverter := converter.StringConverterFactory("string")
if myConverter == nil {
return errors.New("unsupported StringConverter type: string")
}
interf, err := myConverter.CovertStringToInterface(strings.Trim(string(b[:]), "\""))
if err != nil {
return err
}
if val, ok := interf.(string); ok {
c.value = val
return nil
} else {
return errors.New("convert enum data to string error")
}
}