alibabacloud-ehpcinstant20230701 1.0.4__py3-none-any.whl → 1.1.1__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,30 +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,
2810
3051
  image: str = None,
2811
3052
  ip_address: List[str] = None,
2812
3053
  job_id: str = None,
2813
3054
  job_name: str = None,
3055
+ resource: ListExecutorsResponseBodyExecutorsResource = None,
3056
+ resource_type: str = None,
3057
+ start_time: str = None,
2814
3058
  status: str = None,
2815
3059
  status_reason: str = None,
3060
+ tags: List[ListExecutorsResponseBodyExecutorsTags] = None,
2816
3061
  task_name: str = None,
3062
+ task_sustainable: bool = None,
3063
+ vswitch_id: str = None,
2817
3064
  ):
2818
3065
  self.array_index = array_index
2819
3066
  self.create_time = create_time
2820
3067
  self.end_time = end_time
2821
3068
  self.executor_id = executor_id
3069
+ self.external_ip_address = external_ip_address
2822
3070
  self.host_name = host_name
2823
3071
  self.image = image
2824
3072
  self.ip_address = ip_address
2825
3073
  self.job_id = job_id
2826
3074
  self.job_name = job_name
3075
+ self.resource = resource
3076
+ self.resource_type = resource_type
3077
+ self.start_time = start_time
2827
3078
  self.status = status
2828
3079
  self.status_reason = status_reason
3080
+ self.tags = tags
2829
3081
  self.task_name = task_name
3082
+ self.task_sustainable = task_sustainable
3083
+ self.vswitch_id = vswitch_id
2830
3084
 
2831
3085
  def validate(self):
2832
- 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()
2833
3092
 
2834
3093
  def to_map(self):
2835
3094
  _map = super().to_map()
@@ -2845,6 +3104,8 @@ class ListExecutorsResponseBodyExecutors(TeaModel):
2845
3104
  result['EndTime'] = self.end_time
2846
3105
  if self.executor_id is not None:
2847
3106
  result['ExecutorId'] = self.executor_id
3107
+ if self.external_ip_address is not None:
3108
+ result['ExternalIpAddress'] = self.external_ip_address
2848
3109
  if self.host_name is not None:
2849
3110
  result['HostName'] = self.host_name
2850
3111
  if self.image is not None:
@@ -2855,12 +3116,26 @@ class ListExecutorsResponseBodyExecutors(TeaModel):
2855
3116
  result['JobId'] = self.job_id
2856
3117
  if self.job_name is not None:
2857
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
2858
3125
  if self.status is not None:
2859
3126
  result['Status'] = self.status
2860
3127
  if self.status_reason is not None:
2861
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)
2862
3133
  if self.task_name is not None:
2863
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
2864
3139
  return result
2865
3140
 
2866
3141
  def from_map(self, m: dict = None):
@@ -2873,6 +3148,8 @@ class ListExecutorsResponseBodyExecutors(TeaModel):
2873
3148
  self.end_time = m.get('EndTime')
2874
3149
  if m.get('ExecutorId') is not None:
2875
3150
  self.executor_id = m.get('ExecutorId')
3151
+ if m.get('ExternalIpAddress') is not None:
3152
+ self.external_ip_address = m.get('ExternalIpAddress')
2876
3153
  if m.get('HostName') is not None:
2877
3154
  self.host_name = m.get('HostName')
2878
3155
  if m.get('Image') is not None:
@@ -2883,12 +3160,28 @@ class ListExecutorsResponseBodyExecutors(TeaModel):
2883
3160
  self.job_id = m.get('JobId')
2884
3161
  if m.get('JobName') is not None:
2885
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')
2886
3170
  if m.get('Status') is not None:
2887
3171
  self.status = m.get('Status')
2888
3172
  if m.get('StatusReason') is not None:
2889
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))
2890
3179
  if m.get('TaskName') is not None:
2891
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')
2892
3185
  return self
2893
3186
 
2894
3187
 
@@ -3115,6 +3408,7 @@ class ListImagesResponseBodyImages(TeaModel):
3115
3408
  image_id: str = None,
3116
3409
  image_type: str = None,
3117
3410
  name: str = None,
3411
+ os_tag: str = None,
3118
3412
  version: str = None,
3119
3413
  ):
3120
3414
  # This parameter is required.
