alibabacloud-ehpcinstant20230701 1.0.3__py3-none-any.whl → 1.1.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 alibabacloud-ehpcinstant20230701 might be problematic. Click here for more details.

@@ -128,12 +128,14 @@ class AddImageRequest(TeaModel):
128
128
  self,
129
129
  container_image_spec: AddImageRequestContainerImageSpec = None,
130
130
  description: str = None,
131
+ image_type: str = None,
131
132
  image_version: str = None,
132
133
  name: str = None,
133
134
  vmimage_spec: AddImageRequestVMImageSpec = None,
134
135
  ):
135
136
  self.container_image_spec = container_image_spec
136
137
  self.description = description
138
+ self.image_type = image_type
137
139
  self.image_version = image_version
138
140
  # This parameter is required.
139
141
  self.name = name
@@ -155,6 +157,8 @@ class AddImageRequest(TeaModel):
155
157
  result['ContainerImageSpec'] = self.container_image_spec.to_map()
156
158
  if self.description is not None:
157
159
  result['Description'] = self.description
160
+ if self.image_type is not None:
161
+ result['ImageType'] = self.image_type
158
162
  if self.image_version is not None:
159
163
  result['ImageVersion'] = self.image_version
160
164
  if self.name is not None:
@@ -170,6 +174,8 @@ class AddImageRequest(TeaModel):
170
174
  self.container_image_spec = temp_model.from_map(m['ContainerImageSpec'])
171
175
  if m.get('Description') is not None:
172
176
  self.description = m.get('Description')
177
+ if m.get('ImageType') is not None:
178
+ self.image_type = m.get('ImageType')
173
179
  if m.get('ImageVersion') is not None:
174
180
  self.image_version = m.get('ImageVersion')
175
181
  if m.get('Name') is not None:
@@ -185,12 +191,14 @@ class AddImageShrinkRequest(TeaModel):
185
191
  self,
186
192
  container_image_spec_shrink: str = None,
187
193
  description: str = None,
194
+ image_type: str = None,
188
195
  image_version: str = None,
189
196
  name: str = None,
190
197
  vmimage_spec_shrink: str = None,
191
198
  ):
192
199
  self.container_image_spec_shrink = container_image_spec_shrink
193
200
  self.description = description
201
+ self.image_type = image_type
194
202
  self.image_version = image_version
195
203
  # This parameter is required.
196
204
  self.name = name
@@ -209,6 +217,8 @@ class AddImageShrinkRequest(TeaModel):
209
217
  result['ContainerImageSpec'] = self.container_image_spec_shrink
210
218
  if self.description is not None:
211
219
  result['Description'] = self.description
220
+ if self.image_type is not None:
221
+ result['ImageType'] = self.image_type
212
222
  if self.image_version is not None:
213
223
  result['ImageVersion'] = self.image_version
214
224
  if self.name is not None:
@@ -223,6 +233,8 @@ class AddImageShrinkRequest(TeaModel):
223
233
  self.container_image_spec_shrink = m.get('ContainerImageSpec')
224
234
  if m.get('Description') is not None:
225
235
  self.description = m.get('Description')
236
+ if m.get('ImageType') is not None:
237
+ self.image_type = m.get('ImageType')
226
238
  if m.get('ImageVersion') is not None:
227
239
  self.image_version = m.get('ImageVersion')
228
240
  if m.get('Name') is not None:
@@ -315,8 +327,10 @@ class AddImageResponse(TeaModel):
315
327
  class CreateJobRequestDeploymentPolicyNetwork(TeaModel):
316
328
  def __init__(
317
329
  self,
330
+ enable_external_ip_address: bool = None,
318
331
  vswitch: List[str] = None,
319
332
  ):
333
+ self.enable_external_ip_address = enable_external_ip_address
320
334
  self.vswitch = vswitch
321
335
 
322
336
  def validate(self):
@@ -328,29 +342,73 @@ class CreateJobRequestDeploymentPolicyNetwork(TeaModel):
328
342
  return _map
329
343
 
330
344
  result = dict()
345
+ if self.enable_external_ip_address is not None:
346
+ result['EnableExternalIpAddress'] = self.enable_external_ip_address
331
347
  if self.vswitch is not None:
332
348
  result['Vswitch'] = self.vswitch
333
349
  return result
334
350
 
335
351
  def from_map(self, m: dict = None):
336
352
  m = m or dict()
353
+ if m.get('EnableExternalIpAddress') is not None:
354
+ self.enable_external_ip_address = m.get('EnableExternalIpAddress')
337
355
  if m.get('Vswitch') is not None:
338
356
  self.vswitch = m.get('Vswitch')
339
357
  return self
340
358
 
341
359
 
360
+ class CreateJobRequestDeploymentPolicyTag(TeaModel):
361
+ def __init__(
362
+ self,
363
+ key: str = None,
364
+ value: str = None,
365
+ ):
366
+ # This parameter is required.
367
+ self.key = key
368
+ self.value = value
369
+
370
+ def validate(self):
371
+ pass
372
+
373
+ def to_map(self):
374
+ _map = super().to_map()
375
+ if _map is not None:
376
+ return _map
377
+
378
+ result = dict()
379
+ if self.key is not None:
380
+ result['Key'] = self.key
381
+ if self.value is not None:
382
+ result['Value'] = self.value
383
+ return result
384
+
385
+ def from_map(self, m: dict = None):
386
+ m = m or dict()
387
+ if m.get('Key') is not None:
388
+ self.key = m.get('Key')
389
+ if m.get('Value') is not None:
390
+ self.value = m.get('Value')
391
+ return self
392
+
393
+
342
394
  class CreateJobRequestDeploymentPolicy(TeaModel):
343
395
  def __init__(
344
396
  self,
345
397
  allocation_spec: str = None,
346
398
  network: CreateJobRequestDeploymentPolicyNetwork = None,
399
+ tag: List[CreateJobRequestDeploymentPolicyTag] = None,
347
400
  ):
348
401
  self.allocation_spec = allocation_spec
349
402
  self.network = network
403
+ self.tag = tag
350
404
 
351
405
  def validate(self):
352
406
  if self.network:
353
407
  self.network.validate()
408
+ if self.tag:
409
+ for k in self.tag:
410
+ if k:
411
+ k.validate()
354
412
 
355
413
  def to_map(self):
356
414
  _map = super().to_map()
@@ -362,6 +420,10 @@ class CreateJobRequestDeploymentPolicy(TeaModel):
362
420
  result['AllocationSpec'] = self.allocation_spec
363
421
  if self.network is not None:
364
422
  result['Network'] = self.network.to_map()
423
+ result['Tag'] = []
424
+ if self.tag is not None:
425
+ for k in self.tag:
426
+ result['Tag'].append(k.to_map() if k else None)
365
427
  return result
366
428
 
367
429
  def from_map(self, m: dict = None):
@@ -371,6 +433,11 @@ class CreateJobRequestDeploymentPolicy(TeaModel):
371
433
  if m.get('Network') is not None:
372
434
  temp_model = CreateJobRequestDeploymentPolicyNetwork()
373
435
  self.network = temp_model.from_map(m['Network'])
