huaweicloudsdkgaussdbforopengauss 3.1.137__py2.py3-none-any.whl → 3.1.139__py2.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.
Files changed (24) hide show
  1. huaweicloudsdkgaussdbforopengauss/v3/__init__.py +15 -0
  2. huaweicloudsdkgaussdbforopengauss/v3/gaussdbforopengauss_async_client.py +350 -0
  3. huaweicloudsdkgaussdbforopengauss/v3/gaussdbforopengauss_client.py +350 -0
  4. huaweicloudsdkgaussdbforopengauss/v3/model/__init__.py +15 -0
  5. huaweicloudsdkgaussdbforopengauss/v3/model/cancel_schedule_task_request.py +143 -0
  6. huaweicloudsdkgaussdbforopengauss/v3/model/cancel_schedule_task_response.py +85 -0
  7. huaweicloudsdkgaussdbforopengauss/v3/model/create_schedule_task_request.py +140 -0
  8. huaweicloudsdkgaussdbforopengauss/v3/model/create_schedule_task_request_body.py +226 -0
  9. huaweicloudsdkgaussdbforopengauss/v3/model/create_schedule_task_response.py +116 -0
  10. huaweicloudsdkgaussdbforopengauss/v3/model/delete_schedule_task_request.py +143 -0
  11. huaweicloudsdkgaussdbforopengauss/v3/model/delete_schedule_task_response.py +85 -0
  12. huaweicloudsdkgaussdbforopengauss/v3/model/instance_detail.py +260 -0
  13. huaweicloudsdkgaussdbforopengauss/v3/model/instance_engine_detail.py +144 -0
  14. huaweicloudsdkgaussdbforopengauss/v3/model/instance_task_detail.py +173 -0
  15. huaweicloudsdkgaussdbforopengauss/v3/model/list_instance_engine_detail_request.py +173 -0
  16. huaweicloudsdkgaussdbforopengauss/v3/model/list_instance_engine_detail_response.py +145 -0
  17. huaweicloudsdkgaussdbforopengauss/v3/model/list_schedule_task_request.py +318 -0
  18. huaweicloudsdkgaussdbforopengauss/v3/model/list_schedule_task_response.py +145 -0
  19. huaweicloudsdkgaussdbforopengauss/v3/model/schedule_task_detail.py +318 -0
  20. {huaweicloudsdkgaussdbforopengauss-3.1.137.dist-info → huaweicloudsdkgaussdbforopengauss-3.1.139.dist-info}/METADATA +2 -2
  21. {huaweicloudsdkgaussdbforopengauss-3.1.137.dist-info → huaweicloudsdkgaussdbforopengauss-3.1.139.dist-info}/RECORD +24 -9
  22. {huaweicloudsdkgaussdbforopengauss-3.1.137.dist-info → huaweicloudsdkgaussdbforopengauss-3.1.139.dist-info}/LICENSE +0 -0
  23. {huaweicloudsdkgaussdbforopengauss-3.1.137.dist-info → huaweicloudsdkgaussdbforopengauss-3.1.139.dist-info}/WHEEL +0 -0
  24. {huaweicloudsdkgaussdbforopengauss-3.1.137.dist-info → huaweicloudsdkgaussdbforopengauss-3.1.139.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,173 @@
1
+ # coding: utf-8
2
+
3
+ import six
4
+
5
+ from huaweicloudsdkcore.utils.http_utils import sanitize_for_serialization
6
+
7
+
8
+ class ListInstanceEngineDetailRequest:
9
+
10
+ """
11
+ Attributes:
12
+ openapi_types (dict): The key is attribute name
13
+ and the value is attribute type.
14
+ attribute_map (dict): The key is attribute name
15
+ and the value is json key in definition.
16
+ """
17
+ sensitive_list = []
18
+
19
+ openapi_types = {
20
+ 'x_language': 'str',
21
+ 'offset': 'int',
22
+ 'limit': 'int'
23
+ }
24
+
25
+ attribute_map = {
26
+ 'x_language': 'X-Language',
27
+ 'offset': 'offset',
28
+ 'limit': 'limit'
29
+ }
30
+
31
+ def __init__(self, x_language=None, offset=None, limit=None):
32
+ """ListInstanceEngineDetailRequest
33
+
34
+ The model defined in huaweicloud sdk
35
+
36
+ :param x_language: 语言。
37
+ :type x_language: str
38
+ :param offset: 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。
39
+ :type offset: int
40
+ :param limit: 查询记录数。默认为100,不能为负数,最小值为1,最大值为100
41
+ :type limit: int
42
+ """
43
+
44
+
45
+
46
+ self._x_language = None
47
+ self._offset = None
48
+ self._limit = None
49
+ self.discriminator = None
50
+
51
+ if x_language is not None:
52
+ self.x_language = x_language
53
+ if offset is not None:
54
+ self.offset = offset
55
+ if limit is not None:
56
+ self.limit = limit
57
+
58
+ @property
59
+ def x_language(self):
60
+ """Gets the x_language of this ListInstanceEngineDetailRequest.
61
+
62
+ 语言。
63
+
64
+ :return: The x_language of this ListInstanceEngineDetailRequest.
65
+ :rtype: str
66
+ """
67
+ return self._x_language
68
+
69
+ @x_language.setter
70
+ def x_language(self, x_language):
71
+ """Sets the x_language of this ListInstanceEngineDetailRequest.
72
+
73
+ 语言。
74
+
75
+ :param x_language: The x_language of this ListInstanceEngineDetailRequest.
76
+ :type x_language: str
77
+ """
78
+ self._x_language = x_language
79
+
80
+ @property
81
+ def offset(self):
82
+ """Gets the offset of this ListInstanceEngineDetailRequest.
83
+
84
+ 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。
85
+
86
+ :return: The offset of this ListInstanceEngineDetailRequest.
87
+ :rtype: int
88
+ """
89
+ return self._offset
90
+
91
+ @offset.setter
92
+ def offset(self, offset):
93
+ """Sets the offset of this ListInstanceEngineDetailRequest.
94
+
95
+ 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。
96
+
97
+ :param offset: The offset of this ListInstanceEngineDetailRequest.
98
+ :type offset: int
99
+ """
100
+ self._offset = offset
101
+
102
+ @property
103
+ def limit(self):
104
+ """Gets the limit of this ListInstanceEngineDetailRequest.
105
+
106
+ 查询记录数。默认为100,不能为负数,最小值为1,最大值为100
107
+
108
+ :return: The limit of this ListInstanceEngineDetailRequest.
109
+ :rtype: int
110
+ """
111
+ return self._limit
112
+
113
+ @limit.setter
114
+ def limit(self, limit):
115
+ """Sets the limit of this ListInstanceEngineDetailRequest.
116
+
117
+ 查询记录数。默认为100,不能为负数,最小值为1,最大值为100
118
+
119
+ :param limit: The limit of this ListInstanceEngineDetailRequest.
120
+ :type limit: int
121
+ """
122
+ self._limit = limit
123
+
124
+ def to_dict(self):
125
+ """Returns the model properties as a dict"""
126
+ result = {}
127
+
128
+ for attr, _ in six.iteritems(self.openapi_types):
129
+ value = getattr(self, attr)
130
+ if isinstance(value, list):
131
+ result[attr] = list(map(
132
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
133
+ value
134
+ ))
135
+ elif hasattr(value, "to_dict"):
136
+ result[attr] = value.to_dict()
137
+ elif isinstance(value, dict):
138
+ result[attr] = dict(map(
139
+ lambda item: (item[0], item[1].to_dict())
140
+ if hasattr(item[1], "to_dict") else item,
141
+ value.items()
142
+ ))
143
+ else:
144
+ if attr in self.sensitive_list:
145
+ result[attr] = "****"
146
+ else:
147
+ result[attr] = value
148
+
149
+ return result
150
+
151
+ def to_str(self):
152
+ """Returns the string representation of the model"""
153
+ import simplejson as json
154
+ if six.PY2:
155
+ import sys
156
+ reload(sys)
157
+ sys.setdefaultencoding("utf-8")
158
+ return json.dumps(sanitize_for_serialization(self), ensure_ascii=False)
159
+
160
+ def __repr__(self):
161
+ """For `print`"""
162
+ return self.to_str()
163
+
164
+ def __eq__(self, other):
165
+ """Returns true if both objects are equal"""
166
+ if not isinstance(other, ListInstanceEngineDetailRequest):
167
+ return False
168
+
169
+ return self.__dict__ == other.__dict__
170
+
171
+ def __ne__(self, other):
172
+ """Returns true if both objects are not equal"""
173
+ return not self == other
@@ -0,0 +1,145 @@
1
+ # coding: utf-8
2
+
3
+ import six
4
+
5
+ from huaweicloudsdkcore.sdk_response import SdkResponse
6
+ from huaweicloudsdkcore.utils.http_utils import sanitize_for_serialization
7
+
8
+
9
+ class ListInstanceEngineDetailResponse(SdkResponse):
10
+
11
+ """
12
+ Attributes:
13
+ openapi_types (dict): The key is attribute name
14
+ and the value is attribute type.
15
+ attribute_map (dict): The key is attribute name
16
+ and the value is json key in definition.
17
+ """
18
+ sensitive_list = []
19
+
20
+ openapi_types = {
21
+ 'engine_instance_details': 'list[InstanceEngineDetail]',
22
+ 'total_count': 'int'
23
+ }
24
+
25
+ attribute_map = {
26
+ 'engine_instance_details': 'engine_instance_details',
27
+ 'total_count': 'total_count'
28
+ }
29
+
30
+ def __init__(self, engine_instance_details=None, total_count=None):
31
+ """ListInstanceEngineDetailResponse
32
+
33
+ The model defined in huaweicloud sdk
34
+
35
+ :param engine_instance_details: 引擎版本和相应的实例详情。
36
+ :type engine_instance_details: list[:class:`huaweicloudsdkgaussdbforopengauss.v3.InstanceEngineDetail`]
37
+ :param total_count: 引擎版本数量。
38
+ :type total_count: int
39
+ """
40
+
41
+ super(ListInstanceEngineDetailResponse, self).__init__()
42
+
43
+ self._engine_instance_details = None
44
+ self._total_count = None
45
+ self.discriminator = None
46
+
47
+ if engine_instance_details is not None:
48
+ self.engine_instance_details = engine_instance_details
49
+ if total_count is not None:
50
+ self.total_count = total_count
51
+
52
+ @property
53
+ def engine_instance_details(self):
54
+ """Gets the engine_instance_details of this ListInstanceEngineDetailResponse.
55
+
56
+ 引擎版本和相应的实例详情。
57
+
58
+ :return: The engine_instance_details of this ListInstanceEngineDetailResponse.
59
+ :rtype: list[:class:`huaweicloudsdkgaussdbforopengauss.v3.InstanceEngineDetail`]
60
+ """
61
+ return self._engine_instance_details
62
+
63
+ @engine_instance_details.setter
64
+ def engine_instance_details(self, engine_instance_details):
65
+ """Sets the engine_instance_details of this ListInstanceEngineDetailResponse.
66
+
67
+ 引擎版本和相应的实例详情。
68
+
69
+ :param engine_instance_details: The engine_instance_details of this ListInstanceEngineDetailResponse.
70
+ :type engine_instance_details: list[:class:`huaweicloudsdkgaussdbforopengauss.v3.InstanceEngineDetail`]
71
+ """
72
+ self._engine_instance_details = engine_instance_details
73
+
74
+ @property
75
+ def total_count(self):
76
+ """Gets the total_count of this ListInstanceEngineDetailResponse.
77
+
78
+ 引擎版本数量。
79
+
80
+ :return: The total_count of this ListInstanceEngineDetailResponse.
81
+ :rtype: int
82
+ """
83
+ return self._total_count
84
+
85
+ @total_count.setter
86
+ def total_count(self, total_count):
87
+ """Sets the total_count of this ListInstanceEngineDetailResponse.
88
+
89
+ 引擎版本数量。
90
+
91
+ :param total_count: The total_count of this ListInstanceEngineDetailResponse.
92
+ :type total_count: int
93
+ """
94
+ self._total_count = total_count
95
+
96
+ def to_dict(self):
97
+ """Returns the model properties as a dict"""
98
+ result = {}
99
+
100
+ for attr, _ in six.iteritems(self.openapi_types):
101
+ value = getattr(self, attr)
102
+ if isinstance(value, list):
103
+ result[attr] = list(map(
104
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
105
+ value
106
+ ))
107
+ elif hasattr(value, "to_dict"):
108
+ result[attr] = value.to_dict()
109
+ elif isinstance(value, dict):
110
+ result[attr] = dict(map(
111
+ lambda item: (item[0], item[1].to_dict())
112
+ if hasattr(item[1], "to_dict") else item,
113
+ value.items()
114
+ ))
115
+ else:
116
+ if attr in self.sensitive_list:
117
+ result[attr] = "****"
118
+ else:
119
+ result[attr] = value
120
+
121
+ return result
122
+
123
+ def to_str(self):
124
+ """Returns the string representation of the model"""
125
+ import simplejson as json
126
+ if six.PY2:
127
+ import sys
128
+ reload(sys)
129
+ sys.setdefaultencoding("utf-8")
130
+ return json.dumps(sanitize_for_serialization(self), ensure_ascii=False)
131
+
132
+ def __repr__(self):
133
+ """For `print`"""
134
+ return self.to_str()
135
+
136
+ def __eq__(self, other):
137
+ """Returns true if both objects are equal"""
138
+ if not isinstance(other, ListInstanceEngineDetailResponse):
139
+ return False
140
+
141
+ return self.__dict__ == other.__dict__
142
+
143
+ def __ne__(self, other):
144
+ """Returns true if both objects are not equal"""
145
+ return not self == other
@@ -0,0 +1,318 @@
1
+ # coding: utf-8
2
+
3
+ import six
4
+
5
+ from huaweicloudsdkcore.utils.http_utils import sanitize_for_serialization
6
+
7
+
8
+ class ListScheduleTaskRequest:
9
+
10
+ """
11
+ Attributes:
12
+ openapi_types (dict): The key is attribute name
13
+ and the value is attribute type.
14
+ attribute_map (dict): The key is attribute name
15
+ and the value is json key in definition.
16
+ """
17
+ sensitive_list = []
18
+
19
+ openapi_types = {
20
+ 'x_language': 'str',
21
+ 'instance_id': 'str',
22
+ 'status': 'str',
23
+ 'name': 'str',
24
+ 'start_time': 'str',
25
+ 'end_time': 'str',
26
+ 'offset': 'int',
27
+ 'limit': 'int'
28
+ }
29
+
30
+ attribute_map = {
31
+ 'x_language': 'X-Language',
32
+ 'instance_id': 'instance_id',
33
+ 'status': 'status',
34
+ 'name': 'name',
35
+ 'start_time': 'start_time',
36
+ 'end_time': 'end_time',
37
+ 'offset': 'offset',
38
+ 'limit': 'limit'
39
+ }
40
+
41
+ def __init__(self, x_language=None, instance_id=None, status=None, name=None, start_time=None, end_time=None, offset=None, limit=None):
42
+ """ListScheduleTaskRequest
43
+
44
+ The model defined in huaweicloud sdk
45
+
46
+ :param x_language: 语言。
47
+ :type x_language: str
48
+ :param instance_id: 实例id。
49
+ :type instance_id: str
50
+ :param status: 任务状态。
51
+ :type status: str
52
+ :param name: 任务名称。
53
+ :type name: str
54
+ :param start_time: 开始时间,格式为yyyy-mm-ddThh:mm:ssZ。
55
+ :type start_time: str
56
+ :param end_time: 结束时间,格式为yyyy-mm-ddThh:mm:ssZ。
57
+ :type end_time: str
58
+ :param offset: 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。
59
+ :type offset: int
60
+ :param limit: 查询记录数。默认为100,不能为负数,最小值为1,最大值为100
61
+ :type limit: int
62
+ """
63
+
64
+
65
+
66
+ self._x_language = None
67
+ self._instance_id = None
68
+ self._status = None
69
+ self._name = None
70
+ self._start_time = None
71
+ self._end_time = None
72
+ self._offset = None
73
+ self._limit = None
74
+ self.discriminator = None
75
+
76
+ if x_language is not None:
77
+ self.x_language = x_language
78
+ if instance_id is not None:
79
+ self.instance_id = instance_id
80
+ if status is not None:
81
+ self.status = status
82
+ if name is not None:
83
+ self.name = name
84
+ if start_time is not None:
85
+ self.start_time = start_time
86
+ if end_time is not None:
87
+ self.end_time = end_time
88
+ if offset is not None:
89
+ self.offset = offset
90
+ if limit is not None:
91
+ self.limit = limit
92
+
93
+ @property
94
+ def x_language(self):
95
+ """Gets the x_language of this ListScheduleTaskRequest.
96
+
97
+ 语言。
98
+
99
+ :return: The x_language of this ListScheduleTaskRequest.
100
+ :rtype: str
101
+ """
102
+ return self._x_language
103
+
104
+ @x_language.setter
105
+ def x_language(self, x_language):
106
+ """Sets the x_language of this ListScheduleTaskRequest.
107
+
108
+ 语言。
109
+
110
+ :param x_language: The x_language of this ListScheduleTaskRequest.
111
+ :type x_language: str
112
+ """
113
+ self._x_language = x_language
114
+
115
+ @property
116
+ def instance_id(self):
117
+ """Gets the instance_id of this ListScheduleTaskRequest.
118
+
119
+ 实例id。
120
+
121
+ :return: The instance_id of this ListScheduleTaskRequest.
122
+ :rtype: str
123
+ """
124
+ return self._instance_id
125
+
126
+ @instance_id.setter
127
+ def instance_id(self, instance_id):
128
+ """Sets the instance_id of this ListScheduleTaskRequest.
129
+
130
+ 实例id。
131
+
132
+ :param instance_id: The instance_id of this ListScheduleTaskRequest.
133
+ :type instance_id: str
134
+ """
135
+ self._instance_id = instance_id
136
+
137
+ @property
138
+ def status(self):
139
+ """Gets the status of this ListScheduleTaskRequest.
140
+
141
+ 任务状态。
142
+
143
+ :return: The status of this ListScheduleTaskRequest.
144
+ :rtype: str
145
+ """
146
+ return self._status
147
+
148
+ @status.setter
149
+ def status(self, status):
150
+ """Sets the status of this ListScheduleTaskRequest.
151
+
152
+ 任务状态。
153
+
154
+ :param status: The status of this ListScheduleTaskRequest.
155
+ :type status: str
156
+ """
157
+ self._status = status
158
+
159
+ @property
160
+ def name(self):
161
+ """Gets the name of this ListScheduleTaskRequest.
162
+
163
+ 任务名称。
164
+
165
+ :return: The name of this ListScheduleTaskRequest.
166
+ :rtype: str
167
+ """
168
+ return self._name
169
+
170
+ @name.setter
171
+ def name(self, name):
172
+ """Sets the name of this ListScheduleTaskRequest.
173
+
174
+ 任务名称。
175
+
176
+ :param name: The name of this ListScheduleTaskRequest.
177
+ :type name: str
178
+ """
179
+ self._name = name
180
+
181
+ @property
182
+ def start_time(self):
183
+ """Gets the start_time of this ListScheduleTaskRequest.
184
+
185
+ 开始时间,格式为yyyy-mm-ddThh:mm:ssZ。
186
+
187
+ :return: The start_time of this ListScheduleTaskRequest.
188
+ :rtype: str
189
+ """
190
+ return self._start_time
191
+
192
+ @start_time.setter
193
+ def start_time(self, start_time):
194
+ """Sets the start_time of this ListScheduleTaskRequest.
195
+
196
+ 开始时间,格式为yyyy-mm-ddThh:mm:ssZ。
197
+
198
+ :param start_time: The start_time of this ListScheduleTaskRequest.
199
+ :type start_time: str
200
+ """
201
+ self._start_time = start_time
202
+
203
+ @property
204
+ def end_time(self):
205
+ """Gets the end_time of this ListScheduleTaskRequest.
206
+
207
+ 结束时间,格式为yyyy-mm-ddThh:mm:ssZ。
208
+
209
+ :return: The end_time of this ListScheduleTaskRequest.
210
+ :rtype: str
211
+ """
212
+ return self._end_time
213
+
214
+ @end_time.setter
215
+ def end_time(self, end_time):
216
+ """Sets the end_time of this ListScheduleTaskRequest.
217
+
218
+ 结束时间,格式为yyyy-mm-ddThh:mm:ssZ。
219
+
220
+ :param end_time: The end_time of this ListScheduleTaskRequest.
221
+ :type end_time: str
222
+ """
223
+ self._end_time = end_time
224
+
225
+ @property
226
+ def offset(self):
227
+ """Gets the offset of this ListScheduleTaskRequest.
228
+
229
+ 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。
230
+
231
+ :return: The offset of this ListScheduleTaskRequest.
232
+ :rtype: int
233
+ """
234
+ return self._offset
235
+
236
+ @offset.setter
237
+ def offset(self, offset):
238
+ """Sets the offset of this ListScheduleTaskRequest.
239
+
240
+ 索引位置,偏移量。从第一条数据偏移offset条数据后开始查询,默认为0(偏移0条数据,表示从第一条数据开始查询),必须为数字,不能为负数。
241
+
242
+ :param offset: The offset of this ListScheduleTaskRequest.
243
+ :type offset: int
244
+ """
245
+ self._offset = offset
246
+
247
+ @property
248
+ def limit(self):
249
+ """Gets the limit of this ListScheduleTaskRequest.
250
+
251
+ 查询记录数。默认为100,不能为负数,最小值为1,最大值为100
252
+
253
+ :return: The limit of this ListScheduleTaskRequest.
254
+ :rtype: int
255
+ """
256
+ return self._limit
257
+
258
+ @limit.setter
259
+ def limit(self, limit):
260
+ """Sets the limit of this ListScheduleTaskRequest.
261
+
262
+ 查询记录数。默认为100,不能为负数,最小值为1,最大值为100
263
+
264
+ :param limit: The limit of this ListScheduleTaskRequest.
265
+ :type limit: int
266
+ """
267
+ self._limit = limit
268
+
269
+ def to_dict(self):
270
+ """Returns the model properties as a dict"""
271
+ result = {}
272
+
273
+ for attr, _ in six.iteritems(self.openapi_types):
274
+ value = getattr(self, attr)
275
+ if isinstance(value, list):
276
+ result[attr] = list(map(
277
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
278
+ value
279
+ ))
280
+ elif hasattr(value, "to_dict"):
281
+ result[attr] = value.to_dict()
282
+ elif isinstance(value, dict):
283
+ result[attr] = dict(map(
284
+ lambda item: (item[0], item[1].to_dict())
285
+ if hasattr(item[1], "to_dict") else item,
286
+ value.items()
287
+ ))
288
+ else:
289
+ if attr in self.sensitive_list:
290
+ result[attr] = "****"
291
+ else:
292
+ result[attr] = value
293
+
294
+ return result
295
+
296
+ def to_str(self):
297
+ """Returns the string representation of the model"""
298
+ import simplejson as json
299
+ if six.PY2:
300
+ import sys
301
+ reload(sys)
302
+ sys.setdefaultencoding("utf-8")
303
+ return json.dumps(sanitize_for_serialization(self), ensure_ascii=False)
304
+
305
+ def __repr__(self):
306
+ """For `print`"""
307
+ return self.to_str()
308
+
309
+ def __eq__(self, other):
310
+ """Returns true if both objects are equal"""
311
+ if not isinstance(other, ListScheduleTaskRequest):
312
+ return False
313
+
314
+ return self.__dict__ == other.__dict__
315
+
316
+ def __ne__(self, other):
317
+ """Returns true if both objects are not equal"""
318
+ return not self == other