@@ -3126,6 +3420,7 @@ class ListImagesResponseBodyImages(TeaModel):
3126
3420
  # This parameter is required.
3127
3421
  self.image_type = image_type
3128
3422
  self.name = name
3423
+ self.os_tag = os_tag
3129
3424
  self.version = version
3130
3425
 
3131
3426
  def validate(self):
@@ -3149,6 +3444,8 @@ class ListImagesResponseBodyImages(TeaModel):
3149
3444
  result['ImageType'] = self.image_type
3150
3445
  if self.name is not None:
3151
3446
  result['Name'] = self.name
3447
+ if self.os_tag is not None:
3448
+ result['OsTag'] = self.os_tag
3152
3449
  if self.version is not None:
3153
3450
  result['Version'] = self.version
3154
3451
  return result
@@ -3167,6 +3464,8 @@ class ListImagesResponseBodyImages(TeaModel):
3167
3464
  self.image_type = m.get('ImageType')
3168
3465
  if m.get('Name') is not None:
3169
3466
  self.name = m.get('Name')
3467
+ if m.get('OsTag') is not None:
3468
+ self.os_tag = m.get('OsTag')
3170
3469
  if m.get('Version') is not None:
3171
3470
  self.version = m.get('Version')
3172
3471
  return self
@@ -3386,6 +3685,39 @@ class ListJobExecutorsResponseBodyExecutorStatus(TeaModel):
3386
3685
  return self
3387
3686
 
3388
3687
 
3688
+ class ListJobExecutorsResponseBodyExecutorsTags(TeaModel):
3689
+ def __init__(
3690
+ self,
3691
+ tag_key: str = None,
3692
+ tag_value: str = None,
3693
+ ):
3694
+ self.tag_key = tag_key
3695
+ self.tag_value = tag_value
3696
+
3697
+ def validate(self):
3698
+ pass
3699
+
3700
+ def to_map(self):
3701
+ _map = super().to_map()
3702
+ if _map is not None:
3703
+ return _map
3704
+
3705
+ result = dict()
3706
+ if self.tag_key is not None:
3707
+ result['TagKey'] = self.tag_key
3708
+ if self.tag_value is not None:
3709
+ result['TagValue'] = self.tag_value
3710
+ return result
3711
+
3712
+ def from_map(self, m: dict = None):
3713
+ m = m or dict()
3714
+ if m.get('TagKey') is not None:
3715
+ self.tag_key = m.get('TagKey')
3716
+ if m.get('TagValue') is not None:
3717
+ self.tag_value = m.get('TagValue')
3718
+ return self
3719
+
3720
+
3389
3721
  class ListJobExecutorsResponseBodyExecutors(TeaModel):
3390
3722
  def __init__(
3391
3723
  self,
@@ -3393,22 +3725,31 @@ class ListJobExecutorsResponseBodyExecutors(TeaModel):
3393
3725
  create_time: str = None,
3394
3726
  end_time: str = None,
3395
3727
  executor_id: str = None,
3728
+ external_ip_address: List[str] = None,
3396
3729
  host_name: List[str] = None,
3397
3730
  ip_address: List[str] = None,
3731
+ start_time: str = None,
3398
3732
  status: str = None,
3399
3733
  status_reason: str = None,
3734
+ tags: List[ListJobExecutorsResponseBodyExecutorsTags] = None,
3400
3735
  ):
3401
3736
  self.array_index = array_index
3402
3737
  self.create_time = create_time
3403
3738
  self.end_time = end_time
3404
3739
  self.executor_id = executor_id
3740
+ self.external_ip_address = external_ip_address
3405
3741
  self.host_name = host_name
3406
3742
  self.ip_address = ip_address
3743
+ self.start_time = start_time
3407
3744
  self.status = status
3408
3745
  self.status_reason = status_reason
3746
+ self.tags = tags
3409
3747
 
3410
3748
  def validate(self):
3411
- pass
3749
+ if self.tags:
3750
+ for k in self.tags:
3751
+ if k:
3752
+ k.validate()
3412
3753
 
3413
3754
  def to_map(self):
3414
3755
  _map = super().to_map()
@@ -3424,14 +3765,22 @@ class ListJobExecutorsResponseBodyExecutors(TeaModel):
3424
3765
  result['EndTime'] = self.end_time
3425
3766
  if self.executor_id is not None:
3426
3767
  result['ExecutorId'] = self.executor_id