436
+ self.tag = []
437
+ if m.get('Tag') is not None:
438
+ for k in m.get('Tag'):
439
+ temp_model = CreateJobRequestDeploymentPolicyTag()
440
+ self.tag.append(temp_model.from_map(k))
374
441
  return self
375
442
 
376
443
 
@@ -2053,8 +2120,10 @@ class GetJobRequest(TeaModel):
2053
2120
  class GetJobResponseBodyJobInfoDeploymentPolicyNetwork(TeaModel):
2054
2121
  def __init__(
2055
2122
  self,
2123
+ enable_external_ip_address: bool = None,
2056
2124
  vswitch: List[str] = None,
2057
2125
  ):
2126
+ self.enable_external_ip_address = enable_external_ip_address
2058
2127
  self.vswitch = vswitch
2059
2128
 
2060
2129
  def validate(self):
@@ -2066,29 +2135,72 @@ class GetJobResponseBodyJobInfoDeploymentPolicyNetwork(TeaModel):
2066
2135
  return _map
2067
2136
 
2068
2137
  result = dict()
2138
+ if self.enable_external_ip_address is not None:
2139
+ result['EnableExternalIpAddress'] = self.enable_external_ip_address
2069
2140
  if self.vswitch is not None:
2070
2141
  result['Vswitch'] = self.vswitch
2071
2142
  return result
2072
2143
 
2073
2144
  def from_map(self, m: dict = None):
2074
2145
  m = m or dict()
2146
+ if m.get('EnableExternalIpAddress') is not None:
2147
+ self.enable_external_ip_address = m.get('EnableExternalIpAddress')
2075
2148
  if m.get('Vswitch') is not None:
2076
2149
  self.vswitch = m.get('Vswitch')
2077
2150
  return self
2078
2151
 
2079
2152
 
2153
+ class GetJobResponseBodyJobInfoDeploymentPolicyTags(TeaModel):
2154
+ def __init__(
2155
+ self,
2156
+ tag_key: str = None,
2157
+ tag_value: str = None,
2158
+ ):
2159
+ self.tag_key = tag_key
2160
+ self.tag_value = tag_value
2161
+
2162
+ def validate(self):
2163
+ pass
2164
+
2165
+ def to_map(self):
2166
+ _map = super().to_map()
2167
+ if _map is not None:
2168
+ return _map
2169
+
2170
+ result = dict()
2171
+ if self.tag_key is not None:
2172
+ result['TagKey'] = self.tag_key
2173
+ if self.tag_value is not None:
2174
+ result['TagValue'] = self.tag_value
2175
+ return result
2176
+
2177
+ def from_map(self, m: dict = None):
2178
+ m = m or dict()
2179
+ if m.get('TagKey') is not None:
2180
+ self.tag_key = m.get('TagKey')
2181
+ if m.get('TagValue') is not None:
2182
+ self.tag_value = m.get('TagValue')
2183
+ return self
2184
+
2185
+
2080
2186
  class GetJobResponseBodyJobInfoDeploymentPolicy(TeaModel):
2081
2187
  def __init__(
2082
2188
  self,
2083
2189
  allocation_spec: str = None,
2084
2190
  network: GetJobResponseBodyJobInfoDeploymentPolicyNetwork = None,
2191
+ tags: List[GetJobResponseBodyJobInfoDeploymentPolicyTags] = None,
2085
2192
  ):
2086
2193
  self.allocation_spec = allocation_spec
2087
2194
  self.network = network
2195
+ self.tags = tags
2088
2196
 
2089
2197
  def validate(self):
2090
2198
  if self.network:
2091
2199
  self.network.validate()
2200
+ if self.tags:
2201
+ for k in self.tags:
2202
+ if k:
2203
+ k.validate()
2092
2204
 
2093
2205
  def to_map(self):
2094
2206
  _map = super().to_map()
@@ -2100,6 +2212,10 @@ class GetJobResponseBodyJobInfoDeploymentPolicy(TeaModel):
2100
2212
  result['AllocationSpec'] = self.allocation_spec
2101
2213
  if self.network is not None:
2102
2214
  result['Network'] = self.network.to_map()
2215
+ result['Tags'] = []
2216
+ if self.tags is not None:
2217
+ for k in self.tags:
2218
+ result['Tags'].append(k.to_map() if k else None)
2103
2219
  return result
2104
2220
 
2105
2221
  def from_map(self, m: dict = None):
@@ -2109,6 +2225,11 @@ class GetJobResponseBodyJobInfoDeploymentPolicy(TeaModel):
2109
2225
  if m.get('Network') is not None:
2110
2226
  temp_model = GetJobResponseBodyJobInfoDeploymentPolicyNetwork()
2111
2227
  self.network = temp_model.from_map(m['Network'])
2228
+ self.tags = []
2229
+ if m.get('Tags') is not None:
2230
+ for k in m.get('Tags'):
2231
+ temp_model = GetJobResponseBodyJobInfoDeploymentPolicyTags()
2232
+ self.tags.append(temp_model.from_map(k))
2112
2233
  return self
2113
2234
 
2114
2235
 
@@ -2674,12 +2795,14 @@ class ListExecutorsRequestFilter(TeaModel):
2674
2795
  executor_ids: List[str] = None,
2675
2796
  ip_addresses: List[str] = None,
2676
2797
  job_name: str = None,
2798
+ status: List[str] = None,
2677
2799
  time_created_after: int = None,
2678
2800
  time_created_before: int = None,
2679
2801
  ):
2680
2802
  self.executor_ids = executor_ids
2681
2803
  self.ip_addresses = ip_addresses
2682
2804
  self.job_name = job_name
2805
+ self.status = status
2683
2806
  self.time_created_after = time_created_after
2684
2807
  self.time_created_before = time_created_before
2685
2808
 
@@ -2698,6 +2821,8 @@ class ListExecutorsRequestFilter(TeaModel):
2698
2821
  result['IpAddresses'] = self.ip_addresses
2699
2822
  if self.job_name is not None:
2700
2823
  result['JobName'] = self.job_name
2824
+ if self.status is not None:
2825
+ result['Status'] = self.status
2701
2826
  if self.time_created_after is not None:
2702
2827
  result['TimeCreatedAfter'] = self.time_created_after
2703
2828
  if self.time_created_before is not None:
@@ -2712,6 +2837,8 @@ class ListExecutorsRequestFilter(TeaModel):
2712
2837
  self.ip_addresses = m.get('IpAddresses')
2713
2838
  if m.get('JobName') is not None:
2714
2839
  self.job_name = m.get('JobName')
2840
+ if m.get('Status') is not None:
2841
+ self.status = m.get('Status')
2715
2842
  if m.get('TimeCreatedAfter') is not None:
2716
2843
  self.time_created_after = m.get('TimeCreatedAfter')
2717
2844
  if m.get('TimeCreatedBefore') is not None:
@@ -2799,6 +2926,119 @@ class ListExecutorsShrinkRequest(TeaModel):
2799
2926
  return self
2800
2927
 
2801
2928
 
