upgradelink-api-python 1.0.0__py3-none-any.whl

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.

Potentially problematic release.


This version of upgradelink-api-python might be problematic. Click here for more details.

@@ -0,0 +1 @@
1
+ __version__ = "1.0.0"
@@ -0,0 +1,683 @@
1
+ # -*- coding: utf-8 -*-
2
+ # This file is auto-generated, don't edit it. Thanks.
3
+ import time
4
+
5
+ from tea.request import TeaRequest
6
+ from tea.exceptions import TeaException, UnretryableException
7
+ from tea.core import TeaCore
8
+
9
+ from upgradelink_api_python import models as upgrade_link_models
10
+ from alibabacloud_tea_util.client import Client as UtilClient
11
+ from darabonba_base_python.client import Client as DarabonbaBaseClient
12
+
13
+
14
+ class Client:
15
+ _access_key: str = None
16
+ _access_secret: str = None
17
+ _protocol: str = None
18
+ _endpoint: str = None
19
+
20
+ def __init__(
21
+ self,
22
+ config: upgrade_link_models.Config,
23
+ ):
24
+ self._access_key = config.access_key
25
+ self._access_secret = config.access_secret
26
+ if UtilClient.equal_string(config.protocol, 'HTTPS'):
27
+ self._protocol = 'HTTPS'
28
+ else:
29
+ self._protocol = 'HTTP'
30
+ if UtilClient.empty(config.endpoint):
31
+ self._endpoint = 'api.upgrade.toolsetlink.com'
32
+ else:
33
+ self._endpoint = config.endpoint
34
+
35
+ def url_upgrade(
36
+ self,
37
+ request: upgrade_link_models.UrlUpgradeRequest,
38
+ ) -> upgrade_link_models.UrlUpgradeResponse:
39
+ request.validate()
40
+ _runtime = {
41
+ 'timeout': 10000,
42
+ # 10s 的过期时间
43
+ }
44
+ _last_request = None
45
+ _last_exception = None
46
+ _now = time.time()
47
+ _retry_times = 0
48
+ while TeaCore.allow_retry(_runtime.get('retry'), _retry_times, _now):
49
+ if _retry_times > 0:
50
+ _backoff_time = TeaCore.get_backoff_time(_runtime.get('backoff'), _retry_times)
51
+ if _backoff_time > 0:
52
+ TeaCore.sleep(_backoff_time)
53
+ _retry_times = _retry_times + 1
54
+ try:
55
+ _request = TeaRequest()
56
+ # 序列化请求体
57
+ body_str = UtilClient.to_jsonstring(request)
58
+ # 生成请求参数
59
+ timestamp = DarabonbaBaseClient.time_rfc3339()
60
+ nonce = DarabonbaBaseClient.generate_nonce()
61
+ uri = '/v1/url/upgrade'
62
+ access_key = self._access_key
63
+ access_secret = self._access_secret
64
+ # 生成签名
65
+ signature = DarabonbaBaseClient.generate_signature(body_str, nonce, access_secret, timestamp, uri)
66
+ _request.protocol = self._protocol
67
+ _request.method = 'POST'
68
+ _request.pathname = f'/v1/url/upgrade'
69
+ _request.headers = {
70
+ 'host': self._endpoint,
71
+ 'content-type': 'application/json',
72
+ 'x-Timestamp': timestamp,
73
+ 'x-Nonce': nonce,
74
+ 'x-AccessKey': access_key,
75
+ 'x-Signature': signature
76
+ }
77
+ _request.body = body_str
78
+ _last_request = _request
79
+ _response = TeaCore.do_action(_request, _runtime)
80
+ result = UtilClient.assert_as_map(UtilClient.read_as_json(_response.body))
81
+ if not UtilClient.equal_number(_response.status_code, 200):
82
+ raise TeaException({
83
+ 'statusCode': f'{_response.status_code}',
84
+ 'code': f"{result.get('code')}",
85
+ 'message': f"{result.get('msg')}",
86
+ 'docs': f"{result.get('docs')}",
87
+ 'traceId': f"{result.get('traceId')}"
88
+ })
89
+ return TeaCore.from_map(
90
+ upgrade_link_models.UrlUpgradeResponse(),
91
+ TeaCore.merge(result)
92
+ )
93
+ except Exception as e:
94
+ if TeaCore.is_retryable(e):
95
+ _last_exception = e
96
+ continue
97
+ raise e
98
+ raise UnretryableException(_last_request, _last_exception)
99
+
100
+ async def url_upgrade_async(
101
+ self,
102
+ request: upgrade_link_models.UrlUpgradeRequest,
103
+ ) -> upgrade_link_models.UrlUpgradeResponse:
104
+ request.validate()
105
+ _runtime = {
106
+ 'timeout': 10000,
107
+ # 10s 的过期时间
108
+ }
109
+ _last_request = None
110
+ _last_exception = None
111
+ _now = time.time()
112
+ _retry_times = 0
113
+ while TeaCore.allow_retry(_runtime.get('retry'), _retry_times, _now):
114
+ if _retry_times > 0:
115
+ _backoff_time = TeaCore.get_backoff_time(_runtime.get('backoff'), _retry_times)
116
+ if _backoff_time > 0:
117
+ TeaCore.sleep(_backoff_time)
118
+ _retry_times = _retry_times + 1
119
+ try:
120
+ _request = TeaRequest()
121
+ # 序列化请求体
122
+ body_str = UtilClient.to_jsonstring(request)
123
+ # 生成请求参数
124
+ timestamp = DarabonbaBaseClient.time_rfc3339()
125
+ nonce = DarabonbaBaseClient.generate_nonce()
126
+ uri = '/v1/url/upgrade'
127
+ access_key = self._access_key
128
+ access_secret = self._access_secret
129
+ # 生成签名
130
+ signature = DarabonbaBaseClient.generate_signature(body_str, nonce, access_secret, timestamp, uri)
131
+ _request.protocol = self._protocol
132
+ _request.method = 'POST'
133
+ _request.pathname = f'/v1/url/upgrade'
134
+ _request.headers = {
135
+ 'host': self._endpoint,
136
+ 'content-type': 'application/json',
137
+ 'x-Timestamp': timestamp,
138
+ 'x-Nonce': nonce,
139
+ 'x-AccessKey': access_key,
140
+ 'x-Signature': signature
141
+ }
142
+ _request.body = body_str
143
+ _last_request = _request
144
+ _response = await TeaCore.async_do_action(_request, _runtime)
145
+ result = UtilClient.assert_as_map(await UtilClient.read_as_json_async(_response.body))
146
+ if not UtilClient.equal_number(_response.status_code, 200):
147
+ raise TeaException({
148
+ 'statusCode': f'{_response.status_code}',
149
+ 'code': f"{result.get('code')}",
150
+ 'message': f"{result.get('msg')}",
151
+ 'docs': f"{result.get('docs')}",
152
+ 'traceId': f"{result.get('traceId')}"
153
+ })
154
+ return TeaCore.from_map(
155
+ upgrade_link_models.UrlUpgradeResponse(),
156
+ TeaCore.merge(result)
157
+ )
158
+ except Exception as e:
159
+ if TeaCore.is_retryable(e):
160
+ _last_exception = e
161
+ continue
162
+ raise e
163
+ raise UnretryableException(_last_request, _last_exception)
164
+
165
+ def file_upgrade(
166
+ self,
167
+ request: upgrade_link_models.FileUpgradeRequest,
168
+ ) -> upgrade_link_models.FileUpgradeResponse:
169
+ request.validate()
170
+ _runtime = {
171
+ 'timeout': 10000,
172
+ # 10s 的过期时间
173
+ }
174
+ _last_request = None
175
+ _last_exception = None
176
+ _now = time.time()
177
+ _retry_times = 0
178
+ while TeaCore.allow_retry(_runtime.get('retry'), _retry_times, _now):
179
+ if _retry_times > 0:
180
+ _backoff_time = TeaCore.get_backoff_time(_runtime.get('backoff'), _retry_times)
181
+ if _backoff_time > 0:
182
+ TeaCore.sleep(_backoff_time)
183
+ _retry_times = _retry_times + 1
184
+ try:
185
+ _request = TeaRequest()
186
+ # 序列化请求体
187
+ body_str = UtilClient.to_jsonstring(request)
188
+ # 生成请求参数
189
+ timestamp = DarabonbaBaseClient.time_rfc3339()
190
+ nonce = DarabonbaBaseClient.generate_nonce()
191
+ uri = '/v1/file/upgrade'
192
+ access_key = self._access_key
193
+ access_secret = self._access_secret
194
+ # 生成签名
195
+ signature = DarabonbaBaseClient.generate_signature(body_str, nonce, access_secret, timestamp, uri)
196
+ _request.protocol = self._protocol
197
+ _request.method = 'POST'
198
+ _request.pathname = f'/v1/file/upgrade'
199
+ _request.headers = {
200
+ 'host': self._endpoint,
201
+ 'content-type': 'application/json',
202
+ 'x-Timestamp': timestamp,
203
+ 'x-Nonce': nonce,
204
+ 'x-AccessKey': access_key,
205
+ 'x-Signature': signature
206
+ }
207
+ _request.body = body_str
208
+ _last_request = _request
209
+ _response = TeaCore.do_action(_request, _runtime)
210
+ result = UtilClient.assert_as_map(UtilClient.read_as_json(_response.body))
211
+ if not UtilClient.equal_number(_response.status_code, 200):
212
+ raise TeaException({
213
+ 'statusCode': f'{_response.status_code}',
214
+ 'code': f"{result.get('code')}",
215
+ 'message': f"{result.get('msg')}",
216
+ 'docs': f"{result.get('docs')}",
217
+ 'traceId': f"{result.get('traceId')}"
218
+ })
219
+ return TeaCore.from_map(
220
+ upgrade_link_models.FileUpgradeResponse(),
221
+ TeaCore.merge(result)
222
+ )
223
+ except Exception as e:
224
+ if TeaCore.is_retryable(e):
225
+ _last_exception = e
226
+ continue
227
+ raise e
228
+ raise UnretryableException(_last_request, _last_exception)
229
+
230
+ async def file_upgrade_async(
231
+ self,
232
+ request: upgrade_link_models.FileUpgradeRequest,
233
+ ) -> upgrade_link_models.FileUpgradeResponse:
234
+ request.validate()
235
+ _runtime = {
236
+ 'timeout': 10000,
237
+ # 10s 的过期时间
238
+ }
239
+ _last_request = None
240
+ _last_exception = None
241
+ _now = time.time()
242
+ _retry_times = 0
243
+ while TeaCore.allow_retry(_runtime.get('retry'), _retry_times, _now):
244
+ if _retry_times > 0:
245
+ _backoff_time = TeaCore.get_backoff_time(_runtime.get('backoff'), _retry_times)
246
+ if _backoff_time > 0:
247
+ TeaCore.sleep(_backoff_time)
248
+ _retry_times = _retry_times + 1
249
+ try:
250
+ _request = TeaRequest()
251
+ # 序列化请求体
252
+ body_str = UtilClient.to_jsonstring(request)
253
+ # 生成请求参数
254
+ timestamp = DarabonbaBaseClient.time_rfc3339()
255
+ nonce = DarabonbaBaseClient.generate_nonce()
256
+ uri = '/v1/file/upgrade'
257
+ access_key = self._access_key
258
+ access_secret = self._access_secret
259
+ # 生成签名
260
+ signature = DarabonbaBaseClient.generate_signature(body_str, nonce, access_secret, timestamp, uri)
261
+ _request.protocol = self._protocol
262
+ _request.method = 'POST'
263
+ _request.pathname = f'/v1/file/upgrade'
264
+ _request.headers = {
265
+ 'host': self._endpoint,
266
+ 'content-type': 'application/json',
267
+ 'x-Timestamp': timestamp,
268
+ 'x-Nonce': nonce,
269
+ 'x-AccessKey': access_key,
270
+ 'x-Signature': signature
271
+ }
272
+ _request.body = body_str
273
+ _last_request = _request
274
+ _response = await TeaCore.async_do_action(_request, _runtime)
275
+ result = UtilClient.assert_as_map(await UtilClient.read_as_json_async(_response.body))
276
+ if not UtilClient.equal_number(_response.status_code, 200):
277
+ raise TeaException({
278
+ 'statusCode': f'{_response.status_code}',
279
+ 'code': f"{result.get('code')}",
280
+ 'message': f"{result.get('msg')}",
281
+ 'docs': f"{result.get('docs')}",
282
+ 'traceId': f"{result.get('traceId')}"
283
+ })
284
+ return TeaCore.from_map(
285
+ upgrade_link_models.FileUpgradeResponse(),
286
+ TeaCore.merge(result)
287
+ )
288
+ except Exception as e:
289
+ if TeaCore.is_retryable(e):
290
+ _last_exception = e
291
+ continue
292
+ raise e
293
+ raise UnretryableException(_last_request, _last_exception)
294
+
295
+ def apk_upgrade(
296
+ self,
297
+ request: upgrade_link_models.ApkUpgradeRequest,
298
+ ) -> upgrade_link_models.ApkUpgradeResponse:
299
+ request.validate()
300
+ _runtime = {
301
+ 'timeout': 10000,
302
+ # 10s 的过期时间
303
+ }
304
+ _last_request = None
305
+ _last_exception = None
306
+ _now = time.time()
307
+ _retry_times = 0
308
+ while TeaCore.allow_retry(_runtime.get('retry'), _retry_times, _now):
309
+ if _retry_times > 0:
310
+ _backoff_time = TeaCore.get_backoff_time(_runtime.get('backoff'), _retry_times)
311
+ if _backoff_time > 0:
312
+ TeaCore.sleep(_backoff_time)
313
+ _retry_times = _retry_times + 1
314
+ try:
315
+ _request = TeaRequest()
316
+ # 序列化请求体
317
+ body_str = UtilClient.to_jsonstring(request)
318
+ # 生成请求参数
319
+ timestamp = DarabonbaBaseClient.time_rfc3339()
320
+ nonce = DarabonbaBaseClient.generate_nonce()
321
+ uri = '/v1/apk/upgrade'
322
+ access_key = self._access_key
323
+ access_secret = self._access_secret
324
+ # 生成签名
325
+ signature = DarabonbaBaseClient.generate_signature(body_str, nonce, access_secret, timestamp, uri)
326
+ _request.protocol = self._protocol
327
+ _request.method = 'POST'
328
+ _request.pathname = f'/v1/apk/upgrade'
329
+ _request.headers = {
330
+ 'host': self._endpoint,
331
+ 'content-type': 'application/json',
332
+ 'x-Timestamp': timestamp,
333
+ 'x-Nonce': nonce,
334
+ 'x-AccessKey': access_key,
335
+ 'x-Signature': signature
336
+ }
337
+ _request.body = body_str
338
+ _last_request = _request
339
+ _response = TeaCore.do_action(_request, _runtime)
340
+ result = UtilClient.assert_as_map(UtilClient.read_as_json(_response.body))
341
+ if not UtilClient.equal_number(_response.status_code, 200):
342
+ raise TeaException({
343
+ 'statusCode': f'{_response.status_code}',
344
+ 'code': f"{result.get('code')}",
345
+ 'message': f"{result.get('msg')}",
346
+ 'docs': f"{result.get('docs')}",
347
+ 'traceId': f"{result.get('traceId')}"
348
+ })
349
+ return TeaCore.from_map(
350
+ upgrade_link_models.ApkUpgradeResponse(),
351
+ TeaCore.merge(result)
352
+ )
353
+ except Exception as e:
354
+ if TeaCore.is_retryable(e):
355
+ _last_exception = e
356
+ continue
357
+ raise e
358
+ raise UnretryableException(_last_request, _last_exception)
359
+
360
+ async def apk_upgrade_async(
361
+ self,
362
+ request: upgrade_link_models.ApkUpgradeRequest,
363
+ ) -> upgrade_link_models.ApkUpgradeResponse:
364
+ request.validate()
365
+ _runtime = {
366
+ 'timeout': 10000,
367
+ # 10s 的过期时间
368
+ }
369
+ _last_request = None
370
+ _last_exception = None
371
+ _now = time.time()
372
+ _retry_times = 0
373
+ while TeaCore.allow_retry(_runtime.get('retry'), _retry_times, _now):
374
+ if _retry_times > 0:
375
+ _backoff_time = TeaCore.get_backoff_time(_runtime.get('backoff'), _retry_times)
376
+ if _backoff_time > 0:
377
+ TeaCore.sleep(_backoff_time)
378
+ _retry_times = _retry_times + 1
379
+ try:
380
+ _request = TeaRequest()
381
+ # 序列化请求体
382
+ body_str = UtilClient.to_jsonstring(request)
383
+ # 生成请求参数
384
+ timestamp = DarabonbaBaseClient.time_rfc3339()
385
+ nonce = DarabonbaBaseClient.generate_nonce()
386
+ uri = '/v1/apk/upgrade'
387
+ access_key = self._access_key
388
+ access_secret = self._access_secret
389
+ # 生成签名
390
+ signature = DarabonbaBaseClient.generate_signature(body_str, nonce, access_secret, timestamp, uri)
391
+ _request.protocol = self._protocol
392
+ _request.method = 'POST'
393
+ _request.pathname = f'/v1/apk/upgrade'
394
+ _request.headers = {
395
+ 'host': self._endpoint,
396
+ 'content-type': 'application/json',
397
+ 'x-Timestamp': timestamp,
398
+ 'x-Nonce': nonce,
399
+ 'x-AccessKey': access_key,
400
+ 'x-Signature': signature
401
+ }
402
+ _request.body = body_str
403
+ _last_request = _request
404
+ _response = await TeaCore.async_do_action(_request, _runtime)
405
+ result = UtilClient.assert_as_map(await UtilClient.read_as_json_async(_response.body))
406
+ if not UtilClient.equal_number(_response.status_code, 200):
407
+ raise TeaException({
408
+ 'statusCode': f'{_response.status_code}',
409
+ 'code': f"{result.get('code')}",
410
+ 'message': f"{result.get('msg')}",
411
+ 'docs': f"{result.get('docs')}",
412
+ 'traceId': f"{result.get('traceId')}"
413
+ })
414
+ return TeaCore.from_map(
415
+ upgrade_link_models.ApkUpgradeResponse(),
416
+ TeaCore.merge(result)
417
+ )
418
+ except Exception as e:
419
+ if TeaCore.is_retryable(e):
420
+ _last_exception = e
421
+ continue
422
+ raise e
423
+ raise UnretryableException(_last_request, _last_exception)
424
+
425
+ def configuration_upgrade(
426
+ self,
427
+ request: upgrade_link_models.ConfigurationUpgradeRequest,
428
+ ) -> upgrade_link_models.ConfigurationUpgradeResponse:
429
+ request.validate()
430
+ _runtime = {
431
+ 'timeout': 10000,
432
+ # 10s 的过期时间
433
+ }
434
+ _last_request = None
435
+ _last_exception = None
436
+ _now = time.time()
437
+ _retry_times = 0
438
+ while TeaCore.allow_retry(_runtime.get('retry'), _retry_times, _now):
439
+ if _retry_times > 0:
440
+ _backoff_time = TeaCore.get_backoff_time(_runtime.get('backoff'), _retry_times)
441
+ if _backoff_time > 0:
442
+ TeaCore.sleep(_backoff_time)
443
+ _retry_times = _retry_times + 1
444
+ try:
445
+ _request = TeaRequest()
446
+ # 序列化请求体
447
+ body_str = UtilClient.to_jsonstring(request)
448
+ # 生成请求参数
449
+ timestamp = DarabonbaBaseClient.time_rfc3339()
450
+ nonce = DarabonbaBaseClient.generate_nonce()
451
+ uri = '/v1/configuration/upgrade'
452
+ access_key = self._access_key
453
+ access_secret = self._access_secret
454
+ # 生成签名
455
+ signature = DarabonbaBaseClient.generate_signature(body_str, nonce, access_secret, timestamp, uri)
456
+ _request.protocol = self._protocol
457
+ _request.method = 'POST'
458
+ _request.pathname = f'/v1/configuration/upgrade'
459
+ _request.headers = {
460
+ 'host': self._endpoint,
461
+ 'content-type': 'application/json',
462
+ 'x-Timestamp': timestamp,
463
+ 'x-Nonce': nonce,
464
+ 'x-AccessKey': access_key,
465
+ 'x-Signature': signature
466
+ }
467
+ _request.body = body_str
468
+ _last_request = _request
469
+ _response = TeaCore.do_action(_request, _runtime)
470
+ result = UtilClient.assert_as_map(UtilClient.read_as_json(_response.body))
471
+ if not UtilClient.equal_number(_response.status_code, 200):
472
+ raise TeaException({
473
+ 'statusCode': f'{_response.status_code}',
474
+ 'code': f"{result.get('code')}",
475
+ 'message': f"{result.get('msg')}",
476
+ 'docs': f"{result.get('docs')}",
477
+ 'traceId': f"{result.get('traceId')}"
478
+ })
479
+ return TeaCore.from_map(
480
+ upgrade_link_models.ConfigurationUpgradeResponse(),
481
+ TeaCore.merge(result)
482
+ )
483
+ except Exception as e:
484
+ if TeaCore.is_retryable(e):
485
+ _last_exception = e
486
+ continue
487
+ raise e
488
+ raise UnretryableException(_last_request, _last_exception)
489
+
490
+ async def configuration_upgrade_async(
491
+ self,
492
+ request: upgrade_link_models.ConfigurationUpgradeRequest,
493
+ ) -> upgrade_link_models.ConfigurationUpgradeResponse:
494
+ request.validate()
495
+ _runtime = {
496
+ 'timeout': 10000,
497
+ # 10s 的过期时间
498
+ }
499
+ _last_request = None
500
+ _last_exception = None
501
+ _now = time.time()
502
+ _retry_times = 0
503
+ while TeaCore.allow_retry(_runtime.get('retry'), _retry_times, _now):
504
+ if _retry_times > 0:
505
+ _backoff_time = TeaCore.get_backoff_time(_runtime.get('backoff'), _retry_times)
506
+ if _backoff_time > 0:
507
+ TeaCore.sleep(_backoff_time)
508
+ _retry_times = _retry_times + 1
509
+ try:
510
+ _request = TeaRequest()
511
+ # 序列化请求体
512
+ body_str = UtilClient.to_jsonstring(request)
513
+ # 生成请求参数
514
+ timestamp = DarabonbaBaseClient.time_rfc3339()
515
+ nonce = DarabonbaBaseClient.generate_nonce()
516
+ uri = '/v1/configuration/upgrade'
517
+ access_key = self._access_key
518
+ access_secret = self._access_secret
519
+ # 生成签名
520
+ signature = DarabonbaBaseClient.generate_signature(body_str, nonce, access_secret, timestamp, uri)
521
+ _request.protocol = self._protocol
522
+ _request.method = 'POST'
523
+ _request.pathname = f'/v1/configuration/upgrade'
524
+ _request.headers = {
525
+ 'host': self._endpoint,
526
+ 'content-type': 'application/json',
527
+ 'x-Timestamp': timestamp,
528
+ 'x-Nonce': nonce,
529
+ 'x-AccessKey': access_key,
530
+ 'x-Signature': signature
531
+ }
532
+ _request.body = body_str
533
+ _last_request = _request
534
+ _response = await TeaCore.async_do_action(_request, _runtime)
535
+ result = UtilClient.assert_as_map(await UtilClient.read_as_json_async(_response.body))
536
+ if not UtilClient.equal_number(_response.status_code, 200):
537
+ raise TeaException({
538
+ 'statusCode': f'{_response.status_code}',
539
+ 'code': f"{result.get('code')}",
540
+ 'message': f"{result.get('msg')}",
541
+ 'docs': f"{result.get('docs')}",
542
+ 'traceId': f"{result.get('traceId')}"
543
+ })
544
+ return TeaCore.from_map(
545
+ upgrade_link_models.ConfigurationUpgradeResponse(),
546
+ TeaCore.merge(result)
547
+ )
548
+ except Exception as e:
549
+ if TeaCore.is_retryable(e):
550
+ _last_exception = e
551
+ continue
552
+ raise e
553
+ raise UnretryableException(_last_request, _last_exception)
554
+
555
+ def app_report(
556
+ self,
557
+ request: upgrade_link_models.AppReportRequest,
558
+ ) -> upgrade_link_models.AppReportResponse:
559
+ request.validate()
560
+ _runtime = {
561
+ 'timeout': 10000,
562
+ # 10s 的过期时间
563
+ }
564
+ _last_request = None
565
+ _last_exception = None
566
+ _now = time.time()
567
+ _retry_times = 0
568
+ while TeaCore.allow_retry(_runtime.get('retry'), _retry_times, _now):
569
+ if _retry_times > 0:
570
+ _backoff_time = TeaCore.get_backoff_time(_runtime.get('backoff'), _retry_times)
571
+ if _backoff_time > 0:
572
+ TeaCore.sleep(_backoff_time)
573
+ _retry_times = _retry_times + 1
574
+ try:
575
+ _request = TeaRequest()
576
+ # 序列化请求体
577
+ body_str = UtilClient.to_jsonstring(request)
578
+ # 生成请求参数
579
+ timestamp = DarabonbaBaseClient.time_rfc3339()
580
+ nonce = DarabonbaBaseClient.generate_nonce()
581
+ uri = '/v1/app/report'
582
+ access_key = self._access_key
583
+ access_secret = self._access_secret
584
+ # 生成签名
585
+ signature = DarabonbaBaseClient.generate_signature(body_str, nonce, access_secret, timestamp, uri)
586
+ _request.protocol = self._protocol
587
+ _request.method = 'POST'
588
+ _request.pathname = f'/v1/app/report'
589
+ _request.headers = {
590
+ 'host': self._endpoint,
591
+ 'content-type': 'application/json',
592
+ 'x-Timestamp': timestamp,
593
+ 'x-Nonce': nonce,
594
+ 'x-AccessKey': access_key,
595
+ 'x-Signature': signature
596
+ }
597
+ _request.body = body_str
598
+ _last_request = _request
599
+ _response = TeaCore.do_action(_request, _runtime)
600
+ result = UtilClient.assert_as_map(UtilClient.read_as_json(_response.body))
601
+ if not UtilClient.equal_number(_response.status_code, 200):
602
+ raise TeaException({
603
+ 'statusCode': f'{_response.status_code}',
604
+ 'code': f"{result.get('code')}",
605
+ 'message': f"{result.get('msg')}",
606
+ 'docs': f"{result.get('docs')}",
607
+ 'traceId': f"{result.get('traceId')}"
608
+ })
609
+ return TeaCore.from_map(
610
+ upgrade_link_models.AppReportResponse(),
611
+ TeaCore.merge(result)
612
+ )
613
+ except Exception as e:
614
+ if TeaCore.is_retryable(e):
615
+ _last_exception = e
616
+ continue
617
+ raise e
618
+ raise UnretryableException(_last_request, _last_exception)
619
+
620
+ async def app_report_async(
621
+ self,
622
+ request: upgrade_link_models.AppReportRequest,
623
+ ) -> upgrade_link_models.AppReportResponse:
624
+ request.validate()
625
+ _runtime = {
626
+ 'timeout': 10000,
627
+ # 10s 的过期时间
628
+ }
629
+ _last_request = None
630
+ _last_exception = None
631
+ _now = time.time()
632
+ _retry_times = 0
633
+ while TeaCore.allow_retry(_runtime.get('retry'), _retry_times, _now):
634
+ if _retry_times > 0:
635
+ _backoff_time = TeaCore.get_backoff_time(_runtime.get('backoff'), _retry_times)
636
+ if _backoff_time > 0:
637
+ TeaCore.sleep(_backoff_time)
638
+ _retry_times = _retry_times + 1
639
+ try:
640
+ _request = TeaRequest()
641
+ # 序列化请求体
642
+ body_str = UtilClient.to_jsonstring(request)
643
+ # 生成请求参数
644
+ timestamp = DarabonbaBaseClient.time_rfc3339()
645
+ nonce = DarabonbaBaseClient.generate_nonce()
646
+ uri = '/v1/app/report'
647
+ access_key = self._access_key
648
+ access_secret = self._access_secret
649
+ # 生成签名
650
+ signature = DarabonbaBaseClient.generate_signature(body_str, nonce, access_secret, timestamp, uri)
651
+ _request.protocol = self._protocol
652
+ _request.method = 'POST'
653
+ _request.pathname = f'/v1/app/report'
654
+ _request.headers = {
655
+ 'host': self._endpoint,
656
+ 'content-type': 'application/json',
657
+ 'x-Timestamp': timestamp,
658
+ 'x-Nonce': nonce,
659
+ 'x-AccessKey': access_key,
660
+ 'x-Signature': signature
661
+ }
662
+ _request.body = body_str
663
+ _last_request = _request
664
+ _response = await TeaCore.async_do_action(_request, _runtime)
665
+ result = UtilClient.assert_as_map(await UtilClient.read_as_json_async(_response.body))
666
+ if not UtilClient.equal_number(_response.status_code, 200):
667
+ raise TeaException({
668
+ 'statusCode': f'{_response.status_code}',
669
+ 'code': f"{result.get('code')}",
670
+ 'message': f"{result.get('msg')}",
671
+ 'docs': f"{result.get('docs')}",
672
+ 'traceId': f"{result.get('traceId')}"
673
+ })
674
+ return TeaCore.from_map(
675
+ upgrade_link_models.AppReportResponse(),
676
+ TeaCore.merge(result)
677
+ )
678
+ except Exception as e:
679
+ if TeaCore.is_retryable(e):
680
+ _last_exception = e
681
+ continue
682
+ raise e
683
+ raise UnretryableException(_last_request, _last_exception)