3768
+ if self.external_ip_address is not None:
3769
+ result['ExternalIpAddress'] = self.external_ip_address
3427
3770
  if self.host_name is not None:
3428
3771
  result['HostName'] = self.host_name
3429
3772
  if self.ip_address is not None:
3430
3773
  result['IpAddress'] = self.ip_address
3774
+ if self.start_time is not None:
3775
+ result['StartTime'] = self.start_time
3431
3776
  if self.status is not None:
3432
3777
  result['Status'] = self.status
3433
3778
  if self.status_reason is not None:
3434
3779
  result['StatusReason'] = self.status_reason
3780
+ result['Tags'] = []
3781
+ if self.tags is not None:
3782
+ for k in self.tags:
3783
+ result['Tags'].append(k.to_map() if k else None)
3435
3784
  return result
3436
3785
 
3437
3786
  def from_map(self, m: dict = None):
@@ -3444,14 +3793,23 @@ class ListJobExecutorsResponseBodyExecutors(TeaModel):
3444
3793
  self.end_time = m.get('EndTime')
3445
3794
  if m.get('ExecutorId') is not None:
3446
3795
  self.executor_id = m.get('ExecutorId')
3796
+ if m.get('ExternalIpAddress') is not None:
3797
+ self.external_ip_address = m.get('ExternalIpAddress')
3447
3798
  if m.get('HostName') is not None:
3448
3799
  self.host_name = m.get('HostName')
3449
3800
  if m.get('IpAddress') is not None:
3450
3801
  self.ip_address = m.get('IpAddress')
3802
+ if m.get('StartTime') is not None:
3803
+ self.start_time = m.get('StartTime')
3451
3804
  if m.get('Status') is not None:
3452
3805
  self.status = m.get('Status')
3453
3806
  if m.get('StatusReason') is not None:
3454
3807
  self.status_reason = m.get('StatusReason')
3808
+ self.tags = []
3809
+ if m.get('Tags') is not None:
3810
+ for k in m.get('Tags'):
3811
+ temp_model = ListJobExecutorsResponseBodyExecutorsTags()
3812
+ self.tags.append(temp_model.from_map(k))
3455
3813
  return self
3456
3814
 
3457
3815
 
@@ -3755,6 +4113,39 @@ class ListJobsShrinkRequest(TeaModel):
3755
4113
  return self
3756
4114
 
3757
4115
 
4116
+ class ListJobsResponseBodyJobListTags(TeaModel):
4117
+ def __init__(
4118
+ self,
4119
+ tag_key: str = None,
4120
+ tag_value: str = None,
4121
+ ):
4122
+ self.tag_key = tag_key
4123
+ self.tag_value = tag_value
4124
+
4125
+ def validate(self):
4126
+ pass
4127
+
4128
+ def to_map(self):
4129
+ _map = super().to_map()
4130
+ if _map is not None:
4131
+ return _map
4132
+
4133
+ result = dict()
4134
+ if self.tag_key is not None:
4135
+ result['TagKey'] = self.tag_key
4136
+ if self.tag_value is not None:
4137
+ result['TagValue'] = self.tag_value
4138
+ return result
4139
+
4140
+ def from_map(self, m: dict = None):
4141
+ m = m or dict()
4142
+ if m.get('TagKey') is not None:
4143
+ self.tag_key = m.get('TagKey')
4144
+ if m.get('TagValue') is not None:
4145
+ self.tag_value = m.get('TagValue')
4146
+ return self
4147
+
4148
+
3758
4149
  class ListJobsResponseBodyJobList(TeaModel):
3759
4150
  def __init__(
3760
4151
  self,
@@ -3767,6 +4158,7 @@ class ListJobsResponseBodyJobList(TeaModel):
3767
4158
  owner_uid: str = None,
3768
4159
  start_time: str = None,
3769
4160
  status: str = None,
4161
+ tags: List[ListJobsResponseBodyJobListTags] = None,
3770
4162
  task_count: int = None,
3771
4163
  task_sustainable: bool = None,
3772
4164
  ):
@@ -3779,11 +4171,15 @@ class ListJobsResponseBodyJobList(TeaModel):
3779
4171
  self.owner_uid = owner_uid
3780
4172
  self.start_time = start_time
3781
4173
  self.status = status
4174
+ self.tags = tags
3782
4175
  self.task_count = task_count