2929
+ class ListExecutorsResponseBodyExecutorsResourceDisks(TeaModel):
2930
+ def __init__(
2931
+ self,
2932
+ size: int = None,
2933
+ type: str = None,
2934
+ ):
2935
+ self.size = size
2936
+ self.type = type
2937
+
2938
+ def validate(self):
2939
+ pass
2940
+
2941
+ def to_map(self):
2942
+ _map = super().to_map()
2943
+ if _map is not None:
2944
+ return _map
2945
+
2946
+ result = dict()
2947
+ if self.size is not None:
2948
+ result['Size'] = self.size
2949
+ if self.type is not None:
2950
+ result['Type'] = self.type
2951
+ return result
2952
+
2953
+ def from_map(self, m: dict = None):
2954
+ m = m or dict()
2955
+ if m.get('Size') is not None:
2956
+ self.size = m.get('Size')
2957
+ if m.get('Type') is not None:
2958
+ self.type = m.get('Type')
2959
+ return self
2960
+
2961
+
2962
+ class ListExecutorsResponseBodyExecutorsResource(TeaModel):
2963
+ def __init__(
2964
+ self,
2965
+ cores: float = None,
2966
+ disks: List[ListExecutorsResponseBodyExecutorsResourceDisks] = None,
2967
+ memory: float = None,
2968
+ ):
2969
+ self.cores = cores
2970
+ self.disks = disks
2971
+ self.memory = memory
2972
+
2973
+ def validate(self):
2974
+ if self.disks:
2975
+ for k in self.disks:
2976
+ if k:
2977
+ k.validate()
2978
+
2979
+ def to_map(self):
2980
+ _map = super().to_map()
2981
+ if _map is not None:
2982
+ return _map
2983
+
2984
+ result = dict()
2985
+ if self.cores is not None:
2986
+ result['Cores'] = self.cores
2987
+ result['Disks'] = []
2988
+ if self.disks is not None:
2989
+ for k in self.disks:
2990
+ result['Disks'].append(k.to_map() if k else None)
2991
+ if self.memory is not None:
2992
+ result['Memory'] = self.memory
2993
+ return result
2994
+
2995
+ def from_map(self, m: dict = None):
2996
+ m = m or dict()
2997
+ if m.get('Cores') is not None:
2998
+ self.cores = m.get('Cores')
2999
+ self.disks = []
3000
+ if m.get('Disks') is not None:
3001
+ for k in m.get('Disks'):
3002
+ temp_model = ListExecutorsResponseBodyExecutorsResourceDisks()
3003
+ self.disks.append(temp_model.from_map(k))
3004
+ if m.get('Memory') is not None:
3005
+ self.memory = m.get('Memory')
3006
+ return self
3007
+
3008
+
3009
+ class ListExecutorsResponseBodyExecutorsTags(TeaModel):
3010
+ def __init__(
3011
+ self,
3012
+ tag_key: str = None,
3013
+ tag_value: str = None,
3014
+ ):
3015
+ self.tag_key = tag_key
3016
+ self.tag_value = tag_value
3017
+
3018
+ def validate(self):
3019
+ pass
3020
+
3021
+ def to_map(self):
3022
+ _map = super().to_map()
3023
+ if _map is not None:
3024
+ return _map
3025
+
3026
+ result = dict()
3027
+ if self.tag_key is not None:
3028
+ result['TagKey'] = self.tag_key
3029
+ if self.tag_value is not None:
3030
+ result['TagValue'] = self.tag_value
3031
+ return result
3032
+
3033
+ def from_map(self, m: dict = None):
3034
+ m = m or dict()
3035
+ if m.get('TagKey') is not None:
3036
+ self.tag_key = m.get('TagKey')
3037
+ if m.get('TagValue') is not None:
3038
+ self.tag_value = m.get('TagValue')
3039
+ return self
3040
+
3041
+
2802
3042
  class ListExecutorsResponseBodyExecutors(TeaModel):
2803
3043
  def __init__(
2804
3044
  self,
@@ -2806,28 +3046,49 @@ class ListExecutorsResponseBodyExecutors(TeaModel):
2806
3046
  create_time: str = None,
2807
3047
  end_time: str = None,
2808
3048
  executor_id: str = None,
3049
+ external_ip_address: List[str] = None,
2809
3050
  host_name: List[str] = None,
3051
+ image: str = None,
2810
3052
  ip_address: List[str] = None,
2811
3053
  job_id: str = None,
2812
3054
  job_name: str = None,
3055
+ resource: ListExecutorsResponseBodyExecutorsResource = None,
3056
+ resource_type: str = None,
3057
+ start_time: str = None,
2813
3058
  status: str = None,
2814
3059
  status_reason: str = None,
3060
+ tags: List[ListExecutorsResponseBodyExecutorsTags] = None,
2815
3061
  task_name: str = None,
3062
+ task_sustainable: bool = None,
3063
+ vswitch_id: str = None,
2816
3064
  ):
2817
3065
  self.array_index = array_index
2818
3066
  self.create_time = create_time
2819
3067
  self.end_time = end_time
2820
3068
  self.executor_id = executor_id
3069
+ self.external_ip_address = external_ip_address
2821
3070
  self.host_name = host_name
3071
+ self.image = image
2822
3072
  self.ip_address = ip_address
2823
3073
  self.job_id = job_id
2824
3074
  self.job_name = job_name
3075
+ self.resource = resource
3076
+ self.resource_type = resource_type
3077
+ self.start_time = start_time
2825
3078
  self.status = status
2826
3079
  self.status_reason = status_reason
3080
+ self.tags = tags
2827
3081
  self.task_name = task_name
3082
+ self.task_sustainable = task_sustainable
3083
+ self.vswitch_id = vswitch_id
2828
3084
 
2829
3085
  def validate(self):
2830
- pass
3086
+ if self.resource:
3087
+ self.resource.validate()
3088
+ if self.tags:
3089
+ for k in self.tags:
3090
+ if k:
3091
+ k.validate()
2831
3092
 
2832
3093
  def to_map(self):
2833
3094
  _map = super().to_map()
@@ -2843,20 +3104,38 @@ class ListExecutorsResponseBodyExecutors(TeaModel):
2843
3104
  result['EndTime'] = self.end_time
2844
3105
  if self.executor_id is not None:
2845
3106
  result['ExecutorId'] = self.executor_id
3107
+ if self.external_ip_address is not None:
3108
+ result['ExternalIpAddress'] = self.external_ip_address
2846
3109
  if self.host_name is not None:
2847
3110
  result['HostName'] = self.host_name
3111
+ if self.image is not None:
3112
+ result['Image'] = self.image
2848
3113
  if self.ip_address is not None:
2849
3114
  result['IpAddress'] = self.ip_address
2850
3115
  if self.job_id is not None:
2851
3116
  result['JobId'] = self.job_id
2852
3117
  if self.job_name is not None:
2853
3118
  result['JobName'] = self.job_name
3119
+ if self.resource is not None:
3120
+ result['Resource'] = self.resource.to_map()
3121
+ if self.resource_type is not None:
3122
+ result['ResourceType'] = self.resource_type
3123
+ if self.start_time is not None:
3124
+ result['StartTime'] = self.start_time
2854
3125
  if self.status is not None:
2855
3126
  result['Status'] = self.status
2856
3127
  if self.status_reason is not None:
2857
3128
  result['StatusReason'] = self.status_reason
3129
+ result['Tags'] = []
3130
+ if self.tags is not None:
3131
+ for k in self.tags:
3132
+ result['Tags'].append(k.to_map() if k else None)
2858
3133
  if self.task_name is not None:
