tencentcloud-sdk-nodejs-intl-en 3.0.1379 → 3.0.1380

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3714 @@
1
+ /*
2
+ * Copyright (c) 2018 Tencent. All Rights Reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing,
11
+ * software distributed under the License is distributed on an
12
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
13
+ * KIND, either express or implied. See the License for the
14
+ * specific language governing permissions and limitations
15
+ * under the License.
16
+ */
17
+ const AbstractModel = require("../../common/abstract_model");
18
+
19
+ /**
20
+ * Retention type
21
+ * @class
22
+ */
23
+ class LBChargePrepaid extends AbstractModel {
24
+ constructor(){
25
+ super();
26
+
27
+ /**
28
+ * Reserved field.
29
+ * @type {string || null}
30
+ */
31
+ this.RenewFlag = null;
32
+
33
+ /**
34
+ * Reserved field.
35
+ * @type {number || null}
36
+ */
37
+ this.Period = null;
38
+
39
+ }
40
+
41
+ /**
42
+ * @private
43
+ */
44
+ deserialize(params) {
45
+ if (!params) {
46
+ return;
47
+ }
48
+ this.RenewFlag = 'RenewFlag' in params ? params.RenewFlag : null;
49
+ this.Period = 'Period' in params ? params.Period : null;
50
+
51
+ }
52
+ }
53
+
54
+ /**
55
+ * DescribeLoadBalancerListByCertId request structure.
56
+ * @class
57
+ */
58
+ class DescribeLoadBalancerListByCertIdRequest extends AbstractModel {
59
+ constructor(){
60
+ super();
61
+
62
+ /**
63
+ * Server or client certificate ID
64
+ * @type {Array.<string> || null}
65
+ */
66
+ this.CertIds = null;
67
+
68
+ }
69
+
70
+ /**
71
+ * @private
72
+ */
73
+ deserialize(params) {
74
+ if (!params) {
75
+ return;
76
+ }
77
+ this.CertIds = 'CertIds' in params ? params.CertIds : null;
78
+
79
+ }
80
+ }
81
+
82
+ /**
83
+ * Classic CLB listener information
84
+ * @class
85
+ */
86
+ class ClassicalListener extends AbstractModel {
87
+ constructor(){
88
+ super();
89
+
90
+ /**
91
+ * CLB listener ID
92
+ * @type {string || null}
93
+ */
94
+ this.ListenerId = null;
95
+
96
+ /**
97
+ * CLB listener port
98
+ * @type {number || null}
99
+ */
100
+ this.ListenerPort = null;
101
+
102
+ /**
103
+ * Listener backend forwarding port
104
+ * @type {number || null}
105
+ */
106
+ this.InstancePort = null;
107
+
108
+ /**
109
+ * listener name
110
+ * @type {string || null}
111
+ */
112
+ this.ListenerName = null;
113
+
114
+ /**
115
+ * Listener protocol type
116
+ * @type {string || null}
117
+ */
118
+ this.Protocol = null;
119
+
120
+ /**
121
+ * Session hold time
122
+ * @type {number || null}
123
+ */
124
+ this.SessionExpire = null;
125
+
126
+ /**
127
+ * Whether health check is enabled. 1: Enabled; 0: Disabled
128
+ * @type {number || null}
129
+ */
130
+ this.HealthSwitch = null;
131
+
132
+ /**
133
+ * Response timeout duration
134
+ * @type {number || null}
135
+ */
136
+ this.TimeOut = null;
137
+
138
+ /**
139
+ * check interval
140
+ * @type {number || null}
141
+ */
142
+ this.IntervalTime = null;
143
+
144
+ /**
145
+ * health threshold
146
+ * @type {number || null}
147
+ */
148
+ this.HealthNum = null;
149
+
150
+ /**
151
+ * unhealthy threshold
152
+ * @type {number || null}
153
+ */
154
+ this.AbnormalNum = null;
155
+
156
+ /**
157
+ * Request balancing method for listeners of the classic public network CLB. An empty string or wrr indicates weighted round robin. ip_hash indicates consistent hashing based on the accessed source IP address. least_conn indicates least connections.
158
+ * @type {string || null}
159
+ */
160
+ this.HttpHash = null;
161
+
162
+ /**
163
+ * Health check return code for HTTP and HTTPS listeners of a public network Classic CLB instance. For more information, refer to the explanation of this field in the listener creation API.
164
+ * @type {number || null}
165
+ */
166
+ this.HttpCode = null;
167
+
168
+ /**
169
+ * Health check path for HTTP and HTTPS listeners of a public network Classic CLB instance
170
+ * @type {string || null}
171
+ */
172
+ this.HttpCheckPath = null;
173
+
174
+ /**
175
+ * Authentication method for an HTTPS listener of a public network Classic CLB instance
176
+ * @type {string || null}
177
+ */
178
+ this.SSLMode = null;
179
+
180
+ /**
181
+ * Server certificate ID for an HTTPS listener of a public network Classic CLB instance
182
+ * @type {string || null}
183
+ */
184
+ this.CertId = null;
185
+
186
+ /**
187
+ * Client certificate ID for an HTTPS listener of a public network Classic CLB instance
188
+ * @type {string || null}
189
+ */
190
+ this.CertCaId = null;
191
+
192
+ /**
193
+ * Listener status. 0: Creating; 1: Running
194
+ * @type {number || null}
195
+ */
196
+ this.Status = null;
197
+
198
+ }
199
+
200
+ /**
201
+ * @private
202
+ */
203
+ deserialize(params) {
204
+ if (!params) {
205
+ return;
206
+ }
207
+ this.ListenerId = 'ListenerId' in params ? params.ListenerId : null;
208
+ this.ListenerPort = 'ListenerPort' in params ? params.ListenerPort : null;
209
+ this.InstancePort = 'InstancePort' in params ? params.InstancePort : null;
210
+ this.ListenerName = 'ListenerName' in params ? params.ListenerName : null;
211
+ this.Protocol = 'Protocol' in params ? params.Protocol : null;
212
+ this.SessionExpire = 'SessionExpire' in params ? params.SessionExpire : null;
213
+ this.HealthSwitch = 'HealthSwitch' in params ? params.HealthSwitch : null;
214
+ this.TimeOut = 'TimeOut' in params ? params.TimeOut : null;
215
+ this.IntervalTime = 'IntervalTime' in params ? params.IntervalTime : null;
216
+ this.HealthNum = 'HealthNum' in params ? params.HealthNum : null;
217
+ this.AbnormalNum = 'AbnormalNum' in params ? params.AbnormalNum : null;
218
+ this.HttpHash = 'HttpHash' in params ? params.HttpHash : null;
219
+ this.HttpCode = 'HttpCode' in params ? params.HttpCode : null;
220
+ this.HttpCheckPath = 'HttpCheckPath' in params ? params.HttpCheckPath : null;
221
+ this.SSLMode = 'SSLMode' in params ? params.SSLMode : null;
222
+ this.CertId = 'CertId' in params ? params.CertId : null;
223
+ this.CertCaId = 'CertCaId' in params ? params.CertCaId : null;
224
+ this.Status = 'Status' in params ? params.Status : null;
225
+
226
+ }
227
+ }
228
+
229
+ /**
230
+ * Information of the real server bound to a CLB instance, including region and network to which it belongs.
231
+ * @class
232
+ */
233
+ class TargetRegionInfo extends AbstractModel {
234
+ constructor(){
235
+ super();
236
+
237
+ /**
238
+ * Region of the target, such as ap-guangzhou
239
+ * @type {string || null}
240
+ */
241
+ this.Region = null;
242
+
243
+ /**
244
+ * Network of the target. For VPC, the format is vpc-abcd1234. For a basic network, the value is 0.
245
+ * @type {string || null}
246
+ */
247
+ this.VpcId = null;
248
+
249
+ /**
250
+ * Target's network, in the format of 86323 for a private network, or 0 if it is a basic network
251
+ * @type {number || null}
252
+ */
253
+ this.NumericalVpcId = null;
254
+
255
+ }
256
+
257
+ /**
258
+ * @private
259
+ */
260
+ deserialize(params) {
261
+ if (!params) {
262
+ return;
263
+ }
264
+ this.Region = 'Region' in params ? params.Region : null;
265
+ this.VpcId = 'VpcId' in params ? params.VpcId : null;
266
+ this.NumericalVpcId = 'NumericalVpcId' in params ? params.NumericalVpcId : null;
267
+
268
+ }
269
+ }
270
+
271
+ /**
272
+ * SetCustomizedConfigForLoadBalancer request structure.
273
+ * @class
274
+ */
275
+ class SetCustomizedConfigForLoadBalancerRequest extends AbstractModel {
276
+ constructor(){
277
+ super();
278
+
279
+ /**
280
+ * Operation type.
281
+ -ADD
282
+ - DELETE: delete.
283
+ -UPDATE: Modify
284
+ -BIND: bind
285
+ -UNBIND: unbound
286
+ * @type {string || null}
287
+ */
288
+ this.OperationType = null;
289
+
290
+ /**
291
+ * This field is required except for creating custom configurations. Example: pz-1234abcd
292
+ * @type {string || null}
293
+ */
294
+ this.ConfigId = null;
295
+
296
+ /**
297
+ * Personalized configuration content. This field is required when creating custom configuration or modifying the content of custom configuration.
298
+ * @type {string || null}
299
+ */
300
+ this.ConfigContent = null;
301
+
302
+ /**
303
+ * This field is required when you create or modify the name of a custom configuration.
304
+ * @type {string || null}
305
+ */
306
+ this.ConfigName = null;
307
+
308
+ /**
309
+ * Load balancing instance ID. This field is required for bind/unbind.
310
+ * @type {Array.<string> || null}
311
+ */
312
+ this.LoadBalancerIds = null;
313
+
314
+ /**
315
+ * Tag.
316
+ * @type {Array.<TagInfo> || null}
317
+ */
318
+ this.Tags = null;
319
+
320
+ }
321
+
322
+ /**
323
+ * @private
324
+ */
325
+ deserialize(params) {
326
+ if (!params) {
327
+ return;
328
+ }
329
+ this.OperationType = 'OperationType' in params ? params.OperationType : null;
330
+ this.ConfigId = 'ConfigId' in params ? params.ConfigId : null;
331
+ this.ConfigContent = 'ConfigContent' in params ? params.ConfigContent : null;
332
+ this.ConfigName = 'ConfigName' in params ? params.ConfigName : null;
333
+ this.LoadBalancerIds = 'LoadBalancerIds' in params ? params.LoadBalancerIds : null;
334
+
335
+ if (params.Tags) {
336
+ this.Tags = new Array();
337
+ for (let z in params.Tags) {
338
+ let obj = new TagInfo();
339
+ obj.deserialize(params.Tags[z]);
340
+ this.Tags.push(obj);
341
+ }
342
+ }
343
+
344
+ }
345
+ }
346
+
347
+ /**
348
+ * DescribeCustomizedConfigList request structure.
349
+ * @class
350
+ */
351
+ class DescribeCustomizedConfigListRequest extends AbstractModel {
352
+ constructor(){
353
+ super();
354
+
355
+ /**
356
+ * Configuration type. CLB: CLB dimension; SERVER: Domain name dimension; LOCATION: Rule dimension.
357
+ * @type {string || null}
358
+ */
359
+ this.ConfigType = null;
360
+
361
+ /**
362
+ * Pagination offset. Default: 0
363
+ * @type {number || null}
364
+ */
365
+ this.Offset = null;
366
+
367
+ /**
368
+ * Number of results. Default: 20
369
+ * @type {number || null}
370
+ */
371
+ this.Limit = null;
372
+
373
+ /**
374
+ * Specify the name of configurations to query. Fuzzy match is supported.
375
+ * @type {string || null}
376
+ */
377
+ this.ConfigName = null;
378
+
379
+ /**
380
+ * Configuration ID
381
+ * @type {Array.<string> || null}
382
+ */
383
+ this.ConfigIds = null;
384
+
385
+ /**
386
+ * Filter criteria are as follows:
387
+ <li> loadbalancer-id - String - Required: No - (Filter condition) Filter by CLB ID, for example: "lb-12345678".</li>
388
+ <li> vip - String - Required: No - (Filter condition) Filter by CLB vip, for example: "1.1.1.1", "2204::22:3".</li>
389
+ * @type {Array.<Filter> || null}
390
+ */
391
+ this.Filters = null;
392
+
393
+ }
394
+
395
+ /**
396
+ * @private
397
+ */
398
+ deserialize(params) {
399
+ if (!params) {
400
+ return;
401
+ }
402
+ this.ConfigType = 'ConfigType' in params ? params.ConfigType : null;
403
+ this.Offset = 'Offset' in params ? params.Offset : null;
404
+ this.Limit = 'Limit' in params ? params.Limit : null;
405
+ this.ConfigName = 'ConfigName' in params ? params.ConfigName : null;
406
+ this.ConfigIds = 'ConfigIds' in params ? params.ConfigIds : null;
407
+
408
+ if (params.Filters) {
409
+ this.Filters = new Array();
410
+ for (let z in params.Filters) {
411
+ let obj = new Filter();
412
+ obj.deserialize(params.Filters[z]);
413
+ this.Filters.push(obj);
414
+ }
415
+ }
416
+
417
+ }
418
+ }
419
+
420
+ /**
421
+ * Reserved. Generally unnecessary for users to concern.
422
+ * @class
423
+ */
424
+ class ExtraInfo extends AbstractModel {
425
+ constructor(){
426
+ super();
427
+
428
+ /**
429
+ * Whether to enable VIP Direct Connect
430
+ * @type {boolean || null}
431
+ */
432
+ this.Dnat = null;
433
+
434
+ /**
435
+ * TgwGroup name
436
+ * @type {string || null}
437
+ */
438
+ this.TgwGroupName = null;
439
+
440
+ }
441
+
442
+ /**
443
+ * @private
444
+ */
445
+ deserialize(params) {
446
+ if (!params) {
447
+ return;
448
+ }
449
+ this.Dnat = 'Dnat' in params ? params.Dnat : null;
450
+ this.TgwGroupName = 'TgwGroupName' in params ? params.TgwGroupName : null;
451
+
452
+ }
453
+ }
454
+
455
+ /**
456
+ * DescribeCustomizedConfigAssociateList response structure.
457
+ * @class
458
+ */
459
+ class DescribeCustomizedConfigAssociateListResponse extends AbstractModel {
460
+ constructor(){
461
+ super();
462
+
463
+ /**
464
+ * Binding relationship list
465
+ * @type {Array.<BindDetailItem> || null}
466
+ */
467
+ this.BindList = null;
468
+
469
+ /**
470
+ * Total number of binding relationships
471
+ * @type {number || null}
472
+ */
473
+ this.TotalCount = null;
474
+
475
+ /**
476
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
477
+ * @type {string || null}
478
+ */
479
+ this.RequestId = null;
480
+
481
+ }
482
+
483
+ /**
484
+ * @private
485
+ */
486
+ deserialize(params) {
487
+ if (!params) {
488
+ return;
489
+ }
490
+
491
+ if (params.BindList) {
492
+ this.BindList = new Array();
493
+ for (let z in params.BindList) {
494
+ let obj = new BindDetailItem();
495
+ obj.deserialize(params.BindList[z]);
496
+ this.BindList.push(obj);
497
+ }
498
+ }
499
+ this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
500
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
501
+
502
+ }
503
+ }
504
+
505
+ /**
506
+ * CloneLoadBalancer response structure.
507
+ * @class
508
+ */
509
+ class CloneLoadBalancerResponse extends AbstractModel {
510
+ constructor(){
511
+ super();
512
+
513
+ /**
514
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
515
+ * @type {string || null}
516
+ */
517
+ this.RequestId = null;
518
+
519
+ }
520
+
521
+ /**
522
+ * @private
523
+ */
524
+ deserialize(params) {
525
+ if (!params) {
526
+ return;
527
+ }
528
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
529
+
530
+ }
531
+ }
532
+
533
+ /**
534
+ * BatchModifyTargetWeight response structure.
535
+ * @class
536
+ */
537
+ class BatchModifyTargetWeightResponse extends AbstractModel {
538
+ constructor(){
539
+ super();
540
+
541
+ /**
542
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
543
+ * @type {string || null}
544
+ */
545
+ this.RequestId = null;
546
+
547
+ }
548
+
549
+ /**
550
+ * @private
551
+ */
552
+ deserialize(params) {
553
+ if (!params) {
554
+ return;
555
+ }
556
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
557
+
558
+ }
559
+ }
560
+
561
+ /**
562
+ * DescribeLoadBalancerListByCertId response structure.
563
+ * @class
564
+ */
565
+ class DescribeLoadBalancerListByCertIdResponse extends AbstractModel {
566
+ constructor(){
567
+ super();
568
+
569
+ /**
570
+ * Certificate ID and the list of CLB instances associated with the certificate ID
571
+ * @type {Array.<CertIdRelatedWithLoadBalancers> || null}
572
+ */
573
+ this.CertSet = null;
574
+
575
+ /**
576
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
577
+ * @type {string || null}
578
+ */
579
+ this.RequestId = null;
580
+
581
+ }
582
+
583
+ /**
584
+ * @private
585
+ */
586
+ deserialize(params) {
587
+ if (!params) {
588
+ return;
589
+ }
590
+
591
+ if (params.CertSet) {
592
+ this.CertSet = new Array();
593
+ for (let z in params.CertSet) {
594
+ let obj = new CertIdRelatedWithLoadBalancers();
595
+ obj.deserialize(params.CertSet[z]);
596
+ this.CertSet.push(obj);
597
+ }
598
+ }
599
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
600
+
601
+ }
602
+ }
603
+
604
+ /**
605
+ * CreateLoadBalancer request structure.
606
+ * @class
607
+ */
608
+ class CreateLoadBalancerRequest extends AbstractModel {
609
+ constructor(){
610
+ super();
611
+
612
+ /**
613
+ * <p>Network type of the Cloud Load Balancer instance:<br>OPEN: public network attribute, INTERNAL: private network attribute.</p>
614
+ * @type {string || null}
615
+ */
616
+ this.LoadBalancerType = null;
617
+
618
+ /**
619
+ * <p>Type of the Cloud Load Balancer instance. 1: Common Cloud Load Balancer instance. Currently only support input 1.</p>
620
+ * @type {number || null}
621
+ */
622
+ this.Forward = null;
623
+
624
+ /**
625
+ * <p>The name of a Cloud Load Balancer instance takes effect only when creating an instance. Rule: 1-80 characters in internationally compatible languages, including English letters, Chinese characters, digits, hyphens "-", underscores "_", and other common characters (Unicode supplementary characters such as emojis and rare Chinese characters are forbidden). Note: If the name is identical to that of an existing Cloud Load Balancer instance in the system, the system will automatically generate a name for the newly created CLB instance.</p>
626
+ * @type {string || null}
627
+ */
628
+ this.LoadBalancerName = null;
629
+
630
+ /**
631
+ * <p>The network ID of the backend target device belonging to the Cloud Load Balancer, such as vpc-12345678, can be obtained through the <a href="https://www.tencentcloud.com/document/product/215/15778?from_cn_redirect=1">DescribeVpcs</a> API. It defaults to DefaultVPC if this parameter is not specified. This parameter is required when creating a private network CLB instance.</p>
632
+ * @type {string || null}
633
+ */
634
+ this.VpcId = null;
635
+
636
+ /**
637
+ * <p>A subnet ID must be specified when you purchase a private network CLB instance under a VPC. The VIP of the private network CLB instance is generated in this subnet. This parameter is required when you create a private network CLB instance but not supported when you create a public network IPv4 CLB instance.</p>
638
+ * @type {string || null}
639
+ */
640
+ this.SubnetId = null;
641
+
642
+ /**
643
+ * <p>The project ID associated with the Cloud Load Balancer instance can be obtained through the <a href="https://www.tencentcloud.com/document/api/651/78725?from_cn_redirect=1">DescribeProject</a> API. If this parameter is left blank, it will be used as the default project.</p>
644
+ * @type {number || null}
645
+ */
646
+ this.ProjectId = null;
647
+
648
+ /**
649
+ * <p>Applicable only to public network CLB. IP version, valid values: IPV4, IPV6, IPv6FullChain, case-insensitive, default value IPV4. Description: A value of IPV6 means IPV6 NAT64 version; a value of IPv6FullChain means IPv6 version.</p>
650
+ * @type {string || null}
651
+ */
652
+ this.AddressIPVersion = null;
653
+
654
+ /**
655
+ * <p>Count of Cloud Load Balancers to create. Default value: 1.</p>
656
+ * @type {number || null}
657
+ */
658
+ this.Number = null;
659
+
660
+ /**
661
+ * <p>Applicable only to public network IPv4 Cloud Load Balancer. Sets the primary AZ ID for cross-AZ disaster recovery, such as 100001 or ap-guangzhou-1.<br>Note: The primary AZ loads traffic. The secondary AZ does not load traffic by default and is used only if the primary AZ becomes unavailable. Currently, primary and secondary AZs are supported only for IPv4 CLB instances in Guangzhou, Shanghai, Nanjing, Beijing, Chengdu, Shenzhen Finance, Hong Kong (China), Seoul, Frankfurt, and Singapore regions. You can call the <a href="https://www.tencentcloud.com/document/api/214/70213?from_cn_redirect=1">DescribeResources</a> API to query the primary AZ list of a region. [If you need to experience this feature, submit a ticket](https://console.cloud.tencent.com/workorder/category).</p>
662
+ * @type {string || null}
663
+ */
664
+ this.MasterZoneId = null;
665
+
666
+ /**
667
+ * <p>Applicable only to public network load balancing with IPv4 version. Availability zone ID. Designated availability zone to create a CLB instance, for example: ap-guangzhou-1.</p>
668
+ * @type {string || null}
669
+ */
670
+ this.ZoneId = null;
671
+
672
+ /**
673
+ * <p>Maximum outbound bandwidth under the network billing mode. It applies only to LCU-supported instances of the private network type and all instances of the public network type.</p>
674
+ * @type {InternetAccessible || null}
675
+ */
676
+ this.InternetAccessible = null;
677
+
678
+ /**
679
+ * <p>Applicable only to public network CLB. Currently, static single-line IP type is supported in Guangzhou, Shanghai, Nanjing, Jinan, Hangzhou, Fuzhou, Beijing, Shijiazhuang, Wuhan, Changsha, Chengdu, and Chongqing regions. If you need to experience it, contact business manager to submit a request. After approval, just select CMCC, CUCC, or CTCC as the operator type. Only can be used BANDWIDTH_PACKAGE for network billing mode. If this parameter is not specified, use BGP by default. You can check ISPs supported in a region via the <a href="https://www.tencentcloud.com/document/api/214/70213?from_cn_redirect=1">DescribeResources</a> api query.</p>
680
+ * @type {string || null}
681
+ */
682
+ this.VipIsp = null;
683
+
684
+ /**
685
+ * <p>When you purchase Cloud Load Balancer (CLB), you can tag it with up to 20 tag key-value pairs.</p>
686
+ * @type {Array.<TagInfo> || null}
687
+ */
688
+ this.Tags = null;
689
+
690
+ /**
691
+ * <p>Apply for a Cloud Load Balancer with a designated VIP. This parameter is optional. If this parameter is not specified, the VIP is assigned by system. This parameter is supported for IPv4 and IPv6 types but unsupported for IPv6 NAT64 type.<br>Note: When specifying a VIP to create a private network instance or a public IPv6 BGP instance, creation fails if the VIP is not within the specified VPC subnet or if the VIP is already occupied.</p>
692
+ * @type {string || null}
693
+ */
694
+ this.Vip = null;
695
+
696
+ /**
697
+ * <p>Bandwidth package ID. If this parameter is specified, the network billing mode (InternetAccessible.InternetChargeType) will only support billing by bandwidth package (BANDWIDTH_PACKAGE). The attributes of the bandwidth package determine the settlement method. For IPv6 CLB instances purchased by non-promoted users, if the ISP type is not BGP, the bandwidth package ID cannot be specified.</p>
698
+ * @type {string || null}
699
+ */
700
+ this.BandwidthPackageId = null;
701
+
702
+ /**
703
+ * <p>Dedicated instance info. This parameter is required when creating a private network CLB instance of exclusive type.</p>
704
+ * @type {ExclusiveCluster || null}
705
+ */
706
+ this.ExclusiveCluster = null;
707
+
708
+ /**
709
+ * <p>Performance capacity specification.</p><ul><li>If you need to create an LCU-supported instance, this parameter is required. Valid values:<ul><li> clb.c2.medium: Standard </li><li> clb.c3.small: Advanced 1 </li><li> clb.c3.medium: Advanced 2 </li><li> clb.c4.small: Super Large 1 </li><li> clb.c4.medium: Super Large 2 </li><li> clb.c4.large: Super Large 3 </li><li> clb.c4.xlarge: Super Large 4 </li></ul></li><li>For domestic site users, this parameter is not required when creating a shared instance. For international site users, the default purchased instance is standard if this parameter is not passed.</li></ul> For specification details, see [Instance Specifications Comparison](https://www.tencentcloud.com/document/product/214/84689?from_cn_redirect=1).
710
+ * @type {string || null}
711
+ */
712
+ this.SlaType = null;
713
+
714
+ /**
715
+ * <p>A string used to ensure request idempotency. This string is generated by the customer and must be unique among different requests, with a maximum value of no more than 64 ASCII characters. If not specified, request idempotency cannot be guaranteed.</p>
716
+ * @type {string || null}
717
+ */
718
+ this.ClientToken = null;
719
+
720
+ /**
721
+ * <p>Whether the cross-regional or cross-Vpc IP binding feature is supported.</p>
722
+ * @type {boolean || null}
723
+ */
724
+ this.SnatPro = null;
725
+
726
+ /**
727
+ * <p>After enabling the cross-regional/cross-Vpc IP binding feature, create a SnatIp.</p>
728
+ * @type {Array.<SnatIp> || null}
729
+ */
730
+ this.SnatIps = null;
731
+
732
+ /**
733
+ * <p>Tag of the Stgw exclusive cluster.</p>
734
+ * @type {string || null}
735
+ */
736
+ this.ClusterTag = null;
737
+
738
+ /**
739
+ * <p>Applicable only to public network load balancing with IPv4 version. Sets the secondary AZ ID for cross-AZ disaster recovery, such as 100001 or ap-guangzhou-1.<br>Note: The secondary AZ is the availability zone that needs to carry traffic after primary availability zone failure. You can query a region's list of primary/secondary AZs via the <a href="https://www.tencentcloud.com/document/api/214/70213?from_cn_redirect=1">DescribeResources</a> API. [If you need to trial the feature, submit a <a href="https://console.cloud.tencent.com/workorder/category">ticket application</a>]</p>
740
+ * @type {string || null}
741
+ */
742
+ this.SlaveZoneId = null;
743
+
744
+ /**
745
+ * <p>Unique ID of EIP, such as eip-11112222, applicable only to private network CLB to bind EIP.</p>
746
+ * @type {string || null}
747
+ */
748
+ this.EipAddressId = null;
749
+
750
+ /**
751
+ * <p>Allow CLB traffic to the Target. Enable (true): verify security groups on CLB; deny CLB traffic to the Target (false): verify security groups on both CLB and backend instances.</p>
752
+ * @type {boolean || null}
753
+ */
754
+ this.LoadBalancerPassToTarget = null;
755
+
756
+ /**
757
+ * <p>Network outbound</p>
758
+ * @type {string || null}
759
+ */
760
+ this.Egress = null;
761
+
762
+ /**
763
+ * <p>Prepaid billing attributes of the Cloud Load Balancer instance</p>
764
+ * @type {LBChargePrepaid || null}
765
+ */
766
+ this.LBChargePrepaid = null;
767
+
768
+ /**
769
+ * <p>Billing type of the CLB instance. Valid values: POSTPAID_BY_HOUR and PREPAID. Default value: POSTPAID_BY_HOUR.</p>
770
+ * @type {string || null}
771
+ */
772
+ this.LBChargeType = null;
773
+
774
+ /**
775
+ * <p>L7 access log topic ID</p>
776
+ * @type {string || null}
777
+ */
778
+ this.AccessLogTopicId = null;
779
+
780
+ /**
781
+ * <p>Whether layer-7 advanced routing is enabled</p>
782
+ * @type {boolean || null}
783
+ */
784
+ this.AdvancedRoute = null;
785
+
786
+ /**
787
+ * <p>Availability zone affinity info</p>
788
+ * @type {AvailableZoneAffinityInfo || null}
789
+ */
790
+ this.AvailableZoneAffinityInfo = null;
791
+
792
+ }
793
+
794
+ /**
795
+ * @private
796
+ */
797
+ deserialize(params) {
798
+ if (!params) {
799
+ return;
800
+ }
801
+ this.LoadBalancerType = 'LoadBalancerType' in params ? params.LoadBalancerType : null;
802
+ this.Forward = 'Forward' in params ? params.Forward : null;
803
+ this.LoadBalancerName = 'LoadBalancerName' in params ? params.LoadBalancerName : null;
804
+ this.VpcId = 'VpcId' in params ? params.VpcId : null;
805
+ this.SubnetId = 'SubnetId' in params ? params.SubnetId : null;
806
+ this.ProjectId = 'ProjectId' in params ? params.ProjectId : null;
807
+ this.AddressIPVersion = 'AddressIPVersion' in params ? params.AddressIPVersion : null;
808
+ this.Number = 'Number' in params ? params.Number : null;
809
+ this.MasterZoneId = 'MasterZoneId' in params ? params.MasterZoneId : null;
810
+ this.ZoneId = 'ZoneId' in params ? params.ZoneId : null;
811
+
812
+ if (params.InternetAccessible) {
813
+ let obj = new InternetAccessible();
814
+ obj.deserialize(params.InternetAccessible)
815
+ this.InternetAccessible = obj;
816
+ }
817
+ this.VipIsp = 'VipIsp' in params ? params.VipIsp : null;
818
+
819
+ if (params.Tags) {
820
+ this.Tags = new Array();
821
+ for (let z in params.Tags) {
822
+ let obj = new TagInfo();
823
+ obj.deserialize(params.Tags[z]);
824
+ this.Tags.push(obj);
825
+ }
826
+ }
827
+ this.Vip = 'Vip' in params ? params.Vip : null;
828
+ this.BandwidthPackageId = 'BandwidthPackageId' in params ? params.BandwidthPackageId : null;
829
+
830
+ if (params.ExclusiveCluster) {
831
+ let obj = new ExclusiveCluster();
832
+ obj.deserialize(params.ExclusiveCluster)
833
+ this.ExclusiveCluster = obj;
834
+ }
835
+ this.SlaType = 'SlaType' in params ? params.SlaType : null;
836
+ this.ClientToken = 'ClientToken' in params ? params.ClientToken : null;
837
+ this.SnatPro = 'SnatPro' in params ? params.SnatPro : null;
838
+
839
+ if (params.SnatIps) {
840
+ this.SnatIps = new Array();
841
+ for (let z in params.SnatIps) {
842
+ let obj = new SnatIp();
843
+ obj.deserialize(params.SnatIps[z]);
844
+ this.SnatIps.push(obj);
845
+ }
846
+ }
847
+ this.ClusterTag = 'ClusterTag' in params ? params.ClusterTag : null;
848
+ this.SlaveZoneId = 'SlaveZoneId' in params ? params.SlaveZoneId : null;
849
+ this.EipAddressId = 'EipAddressId' in params ? params.EipAddressId : null;
850
+ this.LoadBalancerPassToTarget = 'LoadBalancerPassToTarget' in params ? params.LoadBalancerPassToTarget : null;
851
+ this.Egress = 'Egress' in params ? params.Egress : null;
852
+
853
+ if (params.LBChargePrepaid) {
854
+ let obj = new LBChargePrepaid();
855
+ obj.deserialize(params.LBChargePrepaid)
856
+ this.LBChargePrepaid = obj;
857
+ }
858
+ this.LBChargeType = 'LBChargeType' in params ? params.LBChargeType : null;
859
+ this.AccessLogTopicId = 'AccessLogTopicId' in params ? params.AccessLogTopicId : null;
860
+ this.AdvancedRoute = 'AdvancedRoute' in params ? params.AdvancedRoute : null;
861
+
862
+ if (params.AvailableZoneAffinityInfo) {
863
+ let obj = new AvailableZoneAffinityInfo();
864
+ obj.deserialize(params.AvailableZoneAffinityInfo)
865
+ this.AvailableZoneAffinityInfo = obj;
866
+ }
867
+
868
+ }
869
+ }
870
+
871
+ /**
872
+ * CLB instance health check status
873
+ * @class
874
+ */
875
+ class LoadBalancerHealth extends AbstractModel {
876
+ constructor(){
877
+ super();
878
+
879
+ /**
880
+ * CLB instance ID
881
+ * @type {string || null}
882
+ */
883
+ this.LoadBalancerId = null;
884
+
885
+ /**
886
+ * Load balancing instance name
887
+ * @type {string || null}
888
+ */
889
+ this.LoadBalancerName = null;
890
+
891
+ /**
892
+ * Listener list
893
+ * @type {Array.<ListenerHealth> || null}
894
+ */
895
+ this.Listeners = null;
896
+
897
+ }
898
+
899
+ /**
900
+ * @private
901
+ */
902
+ deserialize(params) {
903
+ if (!params) {
904
+ return;
905
+ }
906
+ this.LoadBalancerId = 'LoadBalancerId' in params ? params.LoadBalancerId : null;
907
+ this.LoadBalancerName = 'LoadBalancerName' in params ? params.LoadBalancerName : null;
908
+
909
+ if (params.Listeners) {
910
+ this.Listeners = new Array();
911
+ for (let z in params.Listeners) {
912
+ let obj = new ListenerHealth();
913
+ obj.deserialize(params.Listeners[z]);
914
+ this.Listeners.push(obj);
915
+ }
916
+ }
917
+
918
+ }
919
+ }
920
+
921
+ /**
922
+ * DescribeTargetHealth request structure.
923
+ * @class
924
+ */
925
+ class DescribeTargetHealthRequest extends AbstractModel {
926
+ constructor(){
927
+ super();
928
+
929
+ /**
930
+ * List of CLB instance IDs to query.
931
+ * @type {Array.<string> || null}
932
+ */
933
+ this.LoadBalancerIds = null;
934
+
935
+ /**
936
+ * Listener ID list to query.
937
+ * @type {Array.<string> || null}
938
+ */
939
+ this.ListenerIds = null;
940
+
941
+ /**
942
+ * List of forwarding rule IDs to query.
943
+ * @type {Array.<string> || null}
944
+ */
945
+ this.LocationIds = null;
946
+
947
+ }
948
+
949
+ /**
950
+ * @private
951
+ */
952
+ deserialize(params) {
953
+ if (!params) {
954
+ return;
955
+ }
956
+ this.LoadBalancerIds = 'LoadBalancerIds' in params ? params.LoadBalancerIds : null;
957
+ this.ListenerIds = 'ListenerIds' in params ? params.ListenerIds : null;
958
+ this.LocationIds = 'LocationIds' in params ? params.LocationIds : null;
959
+
960
+ }
961
+ }
962
+
963
+ /**
964
+ * CloneLoadBalancer request structure.
965
+ * @class
966
+ */
967
+ class CloneLoadBalancerRequest extends AbstractModel {
968
+ constructor(){
969
+ super();
970
+
971
+ /**
972
+ * CLB ID.
973
+ * @type {string || null}
974
+ */
975
+ this.LoadBalancerId = null;
976
+
977
+ /**
978
+ * The name of the cloned CLB instance. Rule: 1-60 English letters, Chinese characters, digits, hyphens "-", or underscores "_".
979
+ Note: If the name is the same as an existing Cloud Load Balancer instance in the system, the system will automatically generate the name of the created CLB instance.
980
+ * @type {string || null}
981
+ */
982
+ this.LoadBalancerName = null;
983
+
984
+ /**
985
+ * The project ID associated with the Cloud Load Balancer instance can be obtained through the [DescribeLoadBalancers](https://www.tencentcloud.com/document/product/214/30685?from_cn_redirect=1) API. If this parameter is not specified, it will be used as the default project.
986
+ * @type {number || null}
987
+ */
988
+ this.ProjectId = null;
989
+
990
+ /**
991
+ * Applicable only to public network CLB. Sets the primary AZ ID for cross-AZ disaster recovery, such as 100001 or ap-guangzhou-1.
992
+ Note: The primary AZ loads traffic, while the secondary AZ does not load traffic by default and is used only if the primary AZ becomes unavailable. The platform will automatically select the optimal secondary AZ. You can call the [DescribeResources](https://www.tencentcloud.com/document/api/214/70213?from_cn_redirect=1) API to query the primary AZ list of a region.
993
+ * @type {string || null}
994
+ */
995
+ this.MasterZoneId = null;
996
+
997
+ /**
998
+ * Applicable only to public network CLB. Sets the secondary AZ ID for cross-AZ disaster recovery, such as 100001 or ap-guangzhou-1.
999
+ Note: The secondary AZ sustains traffic when the primary AZ encounters faults. You can call the [DescribeResources](https://www.tencentcloud.com/document/api/214/70213?from_cn_redirect=1) API to query the list of primary/secondary AZs in a region.
1000
+ * @type {string || null}
1001
+ */
1002
+ this.SlaveZoneId = null;
1003
+
1004
+ /**
1005
+ * Applicable only to public network CLB. Availability zone ID. Specify an availability zone to create a Cloud Load Balancer instance, for example, ap-guangzhou-1. If not specified, queries CVM instances in all AZs. If needed, call the DescribeZones API (https://www.tencentcloud.com/document/product/213/15707?from_cn_redirect=1) to query the availability zone list.
1006
+ * @type {string || null}
1007
+ */
1008
+ this.ZoneId = null;
1009
+
1010
+ /**
1011
+ * CLB network billing mode, applicable only to public network CLB instances.
1012
+ * @type {InternetAccessible || null}
1013
+ */
1014
+ this.InternetAccessible = null;
1015
+
1016
+ /**
1017
+ * It only applies to public CLB. Currently, the static single-line IP type is supported only for the regions of Guangzhou, Shanghai, Nanjing, Jinan, Hangzhou, Fuzhou, Beijing, Shijiazhuang, Wuhan, Changsha, Chengdu, and Chongqing. If you need to experience it, contact your business manager. After approval, you can select the ISP type as China Mobile (CMCC), China Unicom (CUCC), or China Telecom (CTCC). The network billing mode should be selected as billing by bandwidth package (BANDWIDTH_PACKAGE). If this parameter is not specified, BGP is used by default. You can use the DescribeResources API to query ISPs supported for a region.
1018
+ * @type {string || null}
1019
+ */
1020
+ this.VipIsp = null;
1021
+
1022
+ /**
1023
+ * Designate a Vip to apply for Cloud Load Balancer.
1024
+ * @type {string || null}
1025
+ */
1026
+ this.Vip = null;
1027
+
1028
+ /**
1029
+ * When you purchase Cloud Load Balancer (CLB), you can tag it.
1030
+ * @type {Array.<TagInfo> || null}
1031
+ */
1032
+ this.Tags = null;
1033
+
1034
+ /**
1035
+ * Exclusive cluster information.
1036
+ * @type {ExclusiveCluster || null}
1037
+ */
1038
+ this.ExclusiveCluster = null;
1039
+
1040
+ /**
1041
+ * Bandwidth package ID. If this parameter is specified, the network billing mode (InternetAccessible.InternetChargeType) supports only billing by bandwidth package (BANDWIDTH_PACKAGE).
1042
+ * @type {string || null}
1043
+ */
1044
+ this.BandwidthPackageId = null;
1045
+
1046
+ /**
1047
+ * Whether to support the feature of binding IP addresses across regions/VPCs.
1048
+ * @type {boolean || null}
1049
+ */
1050
+ this.SnatPro = null;
1051
+
1052
+ /**
1053
+ * SNAT IP addresses to be created when the feature of cross-region/cross-VPC IP address binding is enabled.
1054
+ * @type {Array.<SnatIp> || null}
1055
+ */
1056
+ this.SnatIps = null;
1057
+
1058
+ /**
1059
+ * Public network exclusive cluster ID or CDCId.
1060
+ * @type {Array.<string> || null}
1061
+ */
1062
+ this.ClusterIds = null;
1063
+
1064
+ /**
1065
+ * Performance capacity specification.<li>clb.c2.medium (standard type)</li><li>clb.c3.small (advanced type 1)</li><li>clb.c3.medium (advanced type 2)</li><li>clb.c4.small (high-strength type 1)</li><li>clb.c4.medium (high-strength type 2)</li><li>clb.c4.large (high-strength type 3)</li><li>clb.c4.xlarge (high-strength type 4)</li>
1066
+ * @type {string || null}
1067
+ */
1068
+ this.SlaType = null;
1069
+
1070
+ /**
1071
+ * Exclusive STGW cluster tag.
1072
+ * @type {string || null}
1073
+ */
1074
+ this.ClusterTag = null;
1075
+
1076
+ /**
1077
+ * Applicable only to private network CLB. When connected to nearby via private network, select availability zone for deployment. You can call the [DescribeZones](https://www.tencentcloud.com/document/product/213/15707?from_cn_redirect=1) API to query the availability zone list.
1078
+ * @type {Array.<string> || null}
1079
+ */
1080
+ this.Zones = null;
1081
+
1082
+ /**
1083
+ * Unique ID of an EIP, in the format of eip-11112222, which is applicable only for binding EIP to private network CLB.
1084
+ * @type {string || null}
1085
+ */
1086
+ this.EipAddressId = null;
1087
+
1088
+ }
1089
+
1090
+ /**
1091
+ * @private
1092
+ */
1093
+ deserialize(params) {
1094
+ if (!params) {
1095
+ return;
1096
+ }
1097
+ this.LoadBalancerId = 'LoadBalancerId' in params ? params.LoadBalancerId : null;
1098
+ this.LoadBalancerName = 'LoadBalancerName' in params ? params.LoadBalancerName : null;
1099
+ this.ProjectId = 'ProjectId' in params ? params.ProjectId : null;
1100
+ this.MasterZoneId = 'MasterZoneId' in params ? params.MasterZoneId : null;
1101
+ this.SlaveZoneId = 'SlaveZoneId' in params ? params.SlaveZoneId : null;
1102
+ this.ZoneId = 'ZoneId' in params ? params.ZoneId : null;
1103
+
1104
+ if (params.InternetAccessible) {
1105
+ let obj = new InternetAccessible();
1106
+ obj.deserialize(params.InternetAccessible)
1107
+ this.InternetAccessible = obj;
1108
+ }
1109
+ this.VipIsp = 'VipIsp' in params ? params.VipIsp : null;
1110
+ this.Vip = 'Vip' in params ? params.Vip : null;
1111
+
1112
+ if (params.Tags) {
1113
+ this.Tags = new Array();
1114
+ for (let z in params.Tags) {
1115
+ let obj = new TagInfo();
1116
+ obj.deserialize(params.Tags[z]);
1117
+ this.Tags.push(obj);
1118
+ }
1119
+ }
1120
+
1121
+ if (params.ExclusiveCluster) {
1122
+ let obj = new ExclusiveCluster();
1123
+ obj.deserialize(params.ExclusiveCluster)
1124
+ this.ExclusiveCluster = obj;
1125
+ }
1126
+ this.BandwidthPackageId = 'BandwidthPackageId' in params ? params.BandwidthPackageId : null;
1127
+ this.SnatPro = 'SnatPro' in params ? params.SnatPro : null;
1128
+
1129
+ if (params.SnatIps) {
1130
+ this.SnatIps = new Array();
1131
+ for (let z in params.SnatIps) {
1132
+ let obj = new SnatIp();
1133
+ obj.deserialize(params.SnatIps[z]);
1134
+ this.SnatIps.push(obj);
1135
+ }
1136
+ }
1137
+ this.ClusterIds = 'ClusterIds' in params ? params.ClusterIds : null;
1138
+ this.SlaType = 'SlaType' in params ? params.SlaType : null;
1139
+ this.ClusterTag = 'ClusterTag' in params ? params.ClusterTag : null;
1140
+ this.Zones = 'Zones' in params ? params.Zones : null;
1141
+ this.EipAddressId = 'EipAddressId' in params ? params.EipAddressId : null;
1142
+
1143
+ }
1144
+ }
1145
+
1146
+ /**
1147
+ * Forwarding target, namely, a real server bound to the CLB instance
1148
+ * @class
1149
+ */
1150
+ class Target extends AbstractModel {
1151
+ constructor(){
1152
+ super();
1153
+
1154
+ /**
1155
+ * Listening port of the backend service.
1156
+ Note: This parameter must be specified when binding to CVM (Cloud Virtual Machine) or ENI (Elastic Network Interface).
1157
+ * @type {number || null}
1158
+ */
1159
+ this.Port = null;
1160
+
1161
+ /**
1162
+ * Backend service type, optional: CVM (Cloud Virtual Machine), ENI (Elastic Network Interface). As an input parameter, this parameter does not take effect.
1163
+ * @type {string || null}
1164
+ */
1165
+ this.Type = null;
1166
+
1167
+ /**
1168
+ * This parameter must be passed in when binding to CVM. It represents the unique ID of the CVM and can be obtained from the InstanceId field in the response of the DescribeInstances API. It indicates binding to the primary IPv4 address of the primary network interface. The following scenarios do not support specifying InstanceId: binding to non-CVM resources, binding to auxiliary network interface IPs on CVM, binding to CVM through cross-region 2.0, and binding to IPv6 addresses of CVM.
1169
+ Note: You can only input one of the InstanceId or EniIp parameter.
1170
+ * @type {string || null}
1171
+ */
1172
+ this.InstanceId = null;
1173
+
1174
+ /**
1175
+ * The forwarding weight of the backend service after modification, with a value range of [0, 100], defaults to 10. This parameter has a higher priority than the Weight parameter in [RsWeightRule](https://www.tencentcloud.com/document/api/214/30694?from_cn_redirect=1#RsWeightRule). The final weight value is based on this Weight parameter. Only when this Weight parameter is empty, the Weight parameter in RsWeightRule will be used.
1176
+ * @type {number || null}
1177
+ */
1178
+ this.Weight = null;
1179
+
1180
+ /**
1181
+ * This parameter must be passed in for IP binding. It supports ENI IPs and other private IP addresses. If it is an ENI, it must first bind to a CVM before binding to a CLB instance.
1182
+ Note: You can only input one of the InstanceId or EniIp parameter. If it is binding a dual-stack IPV6 instance, you must pass this parameter. If it is cross-region binding, you must pass the parameter, and the InstanceId parameter is not supported.
1183
+ * @type {string || null}
1184
+ */
1185
+ this.EniIp = null;
1186
+
1187
+ }
1188
+
1189
+ /**
1190
+ * @private
1191
+ */
1192
+ deserialize(params) {
1193
+ if (!params) {
1194
+ return;
1195
+ }
1196
+ this.Port = 'Port' in params ? params.Port : null;
1197
+ this.Type = 'Type' in params ? params.Type : null;
1198
+ this.InstanceId = 'InstanceId' in params ? params.InstanceId : null;
1199
+ this.Weight = 'Weight' in params ? params.Weight : null;
1200
+ this.EniIp = 'EniIp' in params ? params.EniIp : null;
1201
+
1202
+ }
1203
+ }
1204
+
1205
+ /**
1206
+ * Modify the data type of a node weight
1207
+ * @class
1208
+ */
1209
+ class RsWeightRule extends AbstractModel {
1210
+ constructor(){
1211
+ super();
1212
+
1213
+ /**
1214
+ * CLB listener ID.
1215
+ * @type {string || null}
1216
+ */
1217
+ this.ListenerId = null;
1218
+
1219
+ /**
1220
+ * List of real servers for which weights are to be modified.
1221
+ * @type {Array.<Target> || null}
1222
+ */
1223
+ this.Targets = null;
1224
+
1225
+ /**
1226
+ * Forwarding rule ID, which is required only for Layer-7 rules but not for Layer-4 rules.
1227
+ * @type {string || null}
1228
+ */
1229
+ this.LocationId = null;
1230
+
1231
+ /**
1232
+ * Domain name of the target rule. This parameter will not take effect when LocationId parameter is provided.
1233
+ * @type {string || null}
1234
+ */
1235
+ this.Domain = null;
1236
+
1237
+ /**
1238
+ * URL of the target rule. This parameter will not take effect when the LocationId parameter is provided.
1239
+ * @type {string || null}
1240
+ */
1241
+ this.Url = null;
1242
+
1243
+ /**
1244
+ * The forwarding weight of the backend service after modification, value ranges from 0 to 100. This parameter has a lower priority than the Weight parameter in the Target (https://www.tencentcloud.com/document/api/214/30694?from_cn_redirect=1#Target). The final weight value is determined by the Weight parameter in the Target, and only when the Weight parameter in the Target is empty, the Weight parameter in the RsWeightRule takes effect.
1245
+ * @type {number || null}
1246
+ */
1247
+ this.Weight = null;
1248
+
1249
+ }
1250
+
1251
+ /**
1252
+ * @private
1253
+ */
1254
+ deserialize(params) {
1255
+ if (!params) {
1256
+ return;
1257
+ }
1258
+ this.ListenerId = 'ListenerId' in params ? params.ListenerId : null;
1259
+
1260
+ if (params.Targets) {
1261
+ this.Targets = new Array();
1262
+ for (let z in params.Targets) {
1263
+ let obj = new Target();
1264
+ obj.deserialize(params.Targets[z]);
1265
+ this.Targets.push(obj);
1266
+ }
1267
+ }
1268
+ this.LocationId = 'LocationId' in params ? params.LocationId : null;
1269
+ this.Domain = 'Domain' in params ? params.Domain : null;
1270
+ this.Url = 'Url' in params ? params.Url : null;
1271
+ this.Weight = 'Weight' in params ? params.Weight : null;
1272
+
1273
+ }
1274
+ }
1275
+
1276
+ /**
1277
+ * DescribeCustomizedConfigList response structure.
1278
+ * @class
1279
+ */
1280
+ class DescribeCustomizedConfigListResponse extends AbstractModel {
1281
+ constructor(){
1282
+ super();
1283
+
1284
+ /**
1285
+ * Configuration list
1286
+ * @type {Array.<ConfigListItem> || null}
1287
+ */
1288
+ this.ConfigList = null;
1289
+
1290
+ /**
1291
+ * Number of configurations
1292
+ * @type {number || null}
1293
+ */
1294
+ this.TotalCount = null;
1295
+
1296
+ /**
1297
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
1298
+ * @type {string || null}
1299
+ */
1300
+ this.RequestId = null;
1301
+
1302
+ }
1303
+
1304
+ /**
1305
+ * @private
1306
+ */
1307
+ deserialize(params) {
1308
+ if (!params) {
1309
+ return;
1310
+ }
1311
+
1312
+ if (params.ConfigList) {
1313
+ this.ConfigList = new Array();
1314
+ for (let z in params.ConfigList) {
1315
+ let obj = new ConfigListItem();
1316
+ obj.deserialize(params.ConfigList[z]);
1317
+ this.ConfigList.push(obj);
1318
+ }
1319
+ }
1320
+ this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
1321
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
1322
+
1323
+ }
1324
+ }
1325
+
1326
+ /**
1327
+ * Certificate ID and the list of CLB instances associated with the certificate ID
1328
+ * @class
1329
+ */
1330
+ class CertIdRelatedWithLoadBalancers extends AbstractModel {
1331
+ constructor(){
1332
+ super();
1333
+
1334
+ /**
1335
+ * Certificate ID
1336
+ * @type {string || null}
1337
+ */
1338
+ this.CertId = null;
1339
+
1340
+ /**
1341
+ * List of CLB instances associated with the certificate
1342
+ * @type {Array.<LoadBalancer> || null}
1343
+ */
1344
+ this.LoadBalancers = null;
1345
+
1346
+ }
1347
+
1348
+ /**
1349
+ * @private
1350
+ */
1351
+ deserialize(params) {
1352
+ if (!params) {
1353
+ return;
1354
+ }
1355
+ this.CertId = 'CertId' in params ? params.CertId : null;
1356
+
1357
+ if (params.LoadBalancers) {
1358
+ this.LoadBalancers = new Array();
1359
+ for (let z in params.LoadBalancers) {
1360
+ let obj = new LoadBalancer();
1361
+ obj.deserialize(params.LoadBalancers[z]);
1362
+ this.LoadBalancers.push(obj);
1363
+ }
1364
+ }
1365
+
1366
+ }
1367
+ }
1368
+
1369
+ /**
1370
+ * Health check status of a forwarding rule
1371
+ * @class
1372
+ */
1373
+ class RuleHealth extends AbstractModel {
1374
+ constructor(){
1375
+ super();
1376
+
1377
+ /**
1378
+ * Forwarding rule ID.
1379
+ * @type {string || null}
1380
+ */
1381
+ this.LocationId = null;
1382
+
1383
+ /**
1384
+ * Domain name of the forwarding rule
1385
+ Note: This field may return null, indicating that no valid values can be obtained.
1386
+ * @type {string || null}
1387
+ */
1388
+ this.Domain = null;
1389
+
1390
+ /**
1391
+ * URL of the forwarding rule
1392
+ Note: This field may return null, indicating that no valid values can be obtained.
1393
+ * @type {string || null}
1394
+ */
1395
+ this.Url = null;
1396
+
1397
+ /**
1398
+ * Advanced routing rule ID
1399
+ * @type {string || null}
1400
+ */
1401
+ this.RuleId = null;
1402
+
1403
+ /**
1404
+ * Health check status of the backend service bound to this rule
1405
+ * @type {Array.<TargetHealth> || null}
1406
+ */
1407
+ this.Targets = null;
1408
+
1409
+ }
1410
+
1411
+ /**
1412
+ * @private
1413
+ */
1414
+ deserialize(params) {
1415
+ if (!params) {
1416
+ return;
1417
+ }
1418
+ this.LocationId = 'LocationId' in params ? params.LocationId : null;
1419
+ this.Domain = 'Domain' in params ? params.Domain : null;
1420
+ this.Url = 'Url' in params ? params.Url : null;
1421
+ this.RuleId = 'RuleId' in params ? params.RuleId : null;
1422
+
1423
+ if (params.Targets) {
1424
+ this.Targets = new Array();
1425
+ for (let z in params.Targets) {
1426
+ let obj = new TargetHealth();
1427
+ obj.deserialize(params.Targets[z]);
1428
+ this.Targets.push(obj);
1429
+ }
1430
+ }
1431
+
1432
+ }
1433
+ }
1434
+
1435
+ /**
1436
+ * CLB tag information
1437
+ * @class
1438
+ */
1439
+ class TagInfo extends AbstractModel {
1440
+ constructor(){
1441
+ super();
1442
+
1443
+ /**
1444
+ * Tag key
1445
+ * @type {string || null}
1446
+ */
1447
+ this.TagKey = null;
1448
+
1449
+ /**
1450
+ * Tag value
1451
+ * @type {string || null}
1452
+ */
1453
+ this.TagValue = null;
1454
+
1455
+ }
1456
+
1457
+ /**
1458
+ * @private
1459
+ */
1460
+ deserialize(params) {
1461
+ if (!params) {
1462
+ return;
1463
+ }
1464
+ this.TagKey = 'TagKey' in params ? params.TagKey : null;
1465
+ this.TagValue = 'TagValue' in params ? params.TagValue : null;
1466
+
1467
+ }
1468
+ }
1469
+
1470
+ /**
1471
+ * configuration content
1472
+ * @class
1473
+ */
1474
+ class ConfigListItem extends AbstractModel {
1475
+ constructor(){
1476
+ super();
1477
+
1478
+ /**
1479
+ * Configuration ID
1480
+ * @type {string || null}
1481
+ */
1482
+ this.ConfigId = null;
1483
+
1484
+ /**
1485
+ * Configuration type
1486
+ * @type {string || null}
1487
+ */
1488
+ this.ConfigType = null;
1489
+
1490
+ /**
1491
+ * Configuration name
1492
+ * @type {string || null}
1493
+ */
1494
+ this.ConfigName = null;
1495
+
1496
+ /**
1497
+ * Configuration content
1498
+ * @type {string || null}
1499
+ */
1500
+ this.ConfigContent = null;
1501
+
1502
+ /**
1503
+ * Configuration creation time
1504
+ * @type {string || null}
1505
+ */
1506
+ this.CreateTimestamp = null;
1507
+
1508
+ /**
1509
+ * Configuration modification time
1510
+ * @type {string || null}
1511
+ */
1512
+ this.UpdateTimestamp = null;
1513
+
1514
+ /**
1515
+ * Tag.
1516
+ * @type {Array.<TagInfo> || null}
1517
+ */
1518
+ this.Tag = null;
1519
+
1520
+ }
1521
+
1522
+ /**
1523
+ * @private
1524
+ */
1525
+ deserialize(params) {
1526
+ if (!params) {
1527
+ return;
1528
+ }
1529
+ this.ConfigId = 'ConfigId' in params ? params.ConfigId : null;
1530
+ this.ConfigType = 'ConfigType' in params ? params.ConfigType : null;
1531
+ this.ConfigName = 'ConfigName' in params ? params.ConfigName : null;
1532
+ this.ConfigContent = 'ConfigContent' in params ? params.ConfigContent : null;
1533
+ this.CreateTimestamp = 'CreateTimestamp' in params ? params.CreateTimestamp : null;
1534
+ this.UpdateTimestamp = 'UpdateTimestamp' in params ? params.UpdateTimestamp : null;
1535
+
1536
+ if (params.Tag) {
1537
+ this.Tag = new Array();
1538
+ for (let z in params.Tag) {
1539
+ let obj = new TagInfo();
1540
+ obj.deserialize(params.Tag[z]);
1541
+ this.Tag.push(obj);
1542
+ }
1543
+ }
1544
+
1545
+ }
1546
+ }
1547
+
1548
+ /**
1549
+ * DescribeClassicalLBListeners response structure.
1550
+ * @class
1551
+ */
1552
+ class DescribeClassicalLBListenersResponse extends AbstractModel {
1553
+ constructor(){
1554
+ super();
1555
+
1556
+ /**
1557
+ * Listener list.
1558
+ * @type {Array.<ClassicalListener> || null}
1559
+ */
1560
+ this.Listeners = null;
1561
+
1562
+ /**
1563
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
1564
+ * @type {string || null}
1565
+ */
1566
+ this.RequestId = null;
1567
+
1568
+ }
1569
+
1570
+ /**
1571
+ * @private
1572
+ */
1573
+ deserialize(params) {
1574
+ if (!params) {
1575
+ return;
1576
+ }
1577
+
1578
+ if (params.Listeners) {
1579
+ this.Listeners = new Array();
1580
+ for (let z in params.Listeners) {
1581
+ let obj = new ClassicalListener();
1582
+ obj.deserialize(params.Listeners[z]);
1583
+ this.Listeners.push(obj);
1584
+ }
1585
+ }
1586
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
1587
+
1588
+ }
1589
+ }
1590
+
1591
+ /**
1592
+ * SnatIp information structure
1593
+ * @class
1594
+ */
1595
+ class SnatIp extends AbstractModel {
1596
+ constructor(){
1597
+ super();
1598
+
1599
+ /**
1600
+ * Unique ID of the VPC subnet, such as subnet-12345678
1601
+ * @type {string || null}
1602
+ */
1603
+ this.SubnetId = null;
1604
+
1605
+ /**
1606
+ * IP address, such as 192.168.0.1
1607
+ * @type {string || null}
1608
+ */
1609
+ this.Ip = null;
1610
+
1611
+ }
1612
+
1613
+ /**
1614
+ * @private
1615
+ */
1616
+ deserialize(params) {
1617
+ if (!params) {
1618
+ return;
1619
+ }
1620
+ this.SubnetId = 'SubnetId' in params ? params.SubnetId : null;
1621
+ this.Ip = 'Ip' in params ? params.Ip : null;
1622
+
1623
+ }
1624
+ }
1625
+
1626
+ /**
1627
+ * DescribeTargetHealth response structure.
1628
+ * @class
1629
+ */
1630
+ class DescribeTargetHealthResponse extends AbstractModel {
1631
+ constructor(){
1632
+ super();
1633
+
1634
+ /**
1635
+ * LoadBalancer list.
1636
+ * @type {Array.<LoadBalancerHealth> || null}
1637
+ */
1638
+ this.LoadBalancers = null;
1639
+
1640
+ /**
1641
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
1642
+ * @type {string || null}
1643
+ */
1644
+ this.RequestId = null;
1645
+
1646
+ }
1647
+
1648
+ /**
1649
+ * @private
1650
+ */
1651
+ deserialize(params) {
1652
+ if (!params) {
1653
+ return;
1654
+ }
1655
+
1656
+ if (params.LoadBalancers) {
1657
+ this.LoadBalancers = new Array();
1658
+ for (let z in params.LoadBalancers) {
1659
+ let obj = new LoadBalancerHealth();
1660
+ obj.deserialize(params.LoadBalancers[z]);
1661
+ this.LoadBalancers.push(obj);
1662
+ }
1663
+ }
1664
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
1665
+
1666
+ }
1667
+ }
1668
+
1669
+ /**
1670
+ * CreateLoadBalancer response structure.
1671
+ * @class
1672
+ */
1673
+ class CreateLoadBalancerResponse extends AbstractModel {
1674
+ constructor(){
1675
+ super();
1676
+
1677
+ /**
1678
+ * <p>An array of unique IDs of Cloud Load Balancer instances.<br>In certain scenarios, such as a delay in creation, this field may return null. At this point, you can query the created resource ID through the DescribeTaskStatus API using the RequestId or DealName parameter returned by the API.</p>
1679
+ * @type {Array.<string> || null}
1680
+ */
1681
+ this.LoadBalancerIds = null;
1682
+
1683
+ /**
1684
+ * <p>Order ID.</p>
1685
+ * @type {string || null}
1686
+ */
1687
+ this.DealName = null;
1688
+
1689
+ /**
1690
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
1691
+ * @type {string || null}
1692
+ */
1693
+ this.RequestId = null;
1694
+
1695
+ }
1696
+
1697
+ /**
1698
+ * @private
1699
+ */
1700
+ deserialize(params) {
1701
+ if (!params) {
1702
+ return;
1703
+ }
1704
+ this.LoadBalancerIds = 'LoadBalancerIds' in params ? params.LoadBalancerIds : null;
1705
+ this.DealName = 'DealName' in params ? params.DealName : null;
1706
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
1707
+
1708
+ }
1709
+ }
1710
+
1711
+ /**
1712
+ * Exclusive cluster information
1713
+ * @class
1714
+ */
1715
+ class ClusterItem extends AbstractModel {
1716
+ constructor(){
1717
+ super();
1718
+
1719
+ /**
1720
+ * Cluster unique ID.
1721
+ * @type {string || null}
1722
+ */
1723
+ this.ClusterId = null;
1724
+
1725
+ /**
1726
+ * Cluster name.
1727
+ * @type {string || null}
1728
+ */
1729
+ this.ClusterName = null;
1730
+
1731
+ /**
1732
+ * AZ of the cluster, such as ap-guangzhou-1
1733
+ Note: This field may return null, indicating that no valid values can be obtained.
1734
+ * @type {string || null}
1735
+ */
1736
+ this.Zone = null;
1737
+
1738
+ }
1739
+
1740
+ /**
1741
+ * @private
1742
+ */
1743
+ deserialize(params) {
1744
+ if (!params) {
1745
+ return;
1746
+ }
1747
+ this.ClusterId = 'ClusterId' in params ? params.ClusterId : null;
1748
+ this.ClusterName = 'ClusterName' in params ? params.ClusterName : null;
1749
+ this.Zone = 'Zone' in params ? params.Zone : null;
1750
+
1751
+ }
1752
+ }
1753
+
1754
+ /**
1755
+ * Binding relationship, including listener name, protocol, URL, and vport.
1756
+ * @class
1757
+ */
1758
+ class BindDetailItem extends AbstractModel {
1759
+ constructor(){
1760
+ super();
1761
+
1762
+ /**
1763
+ * ID of the CLB instance bound to the configuration
1764
+ * @type {string || null}
1765
+ */
1766
+ this.LoadBalancerId = null;
1767
+
1768
+ /**
1769
+ * ID of the listener bound to the configuration
1770
+ * @type {string || null}
1771
+ */
1772
+ this.ListenerId = null;
1773
+
1774
+ /**
1775
+ * Domain name bound to the configuration
1776
+ * @type {string || null}
1777
+ */
1778
+ this.Domain = null;
1779
+
1780
+ /**
1781
+ * Rule bound to the configuration
1782
+ * @type {string || null}
1783
+ */
1784
+ this.LocationId = null;
1785
+
1786
+ /**
1787
+ * Listener name
1788
+ Note: This field may return null, indicating that no valid values can be obtained.
1789
+ * @type {string || null}
1790
+ */
1791
+ this.ListenerName = null;
1792
+
1793
+ /**
1794
+ * Listener protocol
1795
+ Note: This field may return null, indicating that no valid values can be obtained.
1796
+ * @type {string || null}
1797
+ */
1798
+ this.Protocol = null;
1799
+
1800
+ /**
1801
+ * Listener port
1802
+ Note: This field may return null, indicating that no valid values can be obtained.
1803
+ * @type {number || null}
1804
+ */
1805
+ this.Vport = null;
1806
+
1807
+ /**
1808
+ * Location URL
1809
+ Note: This field may return null, indicating that no valid values can be obtained.
1810
+ * @type {string || null}
1811
+ */
1812
+ this.Url = null;
1813
+
1814
+ /**
1815
+ * Configuration ID
1816
+ * @type {string || null}
1817
+ */
1818
+ this.ConfigId = null;
1819
+
1820
+ }
1821
+
1822
+ /**
1823
+ * @private
1824
+ */
1825
+ deserialize(params) {
1826
+ if (!params) {
1827
+ return;
1828
+ }
1829
+ this.LoadBalancerId = 'LoadBalancerId' in params ? params.LoadBalancerId : null;
1830
+ this.ListenerId = 'ListenerId' in params ? params.ListenerId : null;
1831
+ this.Domain = 'Domain' in params ? params.Domain : null;
1832
+ this.LocationId = 'LocationId' in params ? params.LocationId : null;
1833
+ this.ListenerName = 'ListenerName' in params ? params.ListenerName : null;
1834
+ this.Protocol = 'Protocol' in params ? params.Protocol : null;
1835
+ this.Vport = 'Vport' in params ? params.Vport : null;
1836
+ this.Url = 'Url' in params ? params.Url : null;
1837
+ this.ConfigId = 'ConfigId' in params ? params.ConfigId : null;
1838
+
1839
+ }
1840
+ }
1841
+
1842
+ /**
1843
+ * SetCustomizedConfigForLoadBalancer response structure.
1844
+ * @class
1845
+ */
1846
+ class SetCustomizedConfigForLoadBalancerResponse extends AbstractModel {
1847
+ constructor(){
1848
+ super();
1849
+
1850
+ /**
1851
+ * Custom configuration ID, such as pz-1234abcd
1852
+ * @type {string || null}
1853
+ */
1854
+ this.ConfigId = null;
1855
+
1856
+ /**
1857
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
1858
+ * @type {string || null}
1859
+ */
1860
+ this.RequestId = null;
1861
+
1862
+ }
1863
+
1864
+ /**
1865
+ * @private
1866
+ */
1867
+ deserialize(params) {
1868
+ if (!params) {
1869
+ return;
1870
+ }
1871
+ this.ConfigId = 'ConfigId' in params ? params.ConfigId : null;
1872
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
1873
+
1874
+ }
1875
+ }
1876
+
1877
+ /**
1878
+ * Forward affinity info in availability zone
1879
+ * @class
1880
+ */
1881
+ class AvailableZoneAffinityInfo extends AbstractModel {
1882
+ constructor(){
1883
+ super();
1884
+
1885
+ /**
1886
+ * Whether to enable availability zone forwarding affinity. true: enable availability zone forwarding affinity; false: enable availability zone forwarding affinity.
1887
+ * @type {boolean || null}
1888
+ */
1889
+ this.Enable = null;
1890
+
1891
+ /**
1892
+ * The availability zone forwarding affinity failure threshold. When the healthy ratio of backend services in an availability zone is less than this threshold, the Cloud Load Balancer will exit availability zone forwarding affinity and convert to forwarding across all availability zones.
1893
+ Note: This field may return null, indicating that no valid values can be obtained.
1894
+ * @type {number || null}
1895
+ */
1896
+ this.ExitRatio = null;
1897
+
1898
+ /**
1899
+ * The threshold for re-enabling availability zone forwarding affinity. When forwarding is in all availability zones and the proportion of healthy backend services in the Cloud Load Balancer availability zone is greater than or equal to this threshold, the CLB will enter availability zone forwarding affinity again.
1900
+ Note: This field may return null, indicating that no valid values can be obtained.
1901
+ * @type {number || null}
1902
+ */
1903
+ this.ReentryRatio = null;
1904
+
1905
+ }
1906
+
1907
+ /**
1908
+ * @private
1909
+ */
1910
+ deserialize(params) {
1911
+ if (!params) {
1912
+ return;
1913
+ }
1914
+ this.Enable = 'Enable' in params ? params.Enable : null;
1915
+ this.ExitRatio = 'ExitRatio' in params ? params.ExitRatio : null;
1916
+ this.ReentryRatio = 'ReentryRatio' in params ? params.ReentryRatio : null;
1917
+
1918
+ }
1919
+ }
1920
+
1921
+ /**
1922
+ * Filter criteria
1923
+ * @class
1924
+ */
1925
+ class Filter extends AbstractModel {
1926
+ constructor(){
1927
+ super();
1928
+
1929
+ /**
1930
+ * Filter name
1931
+ * @type {string || null}
1932
+ */
1933
+ this.Name = null;
1934
+
1935
+ /**
1936
+ * Filter value array
1937
+ * @type {Array.<string> || null}
1938
+ */
1939
+ this.Values = null;
1940
+
1941
+ }
1942
+
1943
+ /**
1944
+ * @private
1945
+ */
1946
+ deserialize(params) {
1947
+ if (!params) {
1948
+ return;
1949
+ }
1950
+ this.Name = 'Name' in params ? params.Name : null;
1951
+ this.Values = 'Values' in params ? params.Values : null;
1952
+
1953
+ }
1954
+ }
1955
+
1956
+ /**
1957
+ * DescribeCustomizedConfigAssociateList request structure.
1958
+ * @class
1959
+ */
1960
+ class DescribeCustomizedConfigAssociateListRequest extends AbstractModel {
1961
+ constructor(){
1962
+ super();
1963
+
1964
+ /**
1965
+ * Configuration ID
1966
+ * @type {string || null}
1967
+ */
1968
+ this.ConfigId = null;
1969
+
1970
+ /**
1971
+ * Start position of the binding list. Default: 0.
1972
+ * @type {number || null}
1973
+ */
1974
+ this.Offset = null;
1975
+
1976
+ /**
1977
+ * Number of binding lists to pull. Default: 20.
1978
+ * @type {number || null}
1979
+ */
1980
+ this.Limit = null;
1981
+
1982
+ /**
1983
+ * search domain
1984
+ * @type {string || null}
1985
+ */
1986
+ this.Domain = null;
1987
+
1988
+ }
1989
+
1990
+ /**
1991
+ * @private
1992
+ */
1993
+ deserialize(params) {
1994
+ if (!params) {
1995
+ return;
1996
+ }
1997
+ this.ConfigId = 'ConfigId' in params ? params.ConfigId : null;
1998
+ this.Offset = 'Offset' in params ? params.Offset : null;
1999
+ this.Limit = 'Limit' in params ? params.Limit : null;
2000
+ this.Domain = 'Domain' in params ? params.Domain : null;
2001
+
2002
+ }
2003
+ }
2004
+
2005
+ /**
2006
+ * DescribeLoadBalancersDetail request structure.
2007
+ * @class
2008
+ */
2009
+ class DescribeLoadBalancersDetailRequest extends AbstractModel {
2010
+ constructor(){
2011
+ super();
2012
+
2013
+ /**
2014
+ * Return the number of Cloud Load Balancer (CLB) lists. Default is 20. Maximum value is 100.
2015
+ * @type {number || null}
2016
+ */
2017
+ this.Limit = null;
2018
+
2019
+ /**
2020
+ * Starting offset for returning the list of CLB instances, with a default value of 0.
2021
+ * @type {number || null}
2022
+ */
2023
+ this.Offset = null;
2024
+
2025
+ /**
2026
+ * Select the Fields list to return. The system will only return the Fields filled in Fields. For fillable field details, see <a href="https://www.tencentcloud.com/document/api/214/30694?from_cn_redirect=1#LoadBalancerDetail">LoadBalancerDetail</a>. If a related field is not in Fields, this field returns null. The LoadBalancerId and LoadBalancerName Fields are added by default in Fields.
2027
+ * @type {Array.<string> || null}
2028
+ */
2029
+ this.Fields = null;
2030
+
2031
+ /**
2032
+ * When the Fields include TargetId, TargetAddress, TargetPort, TargetWeight, ListenerId, Protocol, Port, LocationId, Domain, and Url, you must select exporting the Target of the target group or a non-target group. Valid values: NODE, GROUP.
2033
+ * @type {string || null}
2034
+ */
2035
+ this.TargetType = null;
2036
+
2037
+ /**
2038
+ * Query the detailed information list of Cloud Load Balancer. Detailed filter criteria:
2039
+ <li> loadbalancer-id - String - Required: No - (Filter condition) Filter by CLB ID, for example: "lb-12345678".</li>
2040
+ <li> project-id - String - Required: No - (Filter condition) Filter by project ID, for example: "0", "123".</li>
2041
+ <li>network - String - Required: No - (Filter condition) Filter by CLB network type, such as "Public" or "Private".</li>
2042
+ <li> vip - String - Required: No - (Filter condition) Filter by CLB vip, for example: "1.1.1.1", "2204::22:3".</li>
2043
+ <li> target-ip - String - Required: No - (Filtering Conditions) Filter by private ip of the target real server, such as "1.1.1.1", "2203::214:4".</li>
2044
+ <li> vpcid - String - Required: No - (Filter condition) Filter by the associated vpc ID of the Cloud Load Balancer (CLB), such as "vpc-12345678".</li>
2045
+ <li> zone - String - Required: No - (Filtering Conditions) Filter by the availability zone the load balancing belongs to, such as "ap-guangzhou-1".</li>
2046
+ <li>tag-key - String - required: no - (filter condition) filter by tag key of Cloud Load Balancer, such as "name".</li>
2047
+ <li> tag:* - String - Required: No - (Filter criteria) Filter by the tag of Cloud Load Balancer (CLB), where ':' is followed by the tag key. For example, to filter by tag key 'name' and tag values 'zhangsan' and 'lisi', use {"Name": "tag:name","Values": ["zhangsan", "lisi"]}.</li>
2048
+ <li>fuzzy-search - String - required: no - (filter condition) fuzzy search by CLB Vip and CLB name, for example: "1.1".</li>
2049
+ * @type {Array.<Filter> || null}
2050
+ */
2051
+ this.Filters = null;
2052
+
2053
+ }
2054
+
2055
+ /**
2056
+ * @private
2057
+ */
2058
+ deserialize(params) {
2059
+ if (!params) {
2060
+ return;
2061
+ }
2062
+ this.Limit = 'Limit' in params ? params.Limit : null;
2063
+ this.Offset = 'Offset' in params ? params.Offset : null;
2064
+ this.Fields = 'Fields' in params ? params.Fields : null;
2065
+ this.TargetType = 'TargetType' in params ? params.TargetType : null;
2066
+
2067
+ if (params.Filters) {
2068
+ this.Filters = new Array();
2069
+ for (let z in params.Filters) {
2070
+ let obj = new Filter();
2071
+ obj.deserialize(params.Filters[z]);
2072
+ this.Filters.push(obj);
2073
+ }
2074
+ }
2075
+
2076
+ }
2077
+ }
2078
+
2079
+ /**
2080
+ * CLB detailed information
2081
+ * @class
2082
+ */
2083
+ class LoadBalancerDetail extends AbstractModel {
2084
+ constructor(){
2085
+ super();
2086
+
2087
+ /**
2088
+ * CLB instance ID.
2089
+ * @type {string || null}
2090
+ */
2091
+ this.LoadBalancerId = null;
2092
+
2093
+ /**
2094
+ * CLB instance name.
2095
+ * @type {string || null}
2096
+ */
2097
+ this.LoadBalancerName = null;
2098
+
2099
+ /**
2100
+ * Network type of the CLB instance:
2101
+ OPEN: public network attribute, INTERNAL: private network attribute. For a Cloud Load Balancer with private network attribute, you can bind EIP for outbound public network access. For details, see the EIP document.
2102
+ Note: This field may return null, indicating that no valid values can be obtained.
2103
+ * @type {string || null}
2104
+ */
2105
+ this.LoadBalancerType = null;
2106
+
2107
+ /**
2108
+ * CLB instance state, including
2109
+ 0: creating, 1: normal operation.
2110
+ Note: This field may return null, indicating that no valid values can be obtained.
2111
+ * @type {number || null}
2112
+ */
2113
+ this.Status = null;
2114
+
2115
+ /**
2116
+ * VIP of the CLB instance.
2117
+ Note: This field may return null, indicating that no valid values can be obtained.
2118
+ * @type {string || null}
2119
+ */
2120
+ this.Address = null;
2121
+
2122
+ /**
2123
+ * IPv6 address of the VIP in the CLB instance.
2124
+ Note: This field may return null, indicating that no valid values can be obtained.
2125
+ * @type {string || null}
2126
+ */
2127
+ this.AddressIPv6 = null;
2128
+
2129
+ /**
2130
+ * IP version of the Cloud Load Balancer instance, IPv4 | IPv6.
2131
+ Note: This field may return null, indicating that no valid values can be obtained.
2132
+ * @type {string || null}
2133
+ */
2134
+ this.AddressIPVersion = null;
2135
+
2136
+ /**
2137
+ * IPv6 address type of the Cloud Load Balancer instance: IPv6Nat64 | IPv6FullChain.
2138
+ Note: This field may return null, indicating that no valid values can be obtained.
2139
+ * @type {string || null}
2140
+ */
2141
+ this.IPv6Mode = null;
2142
+
2143
+ /**
2144
+ * Availability Zone of the Cloud Load Balancer instance.
2145
+ Note: This field may return null, indicating that no valid values can be obtained.
2146
+ * @type {string || null}
2147
+ */
2148
+ this.Zone = null;
2149
+
2150
+ /**
2151
+ * The ISP to which the IP address of the CLB instance belongs. Value ranges from BGP (multi-line), CMCC (China Mobile), CUCC (China Unicom), CTCC (China Telecom) to INTERNAL (private network).
2152
+ Note: This field may return null, indicating that no valid values can be obtained.
2153
+ * @type {string || null}
2154
+ */
2155
+ this.AddressIsp = null;
2156
+
2157
+ /**
2158
+ * ID of the VPC that the CLB instance belongs to.
2159
+ Note: This field may return null, indicating that no valid values can be obtained.
2160
+ * @type {string || null}
2161
+ */
2162
+ this.VpcId = null;
2163
+
2164
+ /**
2165
+ * The ID of the project to which the CLB instance belongs. 0: Default project.
2166
+ Note: This field may return null, indicating that no valid values can be obtained.
2167
+ * @type {number || null}
2168
+ */
2169
+ this.ProjectId = null;
2170
+
2171
+ /**
2172
+ * CLB instance creation time
2173
+ Note: This field may return null, indicating that no valid values can be obtained.
2174
+ * @type {string || null}
2175
+ */
2176
+ this.CreateTime = null;
2177
+
2178
+ /**
2179
+ * Billing type of the CLB instance. Valid values: PREPAID and POSTPAID_BY_HOUR (pay-as-you-go).
2180
+ Note: This field may return null, indicating that no valid values can be obtained.
2181
+ * @type {string || null}
2182
+ */
2183
+ this.ChargeType = null;
2184
+
2185
+ /**
2186
+ * Network properties of the CLB instance.
2187
+ Note: This field may return null, indicating that no valid values can be obtained.
2188
+ * @type {InternetAccessible || null}
2189
+ */
2190
+ this.NetworkAttributes = null;
2191
+
2192
+ /**
2193
+ * Prepaid billing attributes of the Cloud Load Balancer instance.
2194
+ Note: This field may return null, indicating that no valid values can be obtained.
2195
+ * @type {LBChargePrepaid || null}
2196
+ */
2197
+ this.PrepaidAttributes = null;
2198
+
2199
+ /**
2200
+ * Reserved. Generally unnecessary for users to concern.
2201
+ Note: This field may return null, indicating that no valid values can be obtained.
2202
+ * @type {ExtraInfo || null}
2203
+ */
2204
+ this.ExtraInfo = null;
2205
+
2206
+ /**
2207
+ * Personalized configuration ID of the Cloud Load Balancer (CLB) dimension. Multiple configurations are separated by commas.
2208
+ Note: This field may return null, indicating that no valid values can be obtained.
2209
+ * @type {string || null}
2210
+ */
2211
+ this.ConfigId = null;
2212
+
2213
+ /**
2214
+ * Tag information of the GWLB instance.
2215
+ Note: This field may return null, indicating that no valid values can be obtained.
2216
+ * @type {Array.<TagInfo> || null}
2217
+ */
2218
+ this.Tags = null;
2219
+
2220
+ /**
2221
+ * CLB listener ID.
2222
+ Note: This field may return null, indicating that no valid values can be obtained.
2223
+ * @type {string || null}
2224
+ */
2225
+ this.ListenerId = null;
2226
+
2227
+ /**
2228
+ * Listener protocol.
2229
+ Note: This field may return null, indicating that no valid values can be obtained.
2230
+ * @type {string || null}
2231
+ */
2232
+ this.Protocol = null;
2233
+
2234
+ /**
2235
+ * Listener port.
2236
+ Note: This field may return null, indicating that no valid values can be obtained.
2237
+ * @type {number || null}
2238
+ */
2239
+ this.Port = null;
2240
+
2241
+ /**
2242
+ * Forwarding rule ID.
2243
+ Note: This field may return null, indicating that no valid values can be obtained.
2244
+ * @type {string || null}
2245
+ */
2246
+ this.LocationId = null;
2247
+
2248
+ /**
2249
+ * Domain name of the forwarding rule
2250
+ Note: This field may return null, indicating that no valid values can be obtained.
2251
+ * @type {string || null}
2252
+ */
2253
+ this.Domain = null;
2254
+
2255
+ /**
2256
+ * Path of forwarding rules.
2257
+ Note: This field may return null, indicating that no valid values can be obtained.
2258
+ * @type {string || null}
2259
+ */
2260
+ this.Url = null;
2261
+
2262
+ /**
2263
+ * Backend target ID.
2264
+ Note: This field may return null, indicating that no valid values can be obtained.
2265
+ * @type {string || null}
2266
+ */
2267
+ this.TargetId = null;
2268
+
2269
+ /**
2270
+ * Backend target IP address.
2271
+ Note: This field may return null, indicating that no valid values can be obtained.
2272
+ * @type {string || null}
2273
+ */
2274
+ this.TargetAddress = null;
2275
+
2276
+ /**
2277
+ * Backend target listening port.
2278
+ Note: This field may return null, indicating that no valid values can be obtained.
2279
+ * @type {number || null}
2280
+ */
2281
+ this.TargetPort = null;
2282
+
2283
+ /**
2284
+ * Backend target forwarding weight.
2285
+ Note: This field may return null, indicating that no valid values can be obtained.
2286
+ * @type {number || null}
2287
+ */
2288
+ this.TargetWeight = null;
2289
+
2290
+ /**
2291
+ * 0: Not isolated; 1: Isolated.
2292
+ Note: This field may return null, indicating that no valid values can be obtained.
2293
+ * @type {number || null}
2294
+ */
2295
+ this.Isolation = null;
2296
+
2297
+ /**
2298
+ * List of security groups bound to Cloud Load Balancer (CLB).
2299
+ Note: This field may return null, indicating that no valid values can be obtained.
2300
+ * @type {Array.<string> || null}
2301
+ */
2302
+ this.SecurityGroup = null;
2303
+
2304
+ /**
2305
+ * Valid values: 1 (enabled), 0 (not enabled). Value ranges from 1 to 0.
2306
+ Note: This field may return null, indicating that no valid values can be obtained.
2307
+ * @type {number || null}
2308
+ */
2309
+ this.LoadBalancerPassToTarget = null;
2310
+
2311
+ /**
2312
+ * Backend target health status.
2313
+ Note: This field may return null, indicating that no valid values can be obtained.
2314
+ * @type {string || null}
2315
+ */
2316
+ this.TargetHealth = null;
2317
+
2318
+ /**
2319
+ * Domain name list of the forwarding rule.
2320
+ Note: This field may return null, indicating that no valid values can be obtained.
2321
+ * @type {string || null}
2322
+ */
2323
+ this.Domains = null;
2324
+
2325
+ /**
2326
+ * Multi-availability zone Cloud Load Balancer instance selected backup availability zone
2327
+ Note: This field may return null, indicating that no valid values can be obtained.
2328
+ * @type {Array.<string> || null}
2329
+ */
2330
+ this.SlaveZone = null;
2331
+
2332
+ /**
2333
+ * The availability zone of the private network CLB instance is controlled by the allowlist CLB_Internal_Zone.
2334
+ Note: This field may return null, indicating that no valid values can be obtained.
2335
+ * @type {Array.<string> || null}
2336
+ */
2337
+ this.Zones = null;
2338
+
2339
+ /**
2340
+ * Whether to enable the SNI feature. 1: enable; 0: disable (this parameter is applicable only to HTTPS listeners).
2341
+ Note: This field may return null, indicating that no valid values can be obtained.
2342
+ * @type {number || null}
2343
+ */
2344
+ this.SniSwitch = null;
2345
+
2346
+ /**
2347
+ * Domain name of the CLB instance.
2348
+ * @type {string || null}
2349
+ */
2350
+ this.LoadBalancerDomain = null;
2351
+
2352
+ /**
2353
+ * Network outbound
2354
+ * @type {string || null}
2355
+ */
2356
+ this.Egress = null;
2357
+
2358
+ /**
2359
+ * Attributes of Cloud Load Balancer
2360
+ * @type {Array.<string> || null}
2361
+ */
2362
+ this.AttributeFlags = null;
2363
+
2364
+ /**
2365
+ * Specification type information of Cloud Load Balancer instance<ul><li> clb.c1.small: Minimalist specification </li><li>clb.c2.medium: Standard specification </li><li> clb.c3.small: Advanced type 1 specification </li><li> clb.c3.medium: Advanced type 2 specification </li><li> clb.c4.small: Super type 1 specification </li><li> clb.c4.medium: Super type 2 specification </li><li> clb.c4.large: Super type 3 specification </li><li> clb.c4.xlarge: Super type 4 specification </li><li>\"\": Non-LCU-supported instance</li></ul>
2366
+ Note: This field may return null, indicating that no valid values can be obtained.
2367
+ * @type {string || null}
2368
+ */
2369
+ this.SlaType = null;
2370
+
2371
+ /**
2372
+ * 0: Non-exclusive type instance; 1: Exclusive type instance.
2373
+ Note: This field may return null, indicating that no valid values can be obtained.
2374
+ * @type {number || null}
2375
+ */
2376
+ this.Exclusive = null;
2377
+
2378
+ /**
2379
+ * Availability zone forward affinity info
2380
+ Note: This field may return null, indicating that no valid values can be obtained.
2381
+ * @type {AvailableZoneAffinityInfo || null}
2382
+ */
2383
+ this.AvailableZoneAffinityInfo = null;
2384
+
2385
+ }
2386
+
2387
+ /**
2388
+ * @private
2389
+ */
2390
+ deserialize(params) {
2391
+ if (!params) {
2392
+ return;
2393
+ }
2394
+ this.LoadBalancerId = 'LoadBalancerId' in params ? params.LoadBalancerId : null;
2395
+ this.LoadBalancerName = 'LoadBalancerName' in params ? params.LoadBalancerName : null;
2396
+ this.LoadBalancerType = 'LoadBalancerType' in params ? params.LoadBalancerType : null;
2397
+ this.Status = 'Status' in params ? params.Status : null;
2398
+ this.Address = 'Address' in params ? params.Address : null;
2399
+ this.AddressIPv6 = 'AddressIPv6' in params ? params.AddressIPv6 : null;
2400
+ this.AddressIPVersion = 'AddressIPVersion' in params ? params.AddressIPVersion : null;
2401
+ this.IPv6Mode = 'IPv6Mode' in params ? params.IPv6Mode : null;
2402
+ this.Zone = 'Zone' in params ? params.Zone : null;
2403
+ this.AddressIsp = 'AddressIsp' in params ? params.AddressIsp : null;
2404
+ this.VpcId = 'VpcId' in params ? params.VpcId : null;
2405
+ this.ProjectId = 'ProjectId' in params ? params.ProjectId : null;
2406
+ this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
2407
+ this.ChargeType = 'ChargeType' in params ? params.ChargeType : null;
2408
+
2409
+ if (params.NetworkAttributes) {
2410
+ let obj = new InternetAccessible();
2411
+ obj.deserialize(params.NetworkAttributes)
2412
+ this.NetworkAttributes = obj;
2413
+ }
2414
+
2415
+ if (params.PrepaidAttributes) {
2416
+ let obj = new LBChargePrepaid();
2417
+ obj.deserialize(params.PrepaidAttributes)
2418
+ this.PrepaidAttributes = obj;
2419
+ }
2420
+
2421
+ if (params.ExtraInfo) {
2422
+ let obj = new ExtraInfo();
2423
+ obj.deserialize(params.ExtraInfo)
2424
+ this.ExtraInfo = obj;
2425
+ }
2426
+ this.ConfigId = 'ConfigId' in params ? params.ConfigId : null;
2427
+
2428
+ if (params.Tags) {
2429
+ this.Tags = new Array();
2430
+ for (let z in params.Tags) {
2431
+ let obj = new TagInfo();
2432
+ obj.deserialize(params.Tags[z]);
2433
+ this.Tags.push(obj);
2434
+ }
2435
+ }
2436
+ this.ListenerId = 'ListenerId' in params ? params.ListenerId : null;
2437
+ this.Protocol = 'Protocol' in params ? params.Protocol : null;
2438
+ this.Port = 'Port' in params ? params.Port : null;
2439
+ this.LocationId = 'LocationId' in params ? params.LocationId : null;
2440
+ this.Domain = 'Domain' in params ? params.Domain : null;
2441
+ this.Url = 'Url' in params ? params.Url : null;
2442
+ this.TargetId = 'TargetId' in params ? params.TargetId : null;
2443
+ this.TargetAddress = 'TargetAddress' in params ? params.TargetAddress : null;
2444
+ this.TargetPort = 'TargetPort' in params ? params.TargetPort : null;
2445
+ this.TargetWeight = 'TargetWeight' in params ? params.TargetWeight : null;
2446
+ this.Isolation = 'Isolation' in params ? params.Isolation : null;
2447
+ this.SecurityGroup = 'SecurityGroup' in params ? params.SecurityGroup : null;
2448
+ this.LoadBalancerPassToTarget = 'LoadBalancerPassToTarget' in params ? params.LoadBalancerPassToTarget : null;
2449
+ this.TargetHealth = 'TargetHealth' in params ? params.TargetHealth : null;
2450
+ this.Domains = 'Domains' in params ? params.Domains : null;
2451
+ this.SlaveZone = 'SlaveZone' in params ? params.SlaveZone : null;
2452
+ this.Zones = 'Zones' in params ? params.Zones : null;
2453
+ this.SniSwitch = 'SniSwitch' in params ? params.SniSwitch : null;
2454
+ this.LoadBalancerDomain = 'LoadBalancerDomain' in params ? params.LoadBalancerDomain : null;
2455
+ this.Egress = 'Egress' in params ? params.Egress : null;
2456
+ this.AttributeFlags = 'AttributeFlags' in params ? params.AttributeFlags : null;
2457
+ this.SlaType = 'SlaType' in params ? params.SlaType : null;
2458
+ this.Exclusive = 'Exclusive' in params ? params.Exclusive : null;
2459
+
2460
+ if (params.AvailableZoneAffinityInfo) {
2461
+ let obj = new AvailableZoneAffinityInfo();
2462
+ obj.deserialize(params.AvailableZoneAffinityInfo)
2463
+ this.AvailableZoneAffinityInfo = obj;
2464
+ }
2465
+
2466
+ }
2467
+ }
2468
+
2469
+ /**
2470
+ * DescribeLoadBalancers request structure.
2471
+ * @class
2472
+ */
2473
+ class DescribeLoadBalancersRequest extends AbstractModel {
2474
+ constructor(){
2475
+ super();
2476
+
2477
+ /**
2478
+ * CLB instance ID. There can be up to 20 IDs.
2479
+ * @type {Array.<string> || null}
2480
+ */
2481
+ this.LoadBalancerIds = null;
2482
+
2483
+ /**
2484
+ * Network type of the CLB instance:
2485
+ OPEN: Public network attribute. INTERNAL: Private network attribute.
2486
+ * @type {string || null}
2487
+ */
2488
+ this.LoadBalancerType = null;
2489
+
2490
+ /**
2491
+ * CLB instance type. 1: General CLB instance; 0: Classic CLB instance. If this parameter is not specified, all types of CLB instances will be queried.
2492
+ * @type {number || null}
2493
+ */
2494
+ this.Forward = null;
2495
+
2496
+ /**
2497
+ * CLB instance name.
2498
+ * @type {string || null}
2499
+ */
2500
+ this.LoadBalancerName = null;
2501
+
2502
+ /**
2503
+ * Domain name assigned for a CLB instance by the cloud platform.
2504
+ * @type {string || null}
2505
+ */
2506
+ this.Domain = null;
2507
+
2508
+ /**
2509
+ * VIP address of a CLB instance (there can be multiple addresses).
2510
+ * @type {Array.<string> || null}
2511
+ */
2512
+ this.LoadBalancerVips = null;
2513
+
2514
+ /**
2515
+ * The public network IP of the backend service bound to Cloud Load Balancer (CLB) only supports querying the public IP of Cloud Virtual Machine (CVM).
2516
+ * @type {Array.<string> || null}
2517
+ */
2518
+ this.BackendPublicIps = null;
2519
+
2520
+ /**
2521
+ * The private network IP of the backend service bound to Cloud Load Balancer (CLB) only supports querying the private IP address of Cloud Virtual Machine (CVM).
2522
+ * @type {Array.<string> || null}
2523
+ */
2524
+ this.BackendPrivateIps = null;
2525
+
2526
+ /**
2527
+ * Data offset. Default: 0.
2528
+ * @type {number || null}
2529
+ */
2530
+ this.Offset = null;
2531
+
2532
+ /**
2533
+ * Number of CLB instances returned. Default: 20. Maximum: 100.
2534
+ * @type {number || null}
2535
+ */
2536
+ this.Limit = null;
2537
+
2538
+ /**
2539
+ * A sorting parameter. Valid values: LoadBalancerName, CreateTime, Domain, and LoadBalancerType.
2540
+ * @type {string || null}
2541
+ */
2542
+ this.OrderBy = null;
2543
+
2544
+ /**
2545
+ * 1: Reverse; 0: Sequential. Default: reverse by creation time
2546
+ * @type {number || null}
2547
+ */
2548
+ this.OrderType = null;
2549
+
2550
+ /**
2551
+ * Search field, supporting fuzzy match by name, domain, and VIP.
2552
+ * @type {string || null}
2553
+ */
2554
+ this.SearchKey = null;
2555
+
2556
+ /**
2557
+ * The ID of the project to which the CLB instance belongs. This parameter can be obtained through the DescribeProject API.
2558
+ * @type {number || null}
2559
+ */
2560
+ this.ProjectId = null;
2561
+
2562
+ /**
2563
+ * Whether CLB is bound to a real server. 0: No; 1: Yes; -1: Query all.
2564
+ * @type {number || null}
2565
+ */
2566
+ this.WithRs = null;
2567
+
2568
+ /**
2569
+ * Unique VPC ID of the CLB instance, such as vpc-bhqkbhdx
2570
+ Basic network allows input '0'.
2571
+ * @type {string || null}
2572
+ */
2573
+ this.VpcId = null;
2574
+
2575
+ /**
2576
+ * Security group ID, for example sg-m1cc****.
2577
+ * @type {string || null}
2578
+ */
2579
+ this.SecurityGroup = null;
2580
+
2581
+ /**
2582
+ * Primary availability zone ID, such as 100001 (corresponding to Guangzhou Zone 1). You can obtain the list of availability zones through [DescribeZones](https://www.tencentcloud.com/document/product/213/15707?from_cn_redirect=1).
2583
+ * @type {string || null}
2584
+ */
2585
+ this.MasterZone = null;
2586
+
2587
+ /**
2588
+ * Each request can have up to 10 `Filters` values and 100 `Filter.Values` values.<br/>`Filter.Name` and `Filter.Values` are required items. The detailed filter criteria are as follows:
2589
+ <li> charge-type - String - Required: No - (Filter condition) Filter by the CLB instance billing mode, including "PREPAID", "POSTPAID_BY_HOUR".</li>
2590
+ <li> internet-charge-type - String - Required: No - (Filter condition) Filter by CLB network billing mode, including "BANDWIDTH_PREPAID", "TRAFFIC_POSTPAID_BY_HOUR", "BANDWIDTH_POSTPAID_BY_HOUR", "BANDWIDTH_PACKAGE".</li>
2591
+ <li> master-zone-id - String - Required: No - (Filter condition) Filter by primary AZ ID of CLB, such as "100001" (corresponding to Guangzhou Zone 1).</li>
2592
+ <li>tag-key - String - required: no - (filter condition) filter by CLB tag key.</li>
2593
+ <li>tag:tag-key - String - Required: no - (Filter condition) Filter by CLB Tag key-value pair. Replace tag-key with a specific tag key.</li>
2594
+ <li> function-name - String - Required: No - (Filter condition) Filter by the function name of the Serverless Cloud Function (SCF) bound to the CLB backend.</li>
2595
+ <li> vip-isp - String - Required: No - (Filter condition) Filter by operator type of CLB VIP, such as "BGP", "INTERNAL", "CMCC", "CTCC", "CUCC".</li>
2596
+ <li>sla-type - String - required: no - (filter condition) filter by CLB performance capacity specification, including "clb.c2.medium", "clb.c3.small", "clb.c3.medium", "clb.c4.small", "clb.c4.medium", "clb.c4.large", "clb.c4.xlarge".</li>
2597
+ * @type {Array.<Filter> || null}
2598
+ */
2599
+ this.Filters = null;
2600
+
2601
+ /**
2602
+ * Select the expansion fields to return. If not specified, expansion fields are not returned by default. The supported expansion fields are as follows:
2603
+ <li> TargetCount: Number of real servers bound to it</li>
2604
+ * @type {Array.<string> || null}
2605
+ */
2606
+ this.AdditionalFields = null;
2607
+
2608
+ }
2609
+
2610
+ /**
2611
+ * @private
2612
+ */
2613
+ deserialize(params) {
2614
+ if (!params) {
2615
+ return;
2616
+ }
2617
+ this.LoadBalancerIds = 'LoadBalancerIds' in params ? params.LoadBalancerIds : null;
2618
+ this.LoadBalancerType = 'LoadBalancerType' in params ? params.LoadBalancerType : null;
2619
+ this.Forward = 'Forward' in params ? params.Forward : null;
2620
+ this.LoadBalancerName = 'LoadBalancerName' in params ? params.LoadBalancerName : null;
2621
+ this.Domain = 'Domain' in params ? params.Domain : null;
2622
+ this.LoadBalancerVips = 'LoadBalancerVips' in params ? params.LoadBalancerVips : null;
2623
+ this.BackendPublicIps = 'BackendPublicIps' in params ? params.BackendPublicIps : null;
2624
+ this.BackendPrivateIps = 'BackendPrivateIps' in params ? params.BackendPrivateIps : null;
2625
+ this.Offset = 'Offset' in params ? params.Offset : null;
2626
+ this.Limit = 'Limit' in params ? params.Limit : null;
2627
+ this.OrderBy = 'OrderBy' in params ? params.OrderBy : null;
2628
+ this.OrderType = 'OrderType' in params ? params.OrderType : null;
2629
+ this.SearchKey = 'SearchKey' in params ? params.SearchKey : null;
2630
+ this.ProjectId = 'ProjectId' in params ? params.ProjectId : null;
2631
+ this.WithRs = 'WithRs' in params ? params.WithRs : null;
2632
+ this.VpcId = 'VpcId' in params ? params.VpcId : null;
2633
+ this.SecurityGroup = 'SecurityGroup' in params ? params.SecurityGroup : null;
2634
+ this.MasterZone = 'MasterZone' in params ? params.MasterZone : null;
2635
+
2636
+ if (params.Filters) {
2637
+ this.Filters = new Array();
2638
+ for (let z in params.Filters) {
2639
+ let obj = new Filter();
2640
+ obj.deserialize(params.Filters[z]);
2641
+ this.Filters.push(obj);
2642
+ }
2643
+ }
2644
+ this.AdditionalFields = 'AdditionalFields' in params ? params.AdditionalFields : null;
2645
+
2646
+ }
2647
+ }
2648
+
2649
+ /**
2650
+ * DescribeLoadBalancers response structure.
2651
+ * @class
2652
+ */
2653
+ class DescribeLoadBalancersResponse extends AbstractModel {
2654
+ constructor(){
2655
+ super();
2656
+
2657
+ /**
2658
+ * Total number of CLB instances that meet the filter criteria. This value is independent of the Limit in the input parameters.
2659
+ * @type {number || null}
2660
+ */
2661
+ this.TotalCount = null;
2662
+
2663
+ /**
2664
+ * Returned CLB instance array.
2665
+ * @type {Array.<LoadBalancer> || null}
2666
+ */
2667
+ this.LoadBalancerSet = null;
2668
+
2669
+ /**
2670
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
2671
+ * @type {string || null}
2672
+ */
2673
+ this.RequestId = null;
2674
+
2675
+ }
2676
+
2677
+ /**
2678
+ * @private
2679
+ */
2680
+ deserialize(params) {
2681
+ if (!params) {
2682
+ return;
2683
+ }
2684
+ this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
2685
+
2686
+ if (params.LoadBalancerSet) {
2687
+ this.LoadBalancerSet = new Array();
2688
+ for (let z in params.LoadBalancerSet) {
2689
+ let obj = new LoadBalancer();
2690
+ obj.deserialize(params.LoadBalancerSet[z]);
2691
+ this.LoadBalancerSet.push(obj);
2692
+ }
2693
+ }
2694
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
2695
+
2696
+ }
2697
+ }
2698
+
2699
+ /**
2700
+ * AZ information
2701
+ * @class
2702
+ */
2703
+ class ZoneInfo extends AbstractModel {
2704
+ constructor(){
2705
+ super();
2706
+
2707
+ /**
2708
+ * Unique ID of the AZ in numeric form, such as 100001
2709
+ * @type {number || null}
2710
+ */
2711
+ this.ZoneId = null;
2712
+
2713
+ /**
2714
+ * Unique ID of the AZ in string format, such as ap-guangzhou-1
2715
+ * @type {string || null}
2716
+ */
2717
+ this.Zone = null;
2718
+
2719
+ /**
2720
+ * AZ name, such as Guangzhou 1
2721
+ * @type {string || null}
2722
+ */
2723
+ this.ZoneName = null;
2724
+
2725
+ /**
2726
+ * Region of the availability zone, such as ap-guangzhou.
2727
+ * @type {string || null}
2728
+ */
2729
+ this.ZoneRegion = null;
2730
+
2731
+ /**
2732
+ * Whether the availability zone is a local availability zone. For example, false.
2733
+ * @type {boolean || null}
2734
+ */
2735
+ this.LocalZone = null;
2736
+
2737
+ /**
2738
+ * Whether the availability zone is an edge availability zone. For example, false.
2739
+ * @type {boolean || null}
2740
+ */
2741
+ this.EdgeZone = null;
2742
+
2743
+ }
2744
+
2745
+ /**
2746
+ * @private
2747
+ */
2748
+ deserialize(params) {
2749
+ if (!params) {
2750
+ return;
2751
+ }
2752
+ this.ZoneId = 'ZoneId' in params ? params.ZoneId : null;
2753
+ this.Zone = 'Zone' in params ? params.Zone : null;
2754
+ this.ZoneName = 'ZoneName' in params ? params.ZoneName : null;
2755
+ this.ZoneRegion = 'ZoneRegion' in params ? params.ZoneRegion : null;
2756
+ this.LocalZone = 'LocalZone' in params ? params.LocalZone : null;
2757
+ this.EdgeZone = 'EdgeZone' in params ? params.EdgeZone : null;
2758
+
2759
+ }
2760
+ }
2761
+
2762
+ /**
2763
+ * Exclusive cluster
2764
+ * @class
2765
+ */
2766
+ class ExclusiveCluster extends AbstractModel {
2767
+ constructor(){
2768
+ super();
2769
+
2770
+ /**
2771
+ * Layer-4 exclusive cluster list
2772
+ Note: This field may return null, indicating that no valid values can be obtained.
2773
+ * @type {Array.<ClusterItem> || null}
2774
+ */
2775
+ this.L4Clusters = null;
2776
+
2777
+ /**
2778
+ * Layer-7 exclusive cluster list
2779
+ Note: This field may return null, indicating that no valid values can be obtained.
2780
+ * @type {Array.<ClusterItem> || null}
2781
+ */
2782
+ this.L7Clusters = null;
2783
+
2784
+ /**
2785
+ * VPCGW cluster
2786
+ Note: This field may return null, indicating that no valid values can be obtained.
2787
+ * @type {ClusterItem || null}
2788
+ */
2789
+ this.ClassicalCluster = null;
2790
+
2791
+ }
2792
+
2793
+ /**
2794
+ * @private
2795
+ */
2796
+ deserialize(params) {
2797
+ if (!params) {
2798
+ return;
2799
+ }
2800
+
2801
+ if (params.L4Clusters) {
2802
+ this.L4Clusters = new Array();
2803
+ for (let z in params.L4Clusters) {
2804
+ let obj = new ClusterItem();
2805
+ obj.deserialize(params.L4Clusters[z]);
2806
+ this.L4Clusters.push(obj);
2807
+ }
2808
+ }
2809
+
2810
+ if (params.L7Clusters) {
2811
+ this.L7Clusters = new Array();
2812
+ for (let z in params.L7Clusters) {
2813
+ let obj = new ClusterItem();
2814
+ obj.deserialize(params.L7Clusters[z]);
2815
+ this.L7Clusters.push(obj);
2816
+ }
2817
+ }
2818
+
2819
+ if (params.ClassicalCluster) {
2820
+ let obj = new ClusterItem();
2821
+ obj.deserialize(params.ClassicalCluster)
2822
+ this.ClassicalCluster = obj;
2823
+ }
2824
+
2825
+ }
2826
+ }
2827
+
2828
+ /**
2829
+ * Network billing mode, maximum outbound bandwidth
2830
+ * @class
2831
+ */
2832
+ class InternetAccessible extends AbstractModel {
2833
+ constructor(){
2834
+ super();
2835
+
2836
+ /**
2837
+ * TRAFFIC_POSTPAID_BY_HOUR: postpaid by traffic on an hourly basis;
2838
+ * @type {string || null}
2839
+ */
2840
+ this.InternetChargeType = null;
2841
+
2842
+ /**
2843
+ * Maximum outbound bandwidth in Mbps. It applies only to shared, LCU-supported, and exclusive CLB instances of the public network type and LCU-supported CLB instances of the private network type.
2844
+ -For shared type and exclusive CLB instances with public network attributes, the maximum outbound bandwidth ranges from 1Mbps to 2048Mbps.
2845
+ -For LCU-supported CLB instances with public network attributes and private network attributes, the maximum outbound bandwidth ranges from 1Mbps to 61440Mbps.
2846
+ (If this parameter is not specified when CreateLoadBalancer is called to create a CLB instance, the default value of 10 Mbps is used. This value can be modified.)
2847
+ * @type {number || null}
2848
+ */
2849
+ this.InternetMaxBandwidthOut = null;
2850
+
2851
+ /**
2852
+ * Bandwidth package type, such as SINGLEISP (single ISP) and BGP (multi ISP).
2853
+ Note: This field may return null, indicating that no valid values can be obtained.
2854
+ * @type {string || null}
2855
+ */
2856
+ this.BandwidthPackageSubType = null;
2857
+
2858
+ }
2859
+
2860
+ /**
2861
+ * @private
2862
+ */
2863
+ deserialize(params) {
2864
+ if (!params) {
2865
+ return;
2866
+ }
2867
+ this.InternetChargeType = 'InternetChargeType' in params ? params.InternetChargeType : null;
2868
+ this.InternetMaxBandwidthOut = 'InternetMaxBandwidthOut' in params ? params.InternetMaxBandwidthOut : null;
2869
+ this.BandwidthPackageSubType = 'BandwidthPackageSubType' in params ? params.BandwidthPackageSubType : null;
2870
+
2871
+ }
2872
+ }
2873
+
2874
+ /**
2875
+ * DescribeClassicalLBListeners request structure.
2876
+ * @class
2877
+ */
2878
+ class DescribeClassicalLBListenersRequest extends AbstractModel {
2879
+ constructor(){
2880
+ super();
2881
+
2882
+ /**
2883
+ * CLB instance ID.
2884
+ * @type {string || null}
2885
+ */
2886
+ this.LoadBalancerId = null;
2887
+
2888
+ /**
2889
+ * CLB listener ID list.
2890
+ * @type {Array.<string> || null}
2891
+ */
2892
+ this.ListenerIds = null;
2893
+
2894
+ /**
2895
+ * Protocols for Cloud Load Balancer listeners: 'TCP', 'UDP', 'HTTP', 'HTTPS'.
2896
+ * @type {string || null}
2897
+ */
2898
+ this.Protocol = null;
2899
+
2900
+ /**
2901
+ * CLB listening port, range [1-65535].
2902
+ * @type {number || null}
2903
+ */
2904
+ this.ListenerPort = null;
2905
+
2906
+ /**
2907
+ * Listener status. 0: Creating; 1: Running.
2908
+ * @type {number || null}
2909
+ */
2910
+ this.Status = null;
2911
+
2912
+ }
2913
+
2914
+ /**
2915
+ * @private
2916
+ */
2917
+ deserialize(params) {
2918
+ if (!params) {
2919
+ return;
2920
+ }
2921
+ this.LoadBalancerId = 'LoadBalancerId' in params ? params.LoadBalancerId : null;
2922
+ this.ListenerIds = 'ListenerIds' in params ? params.ListenerIds : null;
2923
+ this.Protocol = 'Protocol' in params ? params.Protocol : null;
2924
+ this.ListenerPort = 'ListenerPort' in params ? params.ListenerPort : null;
2925
+ this.Status = 'Status' in params ? params.Status : null;
2926
+
2927
+ }
2928
+ }
2929
+
2930
+ /**
2931
+ * Describes the health information of a target
2932
+ * @class
2933
+ */
2934
+ class TargetHealth extends AbstractModel {
2935
+ constructor(){
2936
+ super();
2937
+
2938
+ /**
2939
+ * Private network IP of target
2940
+ * @type {string || null}
2941
+ */
2942
+ this.IP = null;
2943
+
2944
+ /**
2945
+ * Port bound to the target
2946
+ * @type {number || null}
2947
+ */
2948
+ this.Port = null;
2949
+
2950
+ /**
2951
+ * Detailed information of the current health status. For example: Alive, Dead, Unknown, Close. Alive status is healthy, Dead state is abnormal, Unknown status includes not started, checking, unknown status, Close means health check disabled or listener status stop.
2952
+ * @type {boolean || null}
2953
+ */
2954
+ this.HealthStatus = null;
2955
+
2956
+ /**
2957
+ * Target instance ID, such as ins-12345678
2958
+ * @type {string || null}
2959
+ */
2960
+ this.TargetId = null;
2961
+
2962
+ /**
2963
+ * Detailed information about the current health status. Alive: Healthy; Dead: Exceptional; Unknown: Check not started/Checking/Unknown status.
2964
+ * @type {string || null}
2965
+ */
2966
+ this.HealthStatusDetail = null;
2967
+
2968
+ /**
2969
+ * Target group unique ID.
2970
+ * @type {string || null}
2971
+ */
2972
+ this.TargetGroupId = null;
2973
+
2974
+ /**
2975
+ * Weight of the Target
2976
+ * @type {number || null}
2977
+ */
2978
+ this.Weight = null;
2979
+
2980
+ }
2981
+
2982
+ /**
2983
+ * @private
2984
+ */
2985
+ deserialize(params) {
2986
+ if (!params) {
2987
+ return;
2988
+ }
2989
+ this.IP = 'IP' in params ? params.IP : null;
2990
+ this.Port = 'Port' in params ? params.Port : null;
2991
+ this.HealthStatus = 'HealthStatus' in params ? params.HealthStatus : null;
2992
+ this.TargetId = 'TargetId' in params ? params.TargetId : null;
2993
+ this.HealthStatusDetail = 'HealthStatusDetail' in params ? params.HealthStatusDetail : null;
2994
+ this.TargetGroupId = 'TargetGroupId' in params ? params.TargetGroupId : null;
2995
+ this.Weight = 'Weight' in params ? params.Weight : null;
2996
+
2997
+ }
2998
+ }
2999
+
3000
+ /**
3001
+ * Health check information of the listener
3002
+ * @class
3003
+ */
3004
+ class ListenerHealth extends AbstractModel {
3005
+ constructor(){
3006
+ super();
3007
+
3008
+ /**
3009
+ * Listener ID
3010
+ * @type {string || null}
3011
+ */
3012
+ this.ListenerId = null;
3013
+
3014
+ /**
3015
+ * listener name
3016
+ * @type {string || null}
3017
+ */
3018
+ this.ListenerName = null;
3019
+
3020
+ /**
3021
+ * Listener protocol
3022
+ * @type {string || null}
3023
+ */
3024
+ this.Protocol = null;
3025
+
3026
+ /**
3027
+ * Listener port
3028
+ * @type {number || null}
3029
+ */
3030
+ this.Port = null;
3031
+
3032
+ /**
3033
+ * List of forwarding rules of the listener
3034
+ * @type {Array.<RuleHealth> || null}
3035
+ */
3036
+ this.Rules = null;
3037
+
3038
+ }
3039
+
3040
+ /**
3041
+ * @private
3042
+ */
3043
+ deserialize(params) {
3044
+ if (!params) {
3045
+ return;
3046
+ }
3047
+ this.ListenerId = 'ListenerId' in params ? params.ListenerId : null;
3048
+ this.ListenerName = 'ListenerName' in params ? params.ListenerName : null;
3049
+ this.Protocol = 'Protocol' in params ? params.Protocol : null;
3050
+ this.Port = 'Port' in params ? params.Port : null;
3051
+
3052
+ if (params.Rules) {
3053
+ this.Rules = new Array();
3054
+ for (let z in params.Rules) {
3055
+ let obj = new RuleHealth();
3056
+ obj.deserialize(params.Rules[z]);
3057
+ this.Rules.push(obj);
3058
+ }
3059
+ }
3060
+
3061
+ }
3062
+ }
3063
+
3064
+ /**
3065
+ * DescribeLoadBalancersDetail response structure.
3066
+ * @class
3067
+ */
3068
+ class DescribeLoadBalancersDetailResponse extends AbstractModel {
3069
+ constructor(){
3070
+ super();
3071
+
3072
+ /**
3073
+ * Total number of items in CLB detail list.
3074
+ * @type {number || null}
3075
+ */
3076
+ this.TotalCount = null;
3077
+
3078
+ /**
3079
+ * Cloud Load Balancer detail list.
3080
+ * @type {Array.<LoadBalancerDetail> || null}
3081
+ */
3082
+ this.LoadBalancerDetailSet = null;
3083
+
3084
+ /**
3085
+ * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
3086
+ * @type {string || null}
3087
+ */
3088
+ this.RequestId = null;
3089
+
3090
+ }
3091
+
3092
+ /**
3093
+ * @private
3094
+ */
3095
+ deserialize(params) {
3096
+ if (!params) {
3097
+ return;
3098
+ }
3099
+ this.TotalCount = 'TotalCount' in params ? params.TotalCount : null;
3100
+
3101
+ if (params.LoadBalancerDetailSet) {
3102
+ this.LoadBalancerDetailSet = new Array();
3103
+ for (let z in params.LoadBalancerDetailSet) {
3104
+ let obj = new LoadBalancerDetail();
3105
+ obj.deserialize(params.LoadBalancerDetailSet[z]);
3106
+ this.LoadBalancerDetailSet.push(obj);
3107
+ }
3108
+ }
3109
+ this.RequestId = 'RequestId' in params ? params.RequestId : null;
3110
+
3111
+ }
3112
+ }
3113
+
3114
+ /**
3115
+ * BatchModifyTargetWeight request structure.
3116
+ * @class
3117
+ */
3118
+ class BatchModifyTargetWeightRequest extends AbstractModel {
3119
+ constructor(){
3120
+ super();
3121
+
3122
+ /**
3123
+ * CLB instance ID.
3124
+ * @type {string || null}
3125
+ */
3126
+ this.LoadBalancerId = null;
3127
+
3128
+ /**
3129
+ * List of weights to be modified in batches.
3130
+ * @type {Array.<RsWeightRule> || null}
3131
+ */
3132
+ this.ModifyList = null;
3133
+
3134
+ }
3135
+
3136
+ /**
3137
+ * @private
3138
+ */
3139
+ deserialize(params) {
3140
+ if (!params) {
3141
+ return;
3142
+ }
3143
+ this.LoadBalancerId = 'LoadBalancerId' in params ? params.LoadBalancerId : null;
3144
+
3145
+ if (params.ModifyList) {
3146
+ this.ModifyList = new Array();
3147
+ for (let z in params.ModifyList) {
3148
+ let obj = new RsWeightRule();
3149
+ obj.deserialize(params.ModifyList[z]);
3150
+ this.ModifyList.push(obj);
3151
+ }
3152
+ }
3153
+
3154
+ }
3155
+ }
3156
+
3157
+ /**
3158
+ * CLB instance information
3159
+ * @class
3160
+ */
3161
+ class LoadBalancer extends AbstractModel {
3162
+ constructor(){
3163
+ super();
3164
+
3165
+ /**
3166
+ * CLB instance ID.
3167
+ * @type {string || null}
3168
+ */
3169
+ this.LoadBalancerId = null;
3170
+
3171
+ /**
3172
+ * CLB instance name.
3173
+ * @type {string || null}
3174
+ */
3175
+ this.LoadBalancerName = null;
3176
+
3177
+ /**
3178
+ * Network type of the CLB instance:
3179
+ OPEN: Public network attribute. INTERNAL: Intranet attribute. For a CLB with intranet attribute, you can bind EIP for public network access. For details, see the EIP document.
3180
+ * @type {string || null}
3181
+ */
3182
+ this.LoadBalancerType = null;
3183
+
3184
+ /**
3185
+ * Load balancer type identifier. 1: CLB; 0: Classic CLB.
3186
+ * @type {number || null}
3187
+ */
3188
+ this.Forward = null;
3189
+
3190
+ /**
3191
+ * The domain name of the Cloud Load Balancer instance. This field is only provided by public network-based and domain name-based CLB instances. It is being gradually phased out. We recommend using LoadBalancerDomain instead.
3192
+ * @type {string || null}
3193
+ */
3194
+ this.Domain = null;
3195
+
3196
+ /**
3197
+ * List of VIPs of a CLB instance.
3198
+ * @type {Array.<string> || null}
3199
+ */
3200
+ this.LoadBalancerVips = null;
3201
+
3202
+ /**
3203
+ * CLB instance state, including
3204
+ 0: creating, 1: normal operation.
3205
+ * @type {number || null}
3206
+ */
3207
+ this.Status = null;
3208
+
3209
+ /**
3210
+ * CLB instance creation time
3211
+ * @type {string || null}
3212
+ */
3213
+ this.CreateTime = null;
3214
+
3215
+ /**
3216
+ * Last status transition time of the CLB instance.
3217
+ * @type {string || null}
3218
+ */
3219
+ this.StatusTime = null;
3220
+
3221
+ /**
3222
+ * The ID of the project to which the CLB instance belongs. 0: Default project.
3223
+ * @type {number || null}
3224
+ */
3225
+ this.ProjectId = null;
3226
+
3227
+ /**
3228
+ * VPC ID
3229
+ * @type {string || null}
3230
+ */
3231
+ this.VpcId = null;
3232
+
3233
+ /**
3234
+ * Anti-DDoS Pro identifier for CLB. 1: CLB with Anti-DDoS Pro; 0: CLB without Anti-DDoS Pro.
3235
+ * @type {number || null}
3236
+ */
3237
+ this.OpenBgp = null;
3238
+
3239
+ /**
3240
+ * Private network Classic CLB instances before December 2016 had SNAT enabled.
3241
+ * @type {boolean || null}
3242
+ */
3243
+ this.Snat = null;
3244
+
3245
+ /**
3246
+ * 0: Not isolated; 1: Isolated.
3247
+ * @type {number || null}
3248
+ */
3249
+ this.Isolation = null;
3250
+
3251
+ /**
3252
+ * User-enabled log information. Only public network CLB instances that have an HTTP or HTTPS listener can generate logs.
3253
+ * @type {string || null}
3254
+ */
3255
+ this.Log = null;
3256
+
3257
+ /**
3258
+ * Subnet of the CLB instance (applicable only to VPC-type CLB instances on private networks)
3259
+ * @type {string || null}
3260
+ */
3261
+ this.SubnetId = null;
3262
+
3263
+ /**
3264
+ * CLB instance tag information
3265
+ * @type {Array.<TagInfo> || null}
3266
+ */
3267
+ this.Tags = null;
3268
+
3269
+ /**
3270
+ * Security group of the CLB instance
3271
+ * @type {Array.<string> || null}
3272
+ */
3273
+ this.SecureGroups = null;
3274
+
3275
+ /**
3276
+ * Basic information of real servers bound to the CLB instance
3277
+ * @type {TargetRegionInfo || null}
3278
+ */
3279
+ this.TargetRegionInfo = null;
3280
+
3281
+ /**
3282
+ * Anycast CLB release domain. For non-anycast CLB, this field returns an empty string.
3283
+ * @type {string || null}
3284
+ */
3285
+ this.AnycastZone = null;
3286
+
3287
+ /**
3288
+ * IP Version, ipv4 | ipv6
3289
+ * @type {string || null}
3290
+ */
3291
+ this.AddressIPVersion = null;
3292
+
3293
+ /**
3294
+ * VPC ID in numerical format
3295
+ * @type {number || null}
3296
+ */
3297
+ this.NumericalVpcId = null;
3298
+
3299
+ /**
3300
+ * ISP of the load balancer IP. Value ranges from BGP to CUCC.
3301
+ Note: This field may return null, indicating that no valid values can be obtained.
3302
+ * @type {string || null}
3303
+ */
3304
+ this.VipIsp = null;
3305
+
3306
+ /**
3307
+ * Primary AZ.
3308
+ Note: This field may return null, indicating that no valid values can be obtained.
3309
+ * @type {ZoneInfo || null}
3310
+ */
3311
+ this.MasterZone = null;
3312
+
3313
+ /**
3314
+ * standby availability zone
3315
+ Note: This field may return null, indicating that no valid values can be obtained.
3316
+ * @type {Array.<ZoneInfo> || null}
3317
+ */
3318
+ this.BackupZoneSet = null;
3319
+
3320
+ /**
3321
+ * CLB instance isolation time
3322
+ Note: This field may return null, indicating that no valid values can be obtained.
3323
+ * @type {string || null}
3324
+ */
3325
+ this.IsolatedTime = null;
3326
+
3327
+ /**
3328
+ * Expiration Time of the CLB instance
3329
+ Note: This field may return null, indicating that no valid values can be obtained.
3330
+ * @type {string || null}
3331
+ */
3332
+ this.ExpireTime = null;
3333
+
3334
+ /**
3335
+ * Billing type of the Cloud Load Balancer instance, PREPAID: Monthly Subscription, POSTPAID_BY_HOUR: Pay-As-You-Go
3336
+ Note: This field may return null, indicating that no valid values can be obtained.
3337
+ * @type {string || null}
3338
+ */
3339
+ this.ChargeType = null;
3340
+
3341
+ /**
3342
+ * CLB instance network attributes
3343
+ Note: This field may return null, indicating that no valid values can be obtained.
3344
+ * @type {InternetAccessible || null}
3345
+ */
3346
+ this.NetworkAttributes = null;
3347
+
3348
+ /**
3349
+ * Reserved field.
3350
+ Note: This field may return null, indicating that no valid values can be obtained.
3351
+ * @type {LBChargePrepaid || null}
3352
+ */
3353
+ this.PrepaidAttributes = null;
3354
+
3355
+ /**
3356
+ * Log set ID of Cloud Log Service (CLS) for CLB
3357
+ * @type {string || null}
3358
+ */
3359
+ this.LogSetId = null;
3360
+
3361
+ /**
3362
+ * Log topic ID of Cloud Log Service (CLS) for CLB
3363
+ * @type {string || null}
3364
+ */
3365
+ this.LogTopicId = null;
3366
+
3367
+ /**
3368
+ * IPv6 address of the CLB instance
3369
+ Note: This field may return null, indicating that no valid values can be obtained.
3370
+ * @type {string || null}
3371
+ */
3372
+ this.AddressIPv6 = null;
3373
+
3374
+ /**
3375
+ * Reserved. Generally unnecessary for users to concern.
3376
+ Note: This field may return null, indicating that no valid values can be obtained.
3377
+ * @type {ExtraInfo || null}
3378
+ */
3379
+ this.ExtraInfo = null;
3380
+
3381
+ /**
3382
+ * Whether an Anti-DDoS Pro instance can be bound
3383
+ * @type {boolean || null}
3384
+ */
3385
+ this.IsDDos = null;
3386
+
3387
+ /**
3388
+ * Custom configuration IDs of CLB instances
3389
+ * @type {string || null}
3390
+ */
3391
+ this.ConfigId = null;
3392
+
3393
+ /**
3394
+ * Whether the real server allows traffic from CLB
3395
+ * @type {boolean || null}
3396
+ */
3397
+ this.LoadBalancerPassToTarget = null;
3398
+
3399
+ /**
3400
+ * Exclusive cluster on the private network
3401
+ * @type {ExclusiveCluster || null}
3402
+ */
3403
+ this.ExclusiveCluster = null;
3404
+
3405
+ /**
3406
+ * This field is meaningful when the IP address version is IPv6. IPv6Nat64 | IPv6FullChain
3407
+ Note: This field may return null, indicating that no valid values can be obtained.
3408
+ * @type {string || null}
3409
+ */
3410
+ this.IPv6Mode = null;
3411
+
3412
+ /**
3413
+ * Is SnatPro enabled?
3414
+ * @type {boolean || null}
3415
+ */
3416
+ this.SnatPro = null;
3417
+
3418
+ /**
3419
+ * After enabling SnatPro load balancing, the SnatIp list.
3420
+ * @type {Array.<SnatIp> || null}
3421
+ */
3422
+ this.SnatIps = null;
3423
+
3424
+ /**
3425
+ * Performance capacity specification.<ul><li> clb.c1.small: Minimalist specification </li><li> clb.c2.medium: Standard specification </li><li> clb.c3.small: High-tier 1 specification </li><li> clb.c3.medium: High-tier 2 specification </li><li> clb.c4.small: Super-tier 1 specification </li><li> clb.c4.medium: Super-tier 2 specification </li><li> clb.c4.large: Super-tier 3 specification </li><li> clb.c4.xlarge: Super-tier 4 specification </li><li>"": Non-LCU-supported instance</li></ul>
3426
+ * @type {string || null}
3427
+ */
3428
+ this.SlaType = null;
3429
+
3430
+ /**
3431
+ * Whether VIP is blocked
3432
+ * @type {boolean || null}
3433
+ */
3434
+ this.IsBlock = null;
3435
+
3436
+ /**
3437
+ * Blocking or unblocking time
3438
+ * @type {string || null}
3439
+ */
3440
+ this.IsBlockTime = null;
3441
+
3442
+ /**
3443
+ * Whether the IP type is Local BGP
3444
+ * @type {boolean || null}
3445
+ */
3446
+ this.LocalBgp = null;
3447
+
3448
+ /**
3449
+ * Layer-7 exclusive tag.
3450
+ Note: This field may return null, indicating that no valid values can be obtained.
3451
+ * @type {string || null}
3452
+ */
3453
+ this.ClusterTag = null;
3454
+
3455
+ /**
3456
+ * If the layer-7 listener of an IPv6FullChain CLB instance is enabled, the CLB instance can be bound with IPv4 and IPv6 CVM instances simultaneously.
3457
+ * @type {boolean || null}
3458
+ */
3459
+ this.MixIpTarget = null;
3460
+
3461
+ /**
3462
+ * VPC-based private network CLB. AZ where the rule is in proximity access mode
3463
+ Note: This field may return null, indicating that no valid values can be obtained.
3464
+ * @type {Array.<string> || null}
3465
+ */
3466
+ this.Zones = null;
3467
+
3468
+ /**
3469
+ * Whether CLB is NFV. Empty: No; l7nfv: NFV for layer 7.
3470
+ * @type {string || null}
3471
+ */
3472
+ this.NfvInfo = null;
3473
+
3474
+ /**
3475
+ * Health check log set ID of Cloud Log Service (CLS) for CLB
3476
+ * @type {string || null}
3477
+ */
3478
+ this.HealthLogSetId = null;
3479
+
3480
+ /**
3481
+ * Health check log topic ID of Cloud Log Service (CLS) for CLB
3482
+ * @type {string || null}
3483
+ */
3484
+ this.HealthLogTopicId = null;
3485
+
3486
+ /**
3487
+ * Cluster ID
3488
+ Note: This field may return null, indicating that no valid values can be obtained.
3489
+ * @type {Array.<string> || null}
3490
+ */
3491
+ this.ClusterIds = null;
3492
+
3493
+ /**
3494
+ * Attributes of Cloud Load Balancer
3495
+ * @type {Array.<string> || null}
3496
+ */
3497
+ this.AttributeFlags = null;
3498
+
3499
+ /**
3500
+ * Domain name of the CLB instance.
3501
+ * @type {string || null}
3502
+ */
3503
+ this.LoadBalancerDomain = null;
3504
+
3505
+ /**
3506
+ * Network outbound
3507
+ * @type {string || null}
3508
+ */
3509
+ this.Egress = null;
3510
+
3511
+ /**
3512
+ * Whether the instance type is exclusive type. 1: Dedicated instance. 0: Non-dedicated instance.
3513
+ Note: This field may return null, indicating that no valid values can be obtained.
3514
+ * @type {number || null}
3515
+ */
3516
+ this.Exclusive = null;
3517
+
3518
+ /**
3519
+ * Number of bound backend services.
3520
+ * @type {number || null}
3521
+ */
3522
+ this.TargetCount = null;
3523
+
3524
+ /**
3525
+ * Endpoint Id associated with the CLB instance.
3526
+ * @type {string || null}
3527
+ */
3528
+ this.AssociateEndpoint = null;
3529
+
3530
+ /**
3531
+ * Availability zone forward affinity info
3532
+ * @type {AvailableZoneAffinityInfo || null}
3533
+ */
3534
+ this.AvailableZoneAffinityInfo = null;
3535
+
3536
+ }
3537
+
3538
+ /**
3539
+ * @private
3540
+ */
3541
+ deserialize(params) {
3542
+ if (!params) {
3543
+ return;
3544
+ }
3545
+ this.LoadBalancerId = 'LoadBalancerId' in params ? params.LoadBalancerId : null;
3546
+ this.LoadBalancerName = 'LoadBalancerName' in params ? params.LoadBalancerName : null;
3547
+ this.LoadBalancerType = 'LoadBalancerType' in params ? params.LoadBalancerType : null;
3548
+ this.Forward = 'Forward' in params ? params.Forward : null;
3549
+ this.Domain = 'Domain' in params ? params.Domain : null;
3550
+ this.LoadBalancerVips = 'LoadBalancerVips' in params ? params.LoadBalancerVips : null;
3551
+ this.Status = 'Status' in params ? params.Status : null;
3552
+ this.CreateTime = 'CreateTime' in params ? params.CreateTime : null;
3553
+ this.StatusTime = 'StatusTime' in params ? params.StatusTime : null;
3554
+ this.ProjectId = 'ProjectId' in params ? params.ProjectId : null;
3555
+ this.VpcId = 'VpcId' in params ? params.VpcId : null;
3556
+ this.OpenBgp = 'OpenBgp' in params ? params.OpenBgp : null;
3557
+ this.Snat = 'Snat' in params ? params.Snat : null;
3558
+ this.Isolation = 'Isolation' in params ? params.Isolation : null;
3559
+ this.Log = 'Log' in params ? params.Log : null;
3560
+ this.SubnetId = 'SubnetId' in params ? params.SubnetId : null;
3561
+
3562
+ if (params.Tags) {
3563
+ this.Tags = new Array();
3564
+ for (let z in params.Tags) {
3565
+ let obj = new TagInfo();
3566
+ obj.deserialize(params.Tags[z]);
3567
+ this.Tags.push(obj);
3568
+ }
3569
+ }
3570
+ this.SecureGroups = 'SecureGroups' in params ? params.SecureGroups : null;
3571
+
3572
+ if (params.TargetRegionInfo) {
3573
+ let obj = new TargetRegionInfo();
3574
+ obj.deserialize(params.TargetRegionInfo)
3575
+ this.TargetRegionInfo = obj;
3576
+ }
3577
+ this.AnycastZone = 'AnycastZone' in params ? params.AnycastZone : null;
3578
+ this.AddressIPVersion = 'AddressIPVersion' in params ? params.AddressIPVersion : null;
3579
+ this.NumericalVpcId = 'NumericalVpcId' in params ? params.NumericalVpcId : null;
3580
+ this.VipIsp = 'VipIsp' in params ? params.VipIsp : null;
3581
+
3582
+ if (params.MasterZone) {
3583
+ let obj = new ZoneInfo();
3584
+ obj.deserialize(params.MasterZone)
3585
+ this.MasterZone = obj;
3586
+ }
3587
+
3588
+ if (params.BackupZoneSet) {
3589
+ this.BackupZoneSet = new Array();
3590
+ for (let z in params.BackupZoneSet) {
3591
+ let obj = new ZoneInfo();
3592
+ obj.deserialize(params.BackupZoneSet[z]);
3593
+ this.BackupZoneSet.push(obj);
3594
+ }
3595
+ }
3596
+ this.IsolatedTime = 'IsolatedTime' in params ? params.IsolatedTime : null;
3597
+ this.ExpireTime = 'ExpireTime' in params ? params.ExpireTime : null;
3598
+ this.ChargeType = 'ChargeType' in params ? params.ChargeType : null;
3599
+
3600
+ if (params.NetworkAttributes) {
3601
+ let obj = new InternetAccessible();
3602
+ obj.deserialize(params.NetworkAttributes)
3603
+ this.NetworkAttributes = obj;
3604
+ }
3605
+
3606
+ if (params.PrepaidAttributes) {
3607
+ let obj = new LBChargePrepaid();
3608
+ obj.deserialize(params.PrepaidAttributes)
3609
+ this.PrepaidAttributes = obj;
3610
+ }
3611
+ this.LogSetId = 'LogSetId' in params ? params.LogSetId : null;
3612
+ this.LogTopicId = 'LogTopicId' in params ? params.LogTopicId : null;
3613
+ this.AddressIPv6 = 'AddressIPv6' in params ? params.AddressIPv6 : null;
3614
+
3615
+ if (params.ExtraInfo) {
3616
+ let obj = new ExtraInfo();
3617
+ obj.deserialize(params.ExtraInfo)
3618
+ this.ExtraInfo = obj;
3619
+ }
3620
+ this.IsDDos = 'IsDDos' in params ? params.IsDDos : null;
3621
+ this.ConfigId = 'ConfigId' in params ? params.ConfigId : null;
3622
+ this.LoadBalancerPassToTarget = 'LoadBalancerPassToTarget' in params ? params.LoadBalancerPassToTarget : null;
3623
+
3624
+ if (params.ExclusiveCluster) {
3625
+ let obj = new ExclusiveCluster();
3626
+ obj.deserialize(params.ExclusiveCluster)
3627
+ this.ExclusiveCluster = obj;
3628
+ }
3629
+ this.IPv6Mode = 'IPv6Mode' in params ? params.IPv6Mode : null;
3630
+ this.SnatPro = 'SnatPro' in params ? params.SnatPro : null;
3631
+
3632
+ if (params.SnatIps) {
3633
+ this.SnatIps = new Array();
3634
+ for (let z in params.SnatIps) {
3635
+ let obj = new SnatIp();
3636
+ obj.deserialize(params.SnatIps[z]);
3637
+ this.SnatIps.push(obj);
3638
+ }
3639
+ }
3640
+ this.SlaType = 'SlaType' in params ? params.SlaType : null;
3641
+ this.IsBlock = 'IsBlock' in params ? params.IsBlock : null;
3642
+ this.IsBlockTime = 'IsBlockTime' in params ? params.IsBlockTime : null;
3643
+ this.LocalBgp = 'LocalBgp' in params ? params.LocalBgp : null;
3644
+ this.ClusterTag = 'ClusterTag' in params ? params.ClusterTag : null;
3645
+ this.MixIpTarget = 'MixIpTarget' in params ? params.MixIpTarget : null;
3646
+ this.Zones = 'Zones' in params ? params.Zones : null;
3647
+ this.NfvInfo = 'NfvInfo' in params ? params.NfvInfo : null;
3648
+ this.HealthLogSetId = 'HealthLogSetId' in params ? params.HealthLogSetId : null;
3649
+ this.HealthLogTopicId = 'HealthLogTopicId' in params ? params.HealthLogTopicId : null;
3650
+ this.ClusterIds = 'ClusterIds' in params ? params.ClusterIds : null;
3651
+ this.AttributeFlags = 'AttributeFlags' in params ? params.AttributeFlags : null;
3652
+ this.LoadBalancerDomain = 'LoadBalancerDomain' in params ? params.LoadBalancerDomain : null;
3653
+ this.Egress = 'Egress' in params ? params.Egress : null;
3654
+ this.Exclusive = 'Exclusive' in params ? params.Exclusive : null;
3655
+ this.TargetCount = 'TargetCount' in params ? params.TargetCount : null;
3656
+ this.AssociateEndpoint = 'AssociateEndpoint' in params ? params.AssociateEndpoint : null;
3657
+
3658
+ if (params.AvailableZoneAffinityInfo) {
3659
+ let obj = new AvailableZoneAffinityInfo();
3660
+ obj.deserialize(params.AvailableZoneAffinityInfo)
3661
+ this.AvailableZoneAffinityInfo = obj;
3662
+ }
3663
+
3664
+ }
3665
+ }
3666
+
3667
+ module.exports = {
3668
+ LBChargePrepaid: LBChargePrepaid,
3669
+ DescribeLoadBalancerListByCertIdRequest: DescribeLoadBalancerListByCertIdRequest,
3670
+ ClassicalListener: ClassicalListener,
3671
+ TargetRegionInfo: TargetRegionInfo,
3672
+ SetCustomizedConfigForLoadBalancerRequest: SetCustomizedConfigForLoadBalancerRequest,
3673
+ DescribeCustomizedConfigListRequest: DescribeCustomizedConfigListRequest,
3674
+ ExtraInfo: ExtraInfo,
3675
+ DescribeCustomizedConfigAssociateListResponse: DescribeCustomizedConfigAssociateListResponse,
3676
+ CloneLoadBalancerResponse: CloneLoadBalancerResponse,
3677
+ BatchModifyTargetWeightResponse: BatchModifyTargetWeightResponse,
3678
+ DescribeLoadBalancerListByCertIdResponse: DescribeLoadBalancerListByCertIdResponse,
3679
+ CreateLoadBalancerRequest: CreateLoadBalancerRequest,
3680
+ LoadBalancerHealth: LoadBalancerHealth,
3681
+ DescribeTargetHealthRequest: DescribeTargetHealthRequest,
3682
+ CloneLoadBalancerRequest: CloneLoadBalancerRequest,
3683
+ Target: Target,
3684
+ RsWeightRule: RsWeightRule,
3685
+ DescribeCustomizedConfigListResponse: DescribeCustomizedConfigListResponse,
3686
+ CertIdRelatedWithLoadBalancers: CertIdRelatedWithLoadBalancers,
3687
+ RuleHealth: RuleHealth,
3688
+ TagInfo: TagInfo,
3689
+ ConfigListItem: ConfigListItem,
3690
+ DescribeClassicalLBListenersResponse: DescribeClassicalLBListenersResponse,
3691
+ SnatIp: SnatIp,
3692
+ DescribeTargetHealthResponse: DescribeTargetHealthResponse,
3693
+ CreateLoadBalancerResponse: CreateLoadBalancerResponse,
3694
+ ClusterItem: ClusterItem,
3695
+ BindDetailItem: BindDetailItem,
3696
+ SetCustomizedConfigForLoadBalancerResponse: SetCustomizedConfigForLoadBalancerResponse,
3697
+ AvailableZoneAffinityInfo: AvailableZoneAffinityInfo,
3698
+ Filter: Filter,
3699
+ DescribeCustomizedConfigAssociateListRequest: DescribeCustomizedConfigAssociateListRequest,
3700
+ DescribeLoadBalancersDetailRequest: DescribeLoadBalancersDetailRequest,
3701
+ LoadBalancerDetail: LoadBalancerDetail,
3702
+ DescribeLoadBalancersRequest: DescribeLoadBalancersRequest,
3703
+ DescribeLoadBalancersResponse: DescribeLoadBalancersResponse,
3704
+ ZoneInfo: ZoneInfo,
3705
+ ExclusiveCluster: ExclusiveCluster,
3706
+ InternetAccessible: InternetAccessible,
3707
+ DescribeClassicalLBListenersRequest: DescribeClassicalLBListenersRequest,
3708
+ TargetHealth: TargetHealth,
3709
+ ListenerHealth: ListenerHealth,
3710
+ DescribeLoadBalancersDetailResponse: DescribeLoadBalancersDetailResponse,
3711
+ BatchModifyTargetWeightRequest: BatchModifyTargetWeightRequest,
3712
+ LoadBalancer: LoadBalancer,
3713
+
3714
+ }