3783
4176
  self.task_sustainable = task_sustainable
3784
4177
 
3785
4178
  def validate(self):
3786
- pass
4179
+ if self.tags:
4180
+ for k in self.tags:
4181
+ if k:
4182
+ k.validate()
3787
4183
 
3788
4184
  def to_map(self):
3789
4185
  _map = super().to_map()
@@ -3809,6 +4205,10 @@ class ListJobsResponseBodyJobList(TeaModel):
3809
4205
  result['StartTime'] = self.start_time
3810
4206
  if self.status is not None:
3811
4207
  result['Status'] = self.status
4208
+ result['Tags'] = []
4209
+ if self.tags is not None:
4210
+ for k in self.tags:
4211
+ result['Tags'].append(k.to_map() if k else None)
3812
4212
  if self.task_count is not None:
3813
4213
  result['TaskCount'] = self.task_count
3814
4214
  if self.task_sustainable is not None:
@@ -3835,6 +4235,11 @@ class ListJobsResponseBodyJobList(TeaModel):
3835
4235
  self.start_time = m.get('StartTime')
3836
4236
  if m.get('Status') is not None:
3837
4237
  self.status = m.get('Status')
4238
+ self.tags = []
4239
+ if m.get('Tags') is not None:
4240
+ for k in m.get('Tags'):
4241
+ temp_model = ListJobsResponseBodyJobListTags()
4242
+ self.tags.append(temp_model.from_map(k))
3838
4243
  if m.get('TaskCount') is not None:
3839
4244
  self.task_count = m.get('TaskCount')
3840
4245
  if m.get('TaskSustainable') is not None:
@@ -3942,13 +4347,14 @@ class ListJobsResponse(TeaModel):
3942
4347
  return self
3943
4348
 
3944
4349
 
3945
- class RemoveImageRequest(TeaModel):
4350
+ class ListTagResourcesRequestTag(TeaModel):
3946
4351
  def __init__(
3947
4352
  self,
3948
- image_id: str = None,
4353
+ key: str = None,
4354
+ value: str = None,
3949
4355
  ):
3950
- # This parameter is required.
3951
- self.image_id = image_id
4356
+ self.key = key
4357
+ self.value = value
3952
4358
 
3953
4359
  def validate(self):
3954
4360
  pass
@@ -3959,14 +4365,274 @@ class RemoveImageRequest(TeaModel):
3959
4365
  return _map
3960
4366
 
3961
4367
  result = dict()
3962
- if self.image_id is not None:
3963
- result['ImageId'] = self.image_id
4368
+ if self.key is not None:
4369
+ result['Key'] = self.key
4370
+ if self.value is not None:
4371
+ result['Value'] = self.value
3964
4372
  return result
3965
4373
 
3966
4374
  def from_map(self, m: dict = None):
3967
4375
  m = m or dict()