2859
3134
  result['TaskName'] = self.task_name
3135
+ if self.task_sustainable is not None:
3136
+ result['TaskSustainable'] = self.task_sustainable
3137
+ if self.vswitch_id is not None:
3138
+ result['VswitchId'] = self.vswitch_id
2860
3139
  return result
2861
3140
 
2862
3141
  def from_map(self, m: dict = None):
@@ -2869,20 +3148,40 @@ class ListExecutorsResponseBodyExecutors(TeaModel):
2869
3148
  self.end_time = m.get('EndTime')
2870
3149
  if m.get('ExecutorId') is not None:
2871
3150
  self.executor_id = m.get('ExecutorId')
3151
+ if m.get('ExternalIpAddress') is not None:
3152
+ self.external_ip_address = m.get('ExternalIpAddress')
2872
3153
  if m.get('HostName') is not None:
2873
3154
  self.host_name = m.get('HostName')
3155
+ if m.get('Image') is not None:
3156
+ self.image = m.get('Image')
2874
3157
  if m.get('IpAddress') is not None:
2875
3158
  self.ip_address = m.get('IpAddress')
2876
3159
  if m.get('JobId') is not None:
2877
3160
  self.job_id = m.get('JobId')
2878
3161
  if m.get('JobName') is not None:
2879
3162
  self.job_name = m.get('JobName')
3163
+ if m.get('Resource') is not None:
3164
+ temp_model = ListExecutorsResponseBodyExecutorsResource()
3165
+ self.resource = temp_model.from_map(m['Resource'])
3166
+ if m.get('ResourceType') is not None:
3167
+ self.resource_type = m.get('ResourceType')
3168
+ if m.get('StartTime') is not None:
3169
+ self.start_time = m.get('StartTime')
2880
3170
  if m.get('Status') is not None:
2881
3171
  self.status = m.get('Status')
2882
3172
  if m.get('StatusReason') is not None:
2883
3173
  self.status_reason = m.get('StatusReason')
3174
+ self.tags = []
3175
+ if m.get('Tags') is not None:
3176
+ for k in m.get('Tags'):
3177
+ temp_model = ListExecutorsResponseBodyExecutorsTags()
3178
+ self.tags.append(temp_model.from_map(k))
2884
3179
  if m.get('TaskName') is not None:
2885
3180
  self.task_name = m.get('TaskName')
3181
+ if m.get('TaskSustainable') is not None:
3182
+ self.task_sustainable = m.get('TaskSustainable')
3183
+ if m.get('VswitchId') is not None:
3184
+ self.vswitch_id = m.get('VswitchId')
2886
3185
  return self
2887
3186
 
2888
3187
 
@@ -3317,27 +3616,134 @@ class ListJobExecutorsRequest(TeaModel):
3317
3616
  return self
3318
3617
 
3319
3618
 
3619
+ class ListJobExecutorsResponseBodyExecutorStatus(TeaModel):
3620
+ def __init__(
3621
+ self,
3622
+ deleted: int = None,
3623
+ exception: int = None,
3624
+ failed: int = None,
3625
+ initing: int = None,
3626
+ pending: int = None,
3627
+ running: int = None,
3628
+ succeeded: int = None,
3629
+ ):
3630
+ self.deleted = deleted
3631
+ self.exception = exception
3632
+ self.failed = failed
3633
+ self.initing = initing
3634
+ self.pending = pending
3635
+ self.running = running
3636
+ self.succeeded = succeeded
3637
+
3638
+ def validate(self):
3639
+ pass
3640
+
3641
+ def to_map(self):
3642
+ _map = super().to_map()
3643
+ if _map is not None:
3644
+ return _map
3645
+
3646
+ result = dict()
3647
+ if self.deleted is not None:
3648
+ result['Deleted'] = self.deleted
3649
+ if self.exception is not None:
3650
+ result['Exception'] = self.exception
3651
+ if self.failed is not None:
3652
+ result['Failed'] = self.failed
3653
+ if self.initing is not None:
3654
+ result['Initing'] = self.initing
3655
+ if self.pending is not None:
3656
+ result['Pending'] = self.pending
3657
+ if self.running is not None:
3658
+ result['Running'] = self.running
3659
+ if self.succeeded is not None:
3660
+ result['Succeeded'] = self.succeeded
3661
+ return result
3662
+
3663
+ def from_map(self, m: dict = None):
3664
+ m = m or dict()
3665
+ if m.get('Deleted') is not None:
3666
+ self.deleted = m.get('Deleted')
3667
+ if m.get('Exception') is not None:
3668
+ self.exception = m.get('Exception')
3669
+ if m.get('Failed') is not None:
3670
+ self.failed = m.get('Failed')
3671
+ if m.get('Initing') is not None:
3672
+ self.initing = m.get('Initing')
3673
+ if m.get('Pending') is not None:
3674
+ self.pending = m.get('Pending')
3675
+ if m.get('Running') is not None:
3676
+ self.running = m.get('Running')
3677
+ if m.get('Succeeded') is not None:
3678
+ self.succeeded = m.get('Succeeded')
3679
+ return self
3680
+
3681
+
3682
+ class ListJobExecutorsResponseBodyExecutorsTags(TeaModel):
3683
+ def __init__(
3684
+ self,
3685
+ tag_key: str = None,
3686
+ tag_value: str = None,
3687
+ ):
3688
+ self.tag_key = tag_key
3689
+ self.tag_value = tag_value
3690
+
3691
+ def validate(self):
3692
+ pass
3693
+
3694
+ def to_map(self):
3695
+ _map = super().to_map()
3696
+ if _map is not None:
3697
+ return _map
3698
+
3699
+ result = dict()
3700
+ if self.tag_key is not None:
3701
+ result['TagKey'] = self.tag_key
3702
+ if self.tag_value is not None:
3703
+ result['TagValue'] = self.tag_value
3704
+ return result
3705
+
3706
+ def from_map(self, m: dict = None):
3707
+ m = m or dict()
3708
+ if m.get('TagKey') is not None:
3709
+ self.tag_key = m.get('TagKey')
3710
+ if m.get('TagValue') is not None:
3711
+ self.tag_value = m.get('TagValue')
3712
+ return self
3713
+
3714
+
3320
3715
  class ListJobExecutorsResponseBodyExecutors(TeaModel):
3321
3716
  def __init__(
3322
3717
  self,
3323
3718
  array_index: int = None,
3324
3719
  create_time: str = None,
3325
3720
  end_time: str = None,
3721
+ executor_id: str = None,
3722
+ external_ip_address: List[str] = None,
3326
3723
  host_name: List[str] = None,
3327
3724
  ip_address: List[str] = None,
3725
+ start_time: str = None,
3328
3726
  status: str = None,
3329
3727
  status_reason: str = None,
3728
+ tags: List[ListJobExecutorsResponseBodyExecutorsTags] = None,
3330
3729
  ):
3331
3730
  self.array_index = array_index
3332
3731
  self.create_time = create_time
3333
3732
  self.end_time = end_time
3733
+ self.executor_id = executor_id
3734
+ self.external_ip_address = external_ip_address
3334
3735
  self.host_name = host_name
3335
3736
  self.ip_address = ip_address
3737
+ self.start_time = start_time
3336
3738
  self.status = status
3337
3739
  self.status_reason = status_reason
3740
+ self.tags = tags
3338
3741
 
3339
3742
  def validate(self):
3340
- pass
3743
+ if self.tags:
3744
+ for k in self.tags:
3745
+ if k:
3746
+ k.validate()
3341
3747
 
3342
3748
  def to_map(self):
3343
3749
  _map = super().to_map()
@@ -3351,14 +3757,24 @@ class ListJobExecutorsResponseBodyExecutors(TeaModel):
3351
3757
  result['CreateTime'] = self.create_time
3352
3758
  if self.end_time is not None:
3353
3759
  result['EndTime'] = self.end_time
3760
+ if self.executor_id is not None:
3761
+ result['ExecutorId'] = self.executor_id
3762
+ if self.external_ip_address is not None:
3763
+ result['ExternalIpAddress'] = self.external_ip_address
3354
3764
  if self.host_name is not None:
3355
3765
  result['HostName'] = self.host_name
3356
3766
  if self.ip_address is not None:
3357
3767
  result['IpAddress'] = self.ip_address
3768
+ if self.start_time is not None:
3769
+ result['StartTime'] = self.start_time
3358
3770
  if self.status is not None:
3359
3771
  result['Status'] = self.status
3360
3772
  if self.status_reason is not None:
3361
3773
  result['StatusReason'] = self.status_reason
3774
+ result['Tags'] = []
3775
+ if self.tags is not None:
3776
+ for k in self.tags:
3777
+ result['Tags'].append(k.to_map() if k else None)
3362
3778
  return result
3363
3779
 
3364
3780
  def from_map(self, m: dict = None):
@@ -3369,20 +3785,32 @@ class ListJobExecutorsResponseBodyExecutors(TeaModel):
3369
3785
  self.create_time = m.get('CreateTime')
3370
3786
  if m.get('EndTime') is not None:
3371
3787
  self.end_time = m.get('EndTime')
3788
+ if m.get('ExecutorId') is not None:
3789
+ self.executor_id = m.get('ExecutorId')
3790
+ if m.get('ExternalIpAddress') is not None:
3791
+ self.external_ip_address = m.get('ExternalIpAddress')
3372
3792
  if m.get('HostName') is not None:
3373
3793
  self.host_name = m.get('HostName')
3374
3794
  if m.get('IpAddress') is not None:
3375
3795
  self.ip_address = m.get('IpAddress')
3796
+ if m.get('StartTime') is not None:
3797
+ self.start_time = m.get('StartTime')
3376
3798
  if m.get('Status') is not None:
3377
3799
  self.status = m.get('Status')
3378
3800
  if m.get('StatusReason') is not None:
3379
3801
  self.status_reason = m.get('StatusReason')
3802
+ self.tags = []
3803
+ if m.get('Tags') is not None:
3804
+ for k in m.get('Tags'):
3805
+ temp_model = ListJobExecutorsResponseBodyExecutorsTags()
3806
+ self.tags.append(temp_model.from_map(k))
3380
3807
  return self
3381
3808
 
3382
3809
 
3383
3810
  class ListJobExecutorsResponseBody(TeaModel):
3384
3811
  def __init__(
3385
3812
  self,
3813
+ executor_status: ListJobExecutorsResponseBodyExecutorStatus = None,
3386
3814
  executors: List[ListJobExecutorsResponseBodyExecutors] = None,
3387
3815
  job_id: str = None,
3388
3816
  page_number: str = None,
@@ -3391,6 +3819,7 @@ class ListJobExecutorsResponseBody(TeaModel):
3391
3819
  task_name: str = None,
3392
3820
  total_count: str = None,
3393
3821
  ):
3822
+ self.executor_status = executor_status
3394
3823
  self.executors = executors
3395
3824
  self.job_id = job_id
3396
3825
  self.page_number = page_number
@@ -3400,6 +3829,8 @@ class ListJobExecutorsResponseBody(TeaModel):
3400
3829
  self.total_count = total_count
3401
3830
 
3402
3831
  def validate(self):
3832
+ if self.executor_status:
3833
+ self.executor_status.validate()
3403
3834
  if self.executors:
3404
3835
  for k in self.executors:
3405
3836
  if k:
@@ -3411,6 +3842,8 @@ class ListJobExecutorsResponseBody(TeaModel):
3411
3842
  return _map
3412
3843
 
3413
3844
  result = dict()
3845
+ if self.executor_status is not None:
3846
+ result['ExecutorStatus'] = self.executor_status.to_map()
3414
3847
  result['Executors'] = []
3415
3848
  if self.executors is not None:
3416
3849
  for k in self.executors:
@@ -3431,6 +3864,9 @@ class ListJobExecutorsResponseBody(TeaModel):
3431
3864
 
3432
3865
  def from_map(self, m: dict = None):
3433
3866
  m = m or dict()
3867
+ if m.get('ExecutorStatus') is not None:
3868
+ temp_model = ListJobExecutorsResponseBodyExecutorStatus()
3869
+ self.executor_status = temp_model.from_map(m['ExecutorStatus'])
3434
3870
  self.executors = []
3435
3871
  if m.get('Executors') is not None:
3436
3872
  for k in m.get('Executors'):
@@ -3671,18 +4107,52 @@ class ListJobsShrinkRequest(TeaModel):
3671
4107
  return self
3672
4108
 
3673
4109
 
3674
- class ListJobsResponseBodyJobList(TeaModel):
4110
+ class ListJobsResponseBodyJobListTags(TeaModel):
3675
4111
  def __init__(
3676
4112
  self,
3677
- create_time: str = None,
3678
- end_time: str = None,
3679
- executor_count: int = None,
3680
- job_description: str = None,
4113
+ tag_key: str = None,
4114
+ tag_value: str = None,
4115
+ ):
4116
+ self.tag_key = tag_key
4117
+ self.tag_value = tag_value
4118
+
4119
+ def validate(self):
4120
+ pass
4121
+
4122
+ def to_map(self):
4123
+ _map = super().to_map()
4124
+ if _map is not None:
4125
+ return _map
4126
+
4127
+ result = dict()
4128
+ if self.tag_key is not None:
4129
+ result['TagKey'] = self.tag_key
4130
+ if self.tag_value is not None:
4131
+ result['TagValue'] = self.tag_value
4132
+ return result
4133
+
4134
+ def from_map(self, m: dict = None):
4135
+ m = m or dict()
4136
+ if m.get('TagKey') is not None:
4137
+ self.tag_key = m.get('TagKey')
4138
+ if m.get('TagValue') is not None:
4139
+ self.tag_value = m.get('TagValue')
4140
+ return self
4141
+
4142
+
4143
+ class ListJobsResponseBodyJobList(TeaModel):
4144
+ def __init__(
4145
+ self,
4146
+ create_time: str = None,
4147
+ end_time: str = None,
4148
+ executor_count: int = None,
4149
+ job_description: str = None,
3681
4150
  job_id: str = None,
3682
4151
  job_name: str = None,
3683
4152
  owner_uid: str = None,
3684
4153
  start_time: str = None,
3685
4154
  status: str = None,
4155
+ tags: List[ListJobsResponseBodyJobListTags] = None,
3686
4156
  task_count: int = None,
3687
4157
  task_sustainable: bool = None,
3688
4158
  ):