3968
- if m.get('ImageId') is not None:
3969
- self.image_id = m.get('ImageId')
4376
+ if m.get('Key') is not None:
4377
+ self.key = m.get('Key')
4378
+ if m.get('Value') is not None:
4379
+ self.value = m.get('Value')
4380
+ return self
4381
+
4382
+
4383
+ class ListTagResourcesRequest(TeaModel):
4384
+ def __init__(
4385
+ self,
4386
+ max_result: int = None,
4387
+ next_token: str = None,
4388
+ resource_id: List[str] = None,
4389
+ resource_type: str = None,
4390
+ tag: List[ListTagResourcesRequestTag] = None,
4391
+ ):
4392
+ self.max_result = max_result
4393
+ self.next_token = next_token
4394
+ self.resource_id = resource_id
4395
+ # This parameter is required.
4396
+ self.resource_type = resource_type
4397
+ self.tag = tag
4398
+
4399
+ def validate(self):
4400
+ if self.tag:
4401
+ for k in self.tag:
4402
+ if k:
4403
+ k.validate()
4404
+
4405
+ def to_map(self):
4406
+ _map = super().to_map()
4407
+ if _map is not None:
4408
+ return _map
4409
+
4410
+ result = dict()
4411
+ if self.max_result is not None:
4412
+ result['MaxResult'] = self.max_result
4413
+ if self.next_token is not None:
4414
+ result['NextToken'] = self.next_token
4415
+ if self.resource_id is not None:
4416
+ result['ResourceId'] = self.resource_id
4417
+ if self.resource_type is not None:
4418
+ result['ResourceType'] = self.resource_type
4419
+ result['Tag'] = []
4420
+ if self.tag is not None:
4421
+ for k in self.tag:
4422
+ result['Tag'].append(k.to_map() if k else None)
4423
+ return result
4424
+
4425
+ def from_map(self, m: dict = None):
4426
+ m = m or dict()
4427
+ if m.get('MaxResult') is not None:
4428
+ self.max_result = m.get('MaxResult')
4429
+ if m.get('NextToken') is not None:
4430
+ self.next_token = m.get('NextToken')
4431
+ if m.get('ResourceId') is not None:
4432
+ self.resource_id = m.get('ResourceId')
4433
+ if m.get('ResourceType') is not None:
4434
+ self.resource_type = m.get('ResourceType')
4435
+ self.tag = []
4436
+ if m.get('Tag') is not None:
4437
+ for k in m.get('Tag'):
4438
+ temp_model = ListTagResourcesRequestTag()
4439
+ self.tag.append(temp_model.from_map(k))
4440
+ return self
4441
+
4442
+
4443
+ class ListTagResourcesResponseBodyTagResourcesTagResource(TeaModel):
4444
+ def __init__(
4445
+ self,
4446
+ resource_id: str = None,
4447
+ resource_type: str = None,
4448
+ tag_key: str = None,
4449
+ tag_value: str = None,
4450
+ ):
4451
+ self.resource_id = resource_id
4452
+ self.resource_type = resource_type
4453
+ self.tag_key = tag_key
4454
+ self.tag_value = tag_value
4455
+
4456
+ def validate(self):
4457
+ pass
4458
+
4459
+ def to_map(self):
4460
+ _map = super().to_map()
4461
+ if _map is not None:
4462
+ return _map
4463
+
4464
+ result = dict()
4465
+ if self.resource_id is not None:
4466
+ result['ResourceId'] = self.resource_id
4467
+ if self.resource_type is not None:
4468
+ result['ResourceType'] = self.resource_type
4469
+ if self.tag_key is not None:
4470
+ result['TagKey'] = self.tag_key
4471
+ if self.tag_value is not None:
4472
+ result['TagValue'] = self.tag_value
4473
+ return result
4474
+
4475
+ def from_map(self, m: dict = None):
4476
+ m = m or dict()
4477
+ if m.get('ResourceId') is not None:
4478
+ self.resource_id = m.get('ResourceId')
4479
+ if m.get('ResourceType') is not None:
4480
+ self.resource_type = m.get('ResourceType')
4481
+ if m.get('TagKey') is not None:
4482
+ self.tag_key = m.get('TagKey')
4483
+ if m.get('TagValue') is not None:
4484
+ self.tag_value = m.get('TagValue')
4485
+ return self
4486
+
4487
+
4488
+ class ListTagResourcesResponseBodyTagResources(TeaModel):
4489
+ def __init__(
4490
+ self,
4491
+ tag_resource: List[ListTagResourcesResponseBodyTagResourcesTagResource] = None,
4492
+ ):
4493
+ self.tag_resource = tag_resource
4494
+
4495
+ def validate(self):
4496
+ if self.tag_resource:
4497
+ for k in self.tag_resource:
4498
+ if k:
4499
+ k.validate()
4500
+
4501
+ def to_map(self):
4502
+ _map = super().to_map()
4503
+ if _map is not None:
4504
+ return _map
4505
+
4506
+ result = dict()
4507
+ result['TagResource'] = []
4508
+ if self.tag_resource is not None:
4509
+ for k in self.tag_resource:
4510
+ result['TagResource'].append(k.to_map() if k else None)
4511
+ return result
4512
+
4513
+ def from_map(self, m: dict = None):
4514
+ m = m or dict()
4515
+ self.tag_resource = []
4516
+ if m.get('TagResource') is not None:
4517
+ for k in m.get('TagResource'):
4518
+ temp_model = ListTagResourcesResponseBodyTagResourcesTagResource()
4519
+ self.tag_resource.append(temp_model.from_map(k))
4520
+ return self
4521
+
4522
+
4523
+ class ListTagResourcesResponseBody(TeaModel):
4524
+ def __init__(
4525
+ self,
4526
+ next_token: str = None,
4527
+ request_id: str = None,
4528
+ tag_resources: ListTagResourcesResponseBodyTagResources = None,
4529
+ ):
4530
+ self.next_token = next_token
4531
+ self.request_id = request_id
4532
+ self.tag_resources = tag_resources
4533
+
4534
+ def validate(self):
4535
+ if self.tag_resources:
4536
+ self.tag_resources.validate()
4537
+
4538
+ def to_map(self):
4539
+ _map = super().to_map()
4540
+ if _map is not None:
4541
+ return _map
4542
+
4543
+ result = dict()
4544
+ if self.next_token is not None:
4545
+ result['NextToken'] = self.next_token
4546
+ if self.request_id is not None:
4547
+ result['RequestId'] = self.request_id
4548
+ if self.tag_resources is not None:
4549
+ result['TagResources'] = self.tag_resources.to_map()
4550
+ return result
4551
+
4552
+ def from_map(self, m: dict = None):
4553
+ m = m or dict()
4554
+ if m.get('NextToken') is not None:
4555
+ self.next_token = m.get('NextToken')
4556
+ if m.get('RequestId') is not None:
4557
+ self.request_id = m.get('RequestId')
4558
+ if m.get('TagResources') is not None:
4559
+ temp_model = ListTagResourcesResponseBodyTagResources()
4560
+ self.tag_resources = temp_model.from_map(m['TagResources'])
4561
+ return self
4562
+
4563
+
4564
+ class ListTagResourcesResponse(TeaModel):
4565
+ def __init__(
4566
+ self,
4567
+ headers: Dict[str, str] = None,
4568
+ status_code: int = None,
4569
+ body: ListTagResourcesResponseBody = None,
4570
+ ):
4571
+ self.headers = headers
4572
+ self.status_code = status_code
4573
+ self.body = body
4574
+
4575
+ def validate(self):
4576
+ if self.body:
4577
+ self.body.validate()
4578
+
4579
+ def to_map(self):
4580
+ _map = super().to_map()
4581
+ if _map is not None:
4582
+ return _map
4583
+
4584
+ result = dict()
4585
+ if self.headers is not None:
4586
+ result['headers'] = self.headers
4587
+ if self.status_code is not None:
4588
+ result['statusCode'] = self.status_code
4589
+ if self.body is not None:
4590
+ result['body'] = self.body.to_map()
4591
+ return result
4592
+
4593
+ def from_map(self, m: dict = None):
4594
+ m = m or dict()
4595
+ if m.get('headers') is not None:
4596
+ self.headers = m.get('headers')
4597
+ if m.get('statusCode') is not None:
4598
+ self.status_code = m.get('statusCode')
4599
+ if m.get('body') is not None:
4600
+ temp_model = ListTagResourcesResponseBody()
4601
+ self.body = temp_model.from_map(m['body'])
4602
+ return self
4603
+
4604
+
4605
+ class RemoveImageRequest(TeaModel):
4606
+ def __init__(
4607
+ self,
4608
+ image_id: str = None,
4609
+ image_type: str = None,
4610
+ ):
4611
+ # This parameter is required.
4612
+ self.image_id = image_id
4613
+ self.image_type = image_type
4614
+
4615
+ def validate(self):
4616
+ pass
4617
+
4618
+ def to_map(self):
4619
+ _map = super().to_map()
4620
+ if _map is not None:
4621
+ return _map
4622
+
4623
+ result = dict()
4624
+ if self.image_id is not None:
4625
+ result['ImageId'] = self.image_id
4626
+ if self.image_type is not None:
4627
+ result['ImageType'] = self.image_type
4628
+ return result
4629
+
4630
+ def from_map(self, m: dict = None):
4631
+ m = m or dict()
4632
+ if m.get('ImageId') is not None:
4633
+ self.image_id = m.get('ImageId')
4634
+ if m.get('ImageType') is not None:
4635
+ self.image_type = m.get('ImageType')
3970
4636
  return self