@@ -3695,11 +4165,15 @@ class ListJobsResponseBodyJobList(TeaModel):
3695
4165
  self.owner_uid = owner_uid
3696
4166
  self.start_time = start_time
3697
4167
  self.status = status
4168
+ self.tags = tags
3698
4169
  self.task_count = task_count
3699
4170
  self.task_sustainable = task_sustainable
3700
4171
 
3701
4172
  def validate(self):
3702
- pass
4173
+ if self.tags:
4174
+ for k in self.tags:
4175
+ if k:
4176
+ k.validate()
3703
4177
 
3704
4178
  def to_map(self):
3705
4179
  _map = super().to_map()
@@ -3725,6 +4199,10 @@ class ListJobsResponseBodyJobList(TeaModel):
3725
4199
  result['StartTime'] = self.start_time
3726
4200
  if self.status is not None:
3727
4201
  result['Status'] = self.status
4202
+ result['Tags'] = []
4203
+ if self.tags is not None:
4204
+ for k in self.tags:
4205
+ result['Tags'].append(k.to_map() if k else None)
3728
4206
  if self.task_count is not None:
3729
4207
  result['TaskCount'] = self.task_count
3730
4208
  if self.task_sustainable is not None:
@@ -3751,6 +4229,11 @@ class ListJobsResponseBodyJobList(TeaModel):
3751
4229
  self.start_time = m.get('StartTime')
3752
4230
  if m.get('Status') is not None:
3753
4231
  self.status = m.get('Status')
4232
+ self.tags = []
4233
+ if m.get('Tags') is not None:
4234
+ for k in m.get('Tags'):
4235
+ temp_model = ListJobsResponseBodyJobListTags()
4236
+ self.tags.append(temp_model.from_map(k))
3754
4237
  if m.get('TaskCount') is not None:
3755
4238
  self.task_count = m.get('TaskCount')
3756
4239
  if m.get('TaskSustainable') is not None:
@@ -3858,13 +4341,270 @@ class ListJobsResponse(TeaModel):
3858
4341
  return self
3859
4342
 
3860
4343
 
4344
+ class ListTagResourcesRequestTag(TeaModel):
4345
+ def __init__(
4346
+ self,
4347
+ key: str = None,
4348
+ value: str = None,
4349
+ ):
4350
+ self.key = key
4351
+ self.value = value
4352
+
4353
+ def validate(self):
4354
+ pass
4355
+
4356
+ def to_map(self):
4357
+ _map = super().to_map()
4358
+ if _map is not None:
4359
+ return _map
4360
+
4361
+ result = dict()
4362
+ if self.key is not None:
4363
+ result['Key'] = self.key
4364
+ if self.value is not None:
4365
+ result['Value'] = self.value
4366
+ return result
4367
+
4368
+ def from_map(self, m: dict = None):
4369
+ m = m or dict()
4370
+ if m.get('Key') is not None:
4371
+ self.key = m.get('Key')
4372
+ if m.get('Value') is not None:
4373
+ self.value = m.get('Value')
4374
+ return self
4375
+
4376
+
4377
+ class ListTagResourcesRequest(TeaModel):
4378
+ def __init__(
4379
+ self,
4380
+ max_result: int = None,
4381
+ next_token: str = None,
4382
+ resource_id: List[str] = None,
4383
+ resource_type: str = None,
4384
+ tag: List[ListTagResourcesRequestTag] = None,
4385
+ ):
4386
+ self.max_result = max_result
4387
+ self.next_token = next_token
4388
+ self.resource_id = resource_id
4389
+ # This parameter is required.
4390
+ self.resource_type = resource_type
4391
+ self.tag = tag
4392
+
4393
+ def validate(self):
4394
+ if self.tag:
4395
+ for k in self.tag:
4396
+ if k:
4397
+ k.validate()
4398
+
4399
+ def to_map(self):
4400
+ _map = super().to_map()
4401
+ if _map is not None:
4402
+ return _map
4403
+
4404
+ result = dict()
4405
+ if self.max_result is not None:
4406
+ result['MaxResult'] = self.max_result
4407
+ if self.next_token is not None:
4408
+ result['NextToken'] = self.next_token
4409
+ if self.resource_id is not None:
4410
+ result['ResourceId'] = self.resource_id
4411
+ if self.resource_type is not None:
4412
+ result['ResourceType'] = self.resource_type
4413
+ result['Tag'] = []
4414
+ if self.tag is not None:
4415
+ for k in self.tag:
4416
+ result['Tag'].append(k.to_map() if k else None)
4417
+ return result
4418
+
4419
+ def from_map(self, m: dict = None):
4420
+ m = m or dict()
4421
+ if m.get('MaxResult') is not None:
4422
+ self.max_result = m.get('MaxResult')
4423
+ if m.get('NextToken') is not None:
4424
+ self.next_token = m.get('NextToken')
4425
+ if m.get('ResourceId') is not None:
4426
+ self.resource_id = m.get('ResourceId')
4427
+ if m.get('ResourceType') is not None:
4428
+ self.resource_type = m.get('ResourceType')
4429
+ self.tag = []
4430
+ if m.get('Tag') is not None:
4431
+ for k in m.get('Tag'):
4432
+ temp_model = ListTagResourcesRequestTag()
4433
+ self.tag.append(temp_model.from_map(k))
4434
+ return self
4435
+
4436
+
4437
+ class ListTagResourcesResponseBodyTagResourcesTagResource(TeaModel):
4438
+ def __init__(
4439
+ self,
4440
+ resource_id: str = None,
4441
+ resource_type: str = None,
4442
+ tag_key: str = None,
4443
+ tag_value: str = None,
4444
+ ):
4445
+ self.resource_id = resource_id
4446
+ self.resource_type = resource_type
4447
+ self.tag_key = tag_key
4448
+ self.tag_value = tag_value
4449
+
4450
+ def validate(self):
4451
+ pass
4452
+
4453
+ def to_map(self):
4454
+ _map = super().to_map()
4455
+ if _map is not None:
4456
+ return _map
4457
+
4458
+ result = dict()
4459
+ if self.resource_id is not None:
4460
+ result['ResourceId'] = self.resource_id
4461
+ if self.resource_type is not None:
4462
+ result['ResourceType'] = self.resource_type
4463
+ if self.tag_key is not None:
4464
+ result['TagKey'] = self.tag_key
4465
+ if self.tag_value is not None:
4466
+ result['TagValue'] = self.tag_value
4467
+ return result
4468
+
4469
+ def from_map(self, m: dict = None):
4470
+ m = m or dict()
4471
+ if m.get('ResourceId') is not None:
4472
+ self.resource_id = m.get('ResourceId')
4473
+ if m.get('ResourceType') is not None:
4474
+ self.resource_type = m.get('ResourceType')
4475
+ if m.get('TagKey') is not None:
4476
+ self.tag_key = m.get('TagKey')
4477
+ if m.get('TagValue') is not None:
4478
+ self.tag_value = m.get('TagValue')
4479
+ return self
4480
+
4481
+
4482
+ class ListTagResourcesResponseBodyTagResources(TeaModel):
4483
+ def __init__(
4484
+ self,
4485
+ tag_resource: List[ListTagResourcesResponseBodyTagResourcesTagResource] = None,
4486
+ ):
4487
+ self.tag_resource = tag_resource
4488
+
4489
+ def validate(self):
4490
+ if self.tag_resource:
4491
+ for k in self.tag_resource:
4492
+ if k:
4493
+ k.validate()
4494
+
4495
+ def to_map(self):
4496
+ _map = super().to_map()
4497
+ if _map is not None:
4498
+ return _map
4499
+
4500
+ result = dict()
4501
+ result['TagResource'] = []
4502
+ if self.tag_resource is not None:
4503
+ for k in self.tag_resource:
4504
+ result['TagResource'].append(k.to_map() if k else None)
4505
+ return result
4506
+
4507
+ def from_map(self, m: dict = None):
4508
+ m = m or dict()
4509
+ self.tag_resource = []
4510
+ if m.get('TagResource') is not None:
4511
+ for k in m.get('TagResource'):
4512
+ temp_model = ListTagResourcesResponseBodyTagResourcesTagResource()
4513
+ self.tag_resource.append(temp_model.from_map(k))
4514
+ return self
4515
+
4516
+
4517
+ class ListTagResourcesResponseBody(TeaModel):
4518
+ def __init__(
4519
+ self,
4520
+ next_token: str = None,
4521
+ request_id: str = None,
4522
+ tag_resources: ListTagResourcesResponseBodyTagResources = None,
4523
+ ):
4524
+ self.next_token = next_token
4525
+ self.request_id = request_id
4526
+ self.tag_resources = tag_resources
4527
+
4528
+ def validate(self):
4529
+ if self.tag_resources:
4530
+ self.tag_resources.validate()
4531
+
4532
+ def to_map(self):
4533
+ _map = super().to_map()
4534
+ if _map is not None:
4535
+ return _map
4536
+
4537
+ result = dict()
4538
+ if self.next_token is not None:
4539
+ result['NextToken'] = self.next_token
4540
+ if self.request_id is not None:
4541
+ result['RequestId'] = self.request_id
4542
+ if self.tag_resources is not None:
4543
+ result['TagResources'] = self.tag_resources.to_map()
4544
+ return result
4545
+
4546
+ def from_map(self, m: dict = None):
4547
+ m = m or dict()
4548
+ if m.get('NextToken') is not None:
4549
+ self.next_token = m.get('NextToken')
4550
+ if m.get('RequestId') is not None:
4551
+ self.request_id = m.get('RequestId')
4552
+ if m.get('TagResources') is not None:
4553
+ temp_model = ListTagResourcesResponseBodyTagResources()
4554
+ self.tag_resources = temp_model.from_map(m['TagResources'])
4555
+ return self
4556
+
4557
+
4558
+ class ListTagResourcesResponse(TeaModel):
4559
+ def __init__(
4560
+ self,
4561
+ headers: Dict[str, str] = None,
4562
+ status_code: int = None,
4563
+ body: ListTagResourcesResponseBody = None,
4564
+ ):
4565
+ self.headers = headers
4566
+ self.status_code = status_code
4567
+ self.body = body
4568
+
4569
+ def validate(self):
4570
+ if self.body:
4571
+ self.body.validate()
4572
+
4573
+ def to_map(self):
4574
+ _map = super().to_map()
4575
+ if _map is not None:
4576
+ return _map
4577
+
4578
+ result = dict()
4579
+ if self.headers is not None:
4580
+ result['headers'] = self.headers
4581
+ if self.status_code is not None:
4582
+ result['statusCode'] = self.status_code
4583
+ if self.body is not None:
4584
+ result['body'] = self.body.to_map()
4585
+ return result
4586
+
4587
+ def from_map(self, m: dict = None):
4588
+ m = m or dict()
4589
+ if m.get('headers') is not None:
4590
+ self.headers = m.get('headers')
4591
+ if m.get('statusCode') is not None:
4592
+ self.status_code = m.get('statusCode')
4593
+ if m.get('body') is not None:
4594
+ temp_model = ListTagResourcesResponseBody()
4595
+ self.body = temp_model.from_map(m['body'])
4596
+ return self
4597
+
4598
+
3861
4599
  class RemoveImageRequest(TeaModel):
3862
4600
  def __init__(
3863
4601
  self,
3864
4602
  image_id: str = None,
4603
+ image_type: str = None,
3865
4604
  ):
3866
4605
  # This parameter is required.
3867
4606
  self.image_id = image_id
4607
+ self.image_type = image_type
3868
4608
 
3869
4609
  def validate(self):
3870
4610
  pass
@@ -3877,12 +4617,16 @@ class RemoveImageRequest(TeaModel):
3877
4617
  result = dict()
3878
4618
  if self.image_id is not None:
3879
4619
  result['ImageId'] = self.image_id
4620
+ if self.image_type is not None:
4621
+ result['ImageType'] = self.image_type
3880
4622
  return result
3881
4623
 
3882
4624
  def from_map(self, m: dict = None):
3883
4625
  m = m or dict()
3884
4626
  if m.get('ImageId') is not None:
3885
4627
  self.image_id = m.get('ImageId')
4628
+ if m.get('ImageType') is not None:
4629
+ self.image_type = m.get('ImageType')
3886
4630
  return self
3887
4631
 
3888
4632
 
@@ -3960,3 +4704,270 @@ class RemoveImageResponse(TeaModel):
3960
4704
  return self
3961
4705
 
3962
4706
 
4707
+ class TagResourcesRequestTag(TeaModel):
4708
+ def __init__(
4709
+ self,
4710
+ key: str = None,
4711
+ value: str = None,
4712
+ ):
4713
+ # This parameter is required.
4714
+ self.key = key
4715
+ self.value = value
4716
+
4717
+ def validate(self):
4718
+ pass
4719
+
4720
+ def to_map(self):
4721
+ _map = super().to_map()
4722
+ if _map is not None:
4723
+ return _map
4724
+
4725
+ result = dict()
4726
+ if self.key is not None:
4727
+ result['Key'] = self.key
4728
+ if self.value is not None:
4729
+ result['Value'] = self.value
4730
+ return result
4731
+
4732
+ def from_map(self, m: dict = None):
4733
+ m = m or dict()
4734
+ if m.get('Key') is not None:
4735
+ self.key = m.get('Key')
4736
+ if m.get('Value') is not None:
4737
+ self.value = m.get('Value')
4738
+ return self
4739
+
4740
+
4741
+ class TagResourcesRequest(TeaModel):
4742
+ def __init__(
4743
+ self,
4744
+ resource_id: List[str] = None,
4745
+ resource_type: str = None,
4746
+ tag: List[TagResourcesRequestTag] = None,
4747
+ ):
4748
+ # This parameter is required.
4749
+ self.resource_id = resource_id
4750
+ # This parameter is required.
4751
+ self.resource_type = resource_type
4752
+ # This parameter is required.
4753
+ self.tag = tag
4754
+
4755
+ def validate(self):
4756
+ if self.tag:
4757
+ for k in self.tag:
4758
+ if k:
4759
+ k.validate()
4760
+
4761
+ def to_map(self):
4762
+ _map = super().to_map()
4763
+ if _map is not None:
4764
+ return _map
4765
+
4766
+ result = dict()
4767
+ if self.resource_id is not None:
4768
+ result['ResourceId'] = self.resource_id
4769
+ if self.resource_type is not None:
4770
+ result['ResourceType'] = self.resource_type
4771
+ result['Tag'] = []
4772
+ if self.tag is not None:
4773
+ for k in self.tag:
4774
+ result['Tag'].append(k.to_map() if k else None)
4775
+ return result
4776
+
4777
+ def from_map(self, m: dict = None):
4778
+ m = m or dict()
4779
+ if m.get('ResourceId') is not None:
4780
+ self.resource_id = m.get('ResourceId')
4781
+ if m.get('ResourceType') is not None:
4782
+ self.resource_type = m.get('ResourceType')
4783
+ self.tag = []
4784
+ if m.get('Tag') is not None:
4785
+ for k in m.get('Tag'):
4786
+ temp_model = TagResourcesRequestTag()
4787
+ self.tag.append(temp_model.from_map(k))
4788
+ return self
4789
+
4790
+
4791
+ class TagResourcesResponseBody(TeaModel):
4792
+ def __init__(
4793
+ self,
4794
+ request_id: str = None,
4795
+ ):
4796
+ self.request_id = request_id
4797
+
4798
+ def validate(self):
4799
+ pass
4800
+
4801
+ def to_map(self):
4802
+ _map = super().to_map()
4803
+ if _map is not None:
4804
+ return _map
4805
+
4806
+ result = dict()
4807
+ if self.request_id is not None:
4808
+ result['RequestId'] = self.request_id
4809
+ return result
4810
+
4811
+ def from_map(self, m: dict = None):
4812
+ m = m or dict()
4813
+ if m.get('RequestId') is not None:
4814
+ self.request_id = m.get('RequestId')
4815
+ return self
4816
+
4817
+
4818
+ class TagResourcesResponse(TeaModel):
4819
+ def __init__(
4820
+ self,
4821
+ headers: Dict[str, str] = None,
4822
+ status_code: int = None,
4823
+ body: TagResourcesResponseBody = None,
4824
+ ):
4825
+ self.headers = headers
4826
+ self.status_code = status_code
4827
+ self.body = body
4828
+
4829
+ def validate(self):
4830
+ if self.body:
4831
+ self.body.validate()
4832
+
4833
+ def to_map(self):
4834
+ _map = super().to_map()
4835
+ if _map is not None:
4836
+ return _map
4837
+
4838
+ result = dict()
4839
+ if self.headers is not None:
4840
+ result['headers'] = self.headers
4841
+ if self.status_code is not None:
4842
+ result['statusCode'] = self.status_code
4843
+ if self.body is not None:
4844
+ result['body'] = self.body.to_map()
4845
+ return result
4846
+
4847
+ def from_map(self, m: dict = None):
4848
+ m = m or dict()
4849
+ if m.get('headers') is not None:
4850
+ self.headers = m.get('headers')
4851
+ if m.get('statusCode') is not None:
4852
+ self.status_code = m.get('statusCode')
4853
+ if m.get('body') is not None:
4854
+ temp_model = TagResourcesResponseBody()
4855
+ self.body = temp_model.from_map(m['body'])
4856
+ return self
4857
+
4858
+
4859
+ class UnTagResourcesRequest(TeaModel):
4860
+ def __init__(
4861
+ self,
4862
+ all: bool = None,
4863
+ resource_id: List[str] = None,
4864
+ resource_type: str = None,
4865
+ tag_key: List[str] = None,
4866
+ ):
4867
+ self.all = all
4868
+ # This parameter is required.
4869
+ self.resource_id = resource_id
4870
+ # This parameter is required.
4871
+ self.resource_type = resource_type
4872
+ self.tag_key = tag_key
4873
+
4874
+ def validate(self):
4875
+ pass
4876
+
4877
+ def to_map(self):
4878
+ _map = super().to_map()
4879
+ if _map is not None:
4880
+ return _map
4881
+
4882
+ result = dict()
4883
+ if self.all is not None:
4884
+ result['All'] = self.all
4885
+ if self.resource_id is not None:
4886
+ result['ResourceId'] = self.resource_id
4887
+ if self.resource_type is not None:
4888
+ result['ResourceType'] = self.resource_type
4889
+ if self.tag_key is not None:
4890
+ result['TagKey'] = self.tag_key
4891
+ return result
4892
+
4893
+ def from_map(self, m: dict = None):
4894
+ m = m or dict()
4895
+ if m.get('All') is not None:
4896
+ self.all = m.get('All')
4897
+ if m.get('ResourceId') is not None:
4898
+ self.resource_id = m.get('ResourceId')
4899
+ if m.get('ResourceType') is not None:
4900
+ self.resource_type = m.get('ResourceType')
4901
+ if m.get('TagKey') is not None:
4902
+ self.tag_key = m.get('TagKey')
4903
+ return self
4904
+
4905
+
4906
+ class UnTagResourcesResponseBody(TeaModel):
4907
+ def __init__(
4908
+ self,
4909
+ request_id: str = None,
4910
+ ):
4911
+ self.request_id = request_id
4912
+
4913
+ def validate(self):
4914
+ pass
4915
+
4916
+ def to_map(self):
4917
+ _map = super().to_map()
4918
+ if _map is not None:
4919
+ return _map
4920
+
4921
+ result = dict()
4922
+ if self.request_id is not None:
4923
+ result['RequestId'] = self.request_id
4924
+ return result
4925
+
4926
+ def from_map(self, m: dict = None):
4927
+ m = m or dict()
4928
+ if m.get('RequestId') is not None:
4929
+ self.request_id = m.get('RequestId')
4930
+ return self
4931
+
4932
+
4933
+ class UnTagResourcesResponse(TeaModel):
4934
+ def __init__(
4935
+ self,
4936
+ headers: Dict[str, str] = None,
4937
+ status_code: int = None,
4938
+ body: UnTagResourcesResponseBody = None,
4939
+ ):
4940
+ self.headers = headers
4941
+ self.status_code = status_code
4942
+ self.body = body
4943
+
4944
+ def validate(self):
4945
+ if self.body:
4946
+ self.body.validate()
4947
+
4948
+ def to_map(self):
4949
+ _map = super().to_map()
4950
+ if _map is not None:
4951
+ return _map
4952
+
4953
+ result = dict()
4954
+ if self.headers is not None:
4955
+ result['headers'] = self.headers
4956
+ if self.status_code is not None:
4957
+ result['statusCode'] = self.status_code
4958
+ if self.body is not None:
4959
+ result['body'] = self.body.to_map()
4960
+ return result
4961
+
4962
+ def from_map(self, m: dict = None):
4963
+ m = m or dict()
4964
+ if m.get('headers') is not None:
4965
+ self.headers = m.get('headers')
4966
+ if m.get('statusCode') is not None:
4967
+ self.status_code = m.get('statusCode')
4968
+ if m.get('body') is not None:
4969
+ temp_model = UnTagResourcesResponseBody()
4970
+ self.body = temp_model.from_map(m['body'])
4971
+ return self
4972
+
4973
+