3971
4637
 
3972
4638
 
@@ -4044,3 +4710,270 @@ class RemoveImageResponse(TeaModel):
4044
4710
  return self
4045
4711
 
4046
4712
 
4713
+ class TagResourcesRequestTag(TeaModel):
4714
+ def __init__(
4715
+ self,
4716
+ key: str = None,
4717
+ value: str = None,
4718
+ ):
4719
+ # This parameter is required.
4720
+ self.key = key
4721
+ self.value = value
4722
+
4723
+ def validate(self):
4724
+ pass
4725
+
4726
+ def to_map(self):
4727
+ _map = super().to_map()
4728
+ if _map is not None:
4729
+ return _map
4730
+
4731
+ result = dict()
4732
+ if self.key is not None:
4733
+ result['Key'] = self.key
4734
+ if self.value is not None:
4735
+ result['Value'] = self.value
4736
+ return result
4737
+
4738
+ def from_map(self, m: dict = None):
4739
+ m = m or dict()
4740
+ if m.get('Key') is not None:
4741
+ self.key = m.get('Key')
4742
+ if m.get('Value') is not None:
4743
+ self.value = m.get('Value')
4744
+ return self
4745
+
4746
+
4747
+ class TagResourcesRequest(TeaModel):
4748
+ def __init__(
4749
+ self,
4750
+ resource_id: List[str] = None,
4751
+ resource_type: str = None,
4752
+ tag: List[TagResourcesRequestTag] = None,
4753
+ ):
4754
+ # This parameter is required.
4755
+ self.resource_id = resource_id
4756
+ # This parameter is required.
4757
+ self.resource_type = resource_type
4758
+ # This parameter is required.
4759
+ self.tag = tag
4760
+
4761
+ def validate(self):
4762
+ if self.tag:
4763
+ for k in self.tag:
4764
+ if k:
4765
+ k.validate()
4766
+
4767
+ def to_map(self):
4768
+ _map = super().to_map()
4769
+ if _map is not None:
4770
+ return _map
4771
+
4772
+ result = dict()
4773
+ if self.resource_id is not None:
4774
+ result['ResourceId'] = self.resource_id
4775
+ if self.resource_type is not None:
4776
+ result['ResourceType'] = self.resource_type
4777
+ result['Tag'] = []
4778
+ if self.tag is not None:
4779
+ for k in self.tag:
4780
+ result['Tag'].append(k.to_map() if k else None)
4781
+ return result
4782
+
4783
+ def from_map(self, m: dict = None):
4784
+ m = m or dict()
4785
+ if m.get('ResourceId') is not None:
4786
+ self.resource_id = m.get('ResourceId')
4787
+ if m.get('ResourceType') is not None:
4788
+ self.resource_type = m.get('ResourceType')
4789
+ self.tag = []
4790
+ if m.get('Tag') is not None:
4791
+ for k in m.get('Tag'):
4792
+ temp_model = TagResourcesRequestTag()
4793
+ self.tag.append(temp_model.from_map(k))
4794
+ return self
4795
+
4796
+
4797
+ class TagResourcesResponseBody(TeaModel):
4798
+ def __init__(
4799
+ self,
4800
+ request_id: str = None,
4801
+ ):
4802
+ self.request_id = request_id
4803
+
4804
+ def validate(self):
4805
+ pass
4806
+
4807
+ def to_map(self):
4808
+ _map = super().to_map()
4809
+ if _map is not None:
4810
+ return _map
4811
+
4812
+ result = dict()
4813
+ if self.request_id is not None:
4814
+ result['RequestId'] = self.request_id
4815
+ return result
4816
+
4817
+ def from_map(self, m: dict = None):
4818
+ m = m or dict()
4819
+ if m.get('RequestId') is not None:
4820
+ self.request_id = m.get('RequestId')
4821
+ return self
4822
+
4823
+
4824
+ class TagResourcesResponse(TeaModel):
4825
+ def __init__(
4826
+ self,
4827
+ headers: Dict[str, str] = None,
4828
+ status_code: int = None,
4829
+ body: TagResourcesResponseBody = None,
4830
+ ):
4831
+ self.headers = headers
4832
+ self.status_code = status_code
4833
+ self.body = body
4834
+
4835
+ def validate(self):
4836
+ if self.body:
4837
+ self.body.validate()
4838
+
4839
+ def to_map(self):
4840
+ _map = super().to_map()
4841
+ if _map is not None:
4842
+ return _map
4843
+
4844
+ result = dict()
4845
+ if self.headers is not None:
4846
+ result['headers'] = self.headers
4847
+ if self.status_code is not None:
4848
+ result['statusCode'] = self.status_code
4849
+ if self.body is not None:
4850
+ result['body'] = self.body.to_map()
4851
+ return result
4852
+
4853
+ def from_map(self, m: dict = None):
4854
+ m = m or dict()
4855
+ if m.get('headers') is not None:
4856
+ self.headers = m.get('headers')
4857
+ if m.get('statusCode') is not None:
4858
+ self.status_code = m.get('statusCode')
4859
+ if m.get('body') is not None:
4860
+ temp_model = TagResourcesResponseBody()
4861
+ self.body = temp_model.from_map(m['body'])
4862
+ return self
4863
+
4864
+
4865
+ class UnTagResourcesRequest(TeaModel):
4866
+ def __init__(
4867
+ self,
4868
+ all: bool = None,
4869
+ resource_id: List[str] = None,
4870
+ resource_type: str = None,
4871
+ tag_key: List[str] = None,
4872
+ ):
4873
+ self.all = all
4874
+ # This parameter is required.
4875
+ self.resource_id = resource_id
4876
+ # This parameter is required.
4877
+ self.resource_type = resource_type
4878
+ self.tag_key = tag_key
4879
+
4880
+ def validate(self):
4881
+ pass
4882
+
4883
+ def to_map(self):
4884
+ _map = super().to_map()
4885
+ if _map is not None:
4886
+ return _map
4887
+
4888
+ result = dict()
4889
+ if self.all is not None:
4890
+ result['All'] = self.all
4891
+ if self.resource_id is not None:
4892
+ result['ResourceId'] = self.resource_id
4893
+ if self.resource_type is not None:
4894
+ result['ResourceType'] = self.resource_type
4895
+ if self.tag_key is not None:
4896
+ result['TagKey'] = self.tag_key
4897
+ return result
4898
+
4899
+ def from_map(self, m: dict = None):
4900
+ m = m or dict()
4901
+ if m.get('All') is not None:
4902
+ self.all = m.get('All')
4903
+ if m.get('ResourceId') is not None:
4904
+ self.resource_id = m.get('ResourceId')
4905
+ if m.get('ResourceType') is not None:
4906
+ self.resource_type = m.get('ResourceType')
4907
+ if m.get('TagKey') is not None:
4908
+ self.tag_key = m.get('TagKey')
4909
+ return self
4910
+
4911
+
4912
+ class UnTagResourcesResponseBody(TeaModel):
4913
+ def __init__(
4914
+ self,
4915
+ request_id: str = None,
4916
+ ):
4917
+ self.request_id = request_id
4918
+
4919
+ def validate(self):
4920
+ pass
4921
+
4922
+ def to_map(self):
4923
+ _map = super().to_map()
4924
+ if _map is not None:
4925
+ return _map
4926
+
4927
+ result = dict()
4928
+ if self.request_id is not None:
4929
+ result['RequestId'] = self.request_id
4930
+ return result
4931
+
4932
+ def from_map(self, m: dict = None):
4933
+ m = m or dict()
4934
+ if m.get('RequestId') is not None:
4935
+ self.request_id = m.get('RequestId')
4936
+ return self
4937
+
4938
+
4939
+ class UnTagResourcesResponse(TeaModel):
4940
+ def __init__(
4941
+ self,
4942
+ headers: Dict[str, str] = None,
4943
+ status_code: int = None,
4944
+ body: UnTagResourcesResponseBody = None,
4945
+ ):
4946
+ self.headers = headers
4947
+ self.status_code = status_code
4948
+ self.body = body
4949
+
4950
+ def validate(self):
4951
+ if self.body:
4952
+ self.body.validate()
4953
+
4954
+ def to_map(self):
4955
+ _map = super().to_map()
4956
+ if _map is not None:
4957
+ return _map
4958
+
4959
+ result = dict()
4960
+ if self.headers is not None:
4961
+ result['headers'] = self.headers
4962
+ if self.status_code is not None:
4963
+ result['statusCode'] = self.status_code
4964
+ if self.body is not None:
4965
+ result['body'] = self.body.to_map()
4966
+ return result
4967
+
4968
+ def from_map(self, m: dict = None):
4969
+ m = m or dict()
4970
+ if m.get('headers') is not None:
4971
+ self.headers = m.get('headers')
4972
+ if m.get('statusCode') is not None:
4973
+ self.status_code = m.get('statusCode')
4974
+ if m.get('body') is not None:
4975
+ temp_model = UnTagResourcesResponseBody()
4976
+ self.body = temp_model.from_map(m['body'])
4977
+ return self
4978
+
4979
+