flywheel-sdk 21.0.0rc0__py2.py3-none-any.whl → 21.1.0__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 (71) hide show
  1. flywheel/__init__.py +51 -3
  2. flywheel/api/__init__.py +5 -0
  3. flywheel/api/audit_trail_api.py +8 -8
  4. flywheel/api/container_tasks_api.py +137 -0
  5. flywheel/api/form_responses_api.py +579 -0
  6. flywheel/api/jobs_api.py +97 -0
  7. flywheel/api/protocols_api.py +757 -0
  8. flywheel/api/staffing_pools_api.py +677 -0
  9. flywheel/api/tasks_api.py +897 -0
  10. flywheel/api_client.py +1 -1
  11. flywheel/configuration.py +2 -2
  12. flywheel/flywheel.py +369 -3
  13. flywheel/models/__init__.py +47 -4
  14. flywheel/models/action.py +3 -0
  15. flywheel/models/assignee.py +190 -0
  16. flywheel/models/assignee_type.py +28 -0
  17. flywheel/models/batch_create_filters.py +218 -0
  18. flywheel/models/container_type.py +1 -0
  19. flywheel/models/{create_report_input.py → core_models_audit_trail_create_report_input.py} +24 -24
  20. flywheel/models/{modify_report_input.py → core_models_audit_trail_modify_report_input.py} +8 -8
  21. flywheel/models/{parent_type.py → core_models_search_parent_type.py} +1 -1
  22. flywheel/models/core_workflows_form_responses_models_form_parents.py +162 -0
  23. flywheel/models/core_workflows_form_responses_models_form_response_output.py +438 -0
  24. flywheel/models/core_workflows_reader_models_reader_task_parents.py +268 -0
  25. flywheel/models/current_user_output.py +31 -4
  26. flywheel/models/custom_field.py +404 -0
  27. flywheel/models/custom_form.py +242 -0
  28. flywheel/models/e_signature.py +241 -0
  29. flywheel/models/features.py +1 -28
  30. flywheel/models/field_type.py +35 -0
  31. flywheel/models/form_response_base.py +310 -0
  32. flywheel/models/form_response_create.py +192 -0
  33. flywheel/models/libs_workflows_models_parent_type.py +31 -0
  34. flywheel/models/libs_workflows_models_task_status.py +31 -0
  35. flywheel/models/modify_user_input.py +31 -4
  36. flywheel/models/page_generic_form_response_output.py +217 -0
  37. flywheel/models/page_generic_protocol.py +242 -0
  38. flywheel/models/page_generic_reader_task_output.py +242 -0
  39. flywheel/models/page_generic_staffing_pool.py +242 -0
  40. flywheel/models/protocol.py +511 -0
  41. flywheel/models/protocol_e_signature_config.py +190 -0
  42. flywheel/models/protocol_input.py +352 -0
  43. flywheel/models/protocol_modify.py +275 -0
  44. flywheel/models/protocol_status.py +29 -0
  45. flywheel/models/reader_batch_create.py +460 -0
  46. flywheel/models/reader_task.py +723 -0
  47. flywheel/models/reader_task_config.py +188 -0
  48. flywheel/models/reader_task_create.py +541 -0
  49. flywheel/models/reader_task_modify.py +274 -0
  50. flywheel/models/reader_task_output.py +750 -0
  51. flywheel/models/reader_task_parent_details.py +295 -0
  52. flywheel/models/save_search_parent.py +4 -4
  53. flywheel/models/select_item.py +189 -0
  54. flywheel/models/staffing_pool.py +322 -0
  55. flywheel/models/staffing_pool_create.py +215 -0
  56. flywheel/models/staffing_pool_list.py +163 -0
  57. flywheel/models/staffing_pool_modify.py +217 -0
  58. flywheel/models/status_transitions.py +244 -0
  59. flywheel/models/task_assign.py +192 -0
  60. flywheel/models/task_facet.py +28 -0
  61. flywheel/models/task_parent_ref.py +243 -0
  62. flywheel/models/task_parent_ref_input.py +217 -0
  63. flywheel/models/task_priority.py +30 -0
  64. flywheel/models/task_submission.py +188 -0
  65. flywheel/models/user_input.py +31 -4
  66. flywheel/models/validation_rule.py +189 -0
  67. {flywheel_sdk-21.0.0rc0.dist-info → flywheel_sdk-21.1.0.dist-info}/METADATA +1 -1
  68. {flywheel_sdk-21.0.0rc0.dist-info → flywheel_sdk-21.1.0.dist-info}/RECORD +71 -23
  69. {flywheel_sdk-21.0.0rc0.dist-info → flywheel_sdk-21.1.0.dist-info}/WHEEL +0 -0
  70. {flywheel_sdk-21.0.0rc0.dist-info → flywheel_sdk-21.1.0.dist-info}/licenses/LICENSE.txt +0 -0
  71. {flywheel_sdk-21.0.0rc0.dist-info → flywheel_sdk-21.1.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,511 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Flywheel
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: 0.0.1
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+
14
+ ## NOTE: This file is auto generated by the swagger code generator program.
15
+ ## Do not edit the file manually.
16
+
17
+ import pprint
18
+ import re # noqa: F401
19
+ import six
20
+
21
+ from flywheel.models.container_reference import ContainerReference # noqa: F401,E501
22
+ from flywheel.models.custom_form import CustomForm # noqa: F401,E501
23
+ from flywheel.models.protocol_e_signature_config import ProtocolESignatureConfig # noqa: F401,E501
24
+ from flywheel.models.reader_task_config import ReaderTaskConfig # noqa: F401,E501
25
+
26
+ class Protocol(object):
27
+
28
+ swagger_types = {
29
+ 'id': 'str',
30
+ 'label': 'str',
31
+ 'form': 'CustomForm',
32
+ 'protocol_config': 'ReaderTaskConfig',
33
+ 'created': 'datetime',
34
+ 'modified': 'datetime',
35
+ 'replaced': 'datetime',
36
+ 'version': 'int',
37
+ 'status': 'ProtocolStatus',
38
+ 'parent_ref': 'ContainerReference',
39
+ 'task_type': 'str',
40
+ 'completion_tags': 'list[str]',
41
+ 'notes': 'str',
42
+ 'esignature_config': 'ProtocolESignatureConfig'
43
+ }
44
+
45
+ attribute_map = {
46
+ 'id': '_id',
47
+ 'label': 'label',
48
+ 'form': 'form',
49
+ 'protocol_config': 'protocol_config',
50
+ 'created': 'created',
51
+ 'modified': 'modified',
52
+ 'replaced': 'replaced',
53
+ 'version': 'version',
54
+ 'status': 'status',
55
+ 'parent_ref': 'parent_ref',
56
+ 'task_type': 'task_type',
57
+ 'completion_tags': 'completion_tags',
58
+ 'notes': 'notes',
59
+ 'esignature_config': 'esignature_config'
60
+ }
61
+
62
+ rattribute_map = {
63
+ '_id': 'id',
64
+ 'label': 'label',
65
+ 'form': 'form',
66
+ 'protocol_config': 'protocol_config',
67
+ 'created': 'created',
68
+ 'modified': 'modified',
69
+ 'replaced': 'replaced',
70
+ 'version': 'version',
71
+ 'status': 'status',
72
+ 'parent_ref': 'parent_ref',
73
+ 'task_type': 'task_type',
74
+ 'completion_tags': 'completion_tags',
75
+ 'notes': 'notes',
76
+ 'esignature_config': 'esignature_config'
77
+ }
78
+
79
+ def __init__(self, id=None, label=None, form=None, protocol_config=None, created=None, modified=None, replaced=None, version=None, status=None, parent_ref=None, task_type=None, completion_tags=None, notes=None, esignature_config=None): # noqa: E501
80
+ """Protocol - a model defined in Swagger"""
81
+ super(Protocol, self).__init__()
82
+
83
+ self._id = None
84
+ self._label = None
85
+ self._form = None
86
+ self._protocol_config = None
87
+ self._created = None
88
+ self._modified = None
89
+ self._replaced = None
90
+ self._version = None
91
+ self._status = None
92
+ self._parent_ref = None
93
+ self._task_type = None
94
+ self._completion_tags = None
95
+ self._notes = None
96
+ self._esignature_config = None
97
+ self.discriminator = None
98
+ self.alt_discriminator = None
99
+
100
+ self.id = id
101
+ self.label = label
102
+ self.form = form
103
+ self.protocol_config = protocol_config
104
+ self.created = created
105
+ if modified is not None:
106
+ self.modified = modified
107
+ if replaced is not None:
108
+ self.replaced = replaced
109
+ self.version = version
110
+ if status is not None:
111
+ self.status = status
112
+ self.parent_ref = parent_ref
113
+ self.task_type = task_type
114
+ if completion_tags is not None:
115
+ self.completion_tags = completion_tags
116
+ if notes is not None:
117
+ self.notes = notes
118
+ if esignature_config is not None:
119
+ self.esignature_config = esignature_config
120
+
121
+ @property
122
+ def id(self):
123
+ """Gets the id of this Protocol.
124
+
125
+
126
+ :return: The id of this Protocol.
127
+ :rtype: str
128
+ """
129
+ return self._id
130
+
131
+ @id.setter
132
+ def id(self, id):
133
+ """Sets the id of this Protocol.
134
+
135
+
136
+ :param id: The id of this Protocol. # noqa: E501
137
+ :type: str
138
+ """
139
+
140
+ self._id = id
141
+
142
+ @property
143
+ def label(self):
144
+ """Gets the label of this Protocol.
145
+
146
+
147
+ :return: The label of this Protocol.
148
+ :rtype: str
149
+ """
150
+ return self._label
151
+
152
+ @label.setter
153
+ def label(self, label):
154
+ """Sets the label of this Protocol.
155
+
156
+
157
+ :param label: The label of this Protocol. # noqa: E501
158
+ :type: str
159
+ """
160
+
161
+ self._label = label
162
+
163
+ @property
164
+ def form(self):
165
+ """Gets the form of this Protocol.
166
+
167
+
168
+ :return: The form of this Protocol.
169
+ :rtype: CustomForm
170
+ """
171
+ return self._form
172
+
173
+ @form.setter
174
+ def form(self, form):
175
+ """Sets the form of this Protocol.
176
+
177
+
178
+ :param form: The form of this Protocol. # noqa: E501
179
+ :type: CustomForm
180
+ """
181
+
182
+ self._form = form
183
+
184
+ @property
185
+ def protocol_config(self):
186
+ """Gets the protocol_config of this Protocol.
187
+
188
+
189
+ :return: The protocol_config of this Protocol.
190
+ :rtype: ReaderTaskConfig
191
+ """
192
+ return self._protocol_config
193
+
194
+ @protocol_config.setter
195
+ def protocol_config(self, protocol_config):
196
+ """Sets the protocol_config of this Protocol.
197
+
198
+
199
+ :param protocol_config: The protocol_config of this Protocol. # noqa: E501
200
+ :type: ReaderTaskConfig
201
+ """
202
+
203
+ self._protocol_config = protocol_config
204
+
205
+ @property
206
+ def created(self):
207
+ """Gets the created of this Protocol.
208
+
209
+
210
+ :return: The created of this Protocol.
211
+ :rtype: datetime
212
+ """
213
+ return self._created
214
+
215
+ @created.setter
216
+ def created(self, created):
217
+ """Sets the created of this Protocol.
218
+
219
+
220
+ :param created: The created of this Protocol. # noqa: E501
221
+ :type: datetime
222
+ """
223
+
224
+ self._created = created
225
+
226
+ @property
227
+ def modified(self):
228
+ """Gets the modified of this Protocol.
229
+
230
+
231
+ :return: The modified of this Protocol.
232
+ :rtype: datetime
233
+ """
234
+ return self._modified
235
+
236
+ @modified.setter
237
+ def modified(self, modified):
238
+ """Sets the modified of this Protocol.
239
+
240
+
241
+ :param modified: The modified of this Protocol. # noqa: E501
242
+ :type: datetime
243
+ """
244
+
245
+ self._modified = modified
246
+
247
+ @property
248
+ def replaced(self):
249
+ """Gets the replaced of this Protocol.
250
+
251
+
252
+ :return: The replaced of this Protocol.
253
+ :rtype: datetime
254
+ """
255
+ return self._replaced
256
+
257
+ @replaced.setter
258
+ def replaced(self, replaced):
259
+ """Sets the replaced of this Protocol.
260
+
261
+
262
+ :param replaced: The replaced of this Protocol. # noqa: E501
263
+ :type: datetime
264
+ """
265
+
266
+ self._replaced = replaced
267
+
268
+ @property
269
+ def version(self):
270
+ """Gets the version of this Protocol.
271
+
272
+
273
+ :return: The version of this Protocol.
274
+ :rtype: int
275
+ """
276
+ return self._version
277
+
278
+ @version.setter
279
+ def version(self, version):
280
+ """Sets the version of this Protocol.
281
+
282
+
283
+ :param version: The version of this Protocol. # noqa: E501
284
+ :type: int
285
+ """
286
+
287
+ self._version = version
288
+
289
+ @property
290
+ def status(self):
291
+ """Gets the status of this Protocol.
292
+
293
+
294
+ :return: The status of this Protocol.
295
+ :rtype: ProtocolStatus
296
+ """
297
+ return self._status
298
+
299
+ @status.setter
300
+ def status(self, status):
301
+ """Sets the status of this Protocol.
302
+
303
+
304
+ :param status: The status of this Protocol. # noqa: E501
305
+ :type: ProtocolStatus
306
+ """
307
+
308
+ self._status = status
309
+
310
+ @property
311
+ def parent_ref(self):
312
+ """Gets the parent_ref of this Protocol.
313
+
314
+
315
+ :return: The parent_ref of this Protocol.
316
+ :rtype: ContainerReference
317
+ """
318
+ return self._parent_ref
319
+
320
+ @parent_ref.setter
321
+ def parent_ref(self, parent_ref):
322
+ """Sets the parent_ref of this Protocol.
323
+
324
+
325
+ :param parent_ref: The parent_ref of this Protocol. # noqa: E501
326
+ :type: ContainerReference
327
+ """
328
+
329
+ self._parent_ref = parent_ref
330
+
331
+ @property
332
+ def task_type(self):
333
+ """Gets the task_type of this Protocol.
334
+
335
+
336
+ :return: The task_type of this Protocol.
337
+ :rtype: str
338
+ """
339
+ return self._task_type
340
+
341
+ @task_type.setter
342
+ def task_type(self, task_type):
343
+ """Sets the task_type of this Protocol.
344
+
345
+
346
+ :param task_type: The task_type of this Protocol. # noqa: E501
347
+ :type: str
348
+ """
349
+
350
+ self._task_type = task_type
351
+
352
+ @property
353
+ def completion_tags(self):
354
+ """Gets the completion_tags of this Protocol.
355
+
356
+
357
+ :return: The completion_tags of this Protocol.
358
+ :rtype: list[str]
359
+ """
360
+ return self._completion_tags
361
+
362
+ @completion_tags.setter
363
+ def completion_tags(self, completion_tags):
364
+ """Sets the completion_tags of this Protocol.
365
+
366
+
367
+ :param completion_tags: The completion_tags of this Protocol. # noqa: E501
368
+ :type: list[str]
369
+ """
370
+
371
+ self._completion_tags = completion_tags
372
+
373
+ @property
374
+ def notes(self):
375
+ """Gets the notes of this Protocol.
376
+
377
+
378
+ :return: The notes of this Protocol.
379
+ :rtype: str
380
+ """
381
+ return self._notes
382
+
383
+ @notes.setter
384
+ def notes(self, notes):
385
+ """Sets the notes of this Protocol.
386
+
387
+
388
+ :param notes: The notes of this Protocol. # noqa: E501
389
+ :type: str
390
+ """
391
+
392
+ self._notes = notes
393
+
394
+ @property
395
+ def esignature_config(self):
396
+ """Gets the esignature_config of this Protocol.
397
+
398
+
399
+ :return: The esignature_config of this Protocol.
400
+ :rtype: ProtocolESignatureConfig
401
+ """
402
+ return self._esignature_config
403
+
404
+ @esignature_config.setter
405
+ def esignature_config(self, esignature_config):
406
+ """Sets the esignature_config of this Protocol.
407
+
408
+
409
+ :param esignature_config: The esignature_config of this Protocol. # noqa: E501
410
+ :type: ProtocolESignatureConfig
411
+ """
412
+
413
+ self._esignature_config = esignature_config
414
+
415
+
416
+ @staticmethod
417
+ def positional_to_model(value):
418
+ """Converts a positional argument to a model value"""
419
+ return value
420
+
421
+ def return_value(self):
422
+ """Unwraps return value from model"""
423
+ return self
424
+
425
+ def to_dict(self):
426
+ """Returns the model properties as a dict"""
427
+ result = {}
428
+
429
+ for attr, _ in six.iteritems(self.swagger_types):
430
+ value = getattr(self, attr)
431
+ if isinstance(value, list):
432
+ result[attr] = list(map(
433
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
434
+ value
435
+ ))
436
+ elif hasattr(value, "to_dict"):
437
+ result[attr] = value.to_dict()
438
+ elif isinstance(value, dict):
439
+ result[attr] = dict(map(
440
+ lambda item: (item[0], item[1].to_dict())
441
+ if hasattr(item[1], "to_dict") else item,
442
+ value.items()
443
+ ))
444
+ else:
445
+ result[attr] = value
446
+
447
+ return result
448
+
449
+ def to_str(self):
450
+ """Returns the string representation of the model"""
451
+ return pprint.pformat(self.to_dict())
452
+
453
+ def __repr__(self):
454
+ """For `print` and `pprint`"""
455
+ return self.to_str()
456
+
457
+ def __eq__(self, other):
458
+ """Returns true if both objects are equal"""
459
+ if not isinstance(other, Protocol):
460
+ return False
461
+
462
+ return self.__dict__ == other.__dict__
463
+
464
+ def __ne__(self, other):
465
+ """Returns true if both objects are not equal"""
466
+ return not self == other
467
+
468
+ # Container emulation
469
+ def __getitem__(self, key):
470
+ """Returns the value of key"""
471
+ key = self._map_key(key)
472
+ return getattr(self, key)
473
+
474
+ def __setitem__(self, key, value):
475
+ """Sets the value of key"""
476
+ key = self._map_key(key)
477
+ setattr(self, key, value)
478
+
479
+ def __contains__(self, key):
480
+ """Checks if the given value is a key in this object"""
481
+ key = self._map_key(key, raise_on_error=False)
482
+ return key is not None
483
+
484
+ def keys(self):
485
+ """Returns the list of json properties in the object"""
486
+ return self.__class__.rattribute_map.keys()
487
+
488
+ def values(self):
489
+ """Returns the list of values in the object"""
490
+ for key in self.__class__.attribute_map.keys():
491
+ yield getattr(self, key)
492
+
493
+ def items(self):
494
+ """Returns the list of json property to value mapping"""
495
+ for key, prop in self.__class__.rattribute_map.items():
496
+ yield key, getattr(self, prop)
497
+
498
+ def get(self, key, default=None):
499
+ """Get the value of the provided json property, or default"""
500
+ key = self._map_key(key, raise_on_error=False)
501
+ if key:
502
+ return getattr(self, key, default)
503
+ return default
504
+
505
+ def _map_key(self, key, raise_on_error=True):
506
+ result = self.__class__.rattribute_map.get(key)
507
+ if result is None:
508
+ if raise_on_error:
509
+ raise AttributeError('Invalid attribute name: {}'.format(key))
510
+ return None
511
+ return '_' + result
@@ -0,0 +1,190 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Flywheel
5
+
6
+ No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen) # noqa: E501
7
+
8
+ OpenAPI spec version: 0.0.1
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+
14
+ ## NOTE: This file is auto generated by the swagger code generator program.
15
+ ## Do not edit the file manually.
16
+
17
+ import pprint
18
+ import re # noqa: F401
19
+ import six
20
+
21
+ class ProtocolESignatureConfig(object):
22
+
23
+ swagger_types = {
24
+ 'required': 'bool',
25
+ 'reasons': 'list[str]'
26
+ }
27
+
28
+ attribute_map = {
29
+ 'required': 'required',
30
+ 'reasons': 'reasons'
31
+ }
32
+
33
+ rattribute_map = {
34
+ 'required': 'required',
35
+ 'reasons': 'reasons'
36
+ }
37
+
38
+ def __init__(self, required=False, reasons=None): # noqa: E501
39
+ """ProtocolESignatureConfig - a model defined in Swagger"""
40
+ super(ProtocolESignatureConfig, self).__init__()
41
+
42
+ self._required = None
43
+ self._reasons = None
44
+ self.discriminator = None
45
+ self.alt_discriminator = None
46
+
47
+ if required is not None:
48
+ self.required = required
49
+ if reasons is not None:
50
+ self.reasons = reasons
51
+
52
+ @property
53
+ def required(self):
54
+ """Gets the required of this ProtocolESignatureConfig.
55
+
56
+
57
+ :return: The required of this ProtocolESignatureConfig.
58
+ :rtype: bool
59
+ """
60
+ return self._required
61
+
62
+ @required.setter
63
+ def required(self, required):
64
+ """Sets the required of this ProtocolESignatureConfig.
65
+
66
+
67
+ :param required: The required of this ProtocolESignatureConfig. # noqa: E501
68
+ :type: bool
69
+ """
70
+
71
+ self._required = required
72
+
73
+ @property
74
+ def reasons(self):
75
+ """Gets the reasons of this ProtocolESignatureConfig.
76
+
77
+
78
+ :return: The reasons of this ProtocolESignatureConfig.
79
+ :rtype: list[str]
80
+ """
81
+ return self._reasons
82
+
83
+ @reasons.setter
84
+ def reasons(self, reasons):
85
+ """Sets the reasons of this ProtocolESignatureConfig.
86
+
87
+
88
+ :param reasons: The reasons of this ProtocolESignatureConfig. # noqa: E501
89
+ :type: list[str]
90
+ """
91
+
92
+ self._reasons = reasons
93
+
94
+
95
+ @staticmethod
96
+ def positional_to_model(value):
97
+ """Converts a positional argument to a model value"""
98
+ return value
99
+
100
+ def return_value(self):
101
+ """Unwraps return value from model"""
102
+ return self
103
+
104
+ def to_dict(self):
105
+ """Returns the model properties as a dict"""
106
+ result = {}
107
+
108
+ for attr, _ in six.iteritems(self.swagger_types):
109
+ value = getattr(self, attr)
110
+ if isinstance(value, list):
111
+ result[attr] = list(map(
112
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
113
+ value
114
+ ))
115
+ elif hasattr(value, "to_dict"):
116
+ result[attr] = value.to_dict()
117
+ elif isinstance(value, dict):
118
+ result[attr] = dict(map(
119
+ lambda item: (item[0], item[1].to_dict())
120
+ if hasattr(item[1], "to_dict") else item,
121
+ value.items()
122
+ ))
123
+ else:
124
+ result[attr] = value
125
+
126
+ return result
127
+
128
+ def to_str(self):
129
+ """Returns the string representation of the model"""
130
+ return pprint.pformat(self.to_dict())
131
+
132
+ def __repr__(self):
133
+ """For `print` and `pprint`"""
134
+ return self.to_str()
135
+
136
+ def __eq__(self, other):
137
+ """Returns true if both objects are equal"""
138
+ if not isinstance(other, ProtocolESignatureConfig):
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
146
+
147
+ # Container emulation
148
+ def __getitem__(self, key):
149
+ """Returns the value of key"""
150
+ key = self._map_key(key)
151
+ return getattr(self, key)
152
+
153
+ def __setitem__(self, key, value):
154
+ """Sets the value of key"""
155
+ key = self._map_key(key)
156
+ setattr(self, key, value)
157
+
158
+ def __contains__(self, key):
159
+ """Checks if the given value is a key in this object"""
160
+ key = self._map_key(key, raise_on_error=False)
161
+ return key is not None
162
+
163
+ def keys(self):
164
+ """Returns the list of json properties in the object"""
165
+ return self.__class__.rattribute_map.keys()
166
+
167
+ def values(self):
168
+ """Returns the list of values in the object"""
169
+ for key in self.__class__.attribute_map.keys():
170
+ yield getattr(self, key)
171
+
172
+ def items(self):
173
+ """Returns the list of json property to value mapping"""
174
+ for key, prop in self.__class__.rattribute_map.items():
175
+ yield key, getattr(self, prop)
176
+
177
+ def get(self, key, default=None):
178
+ """Get the value of the provided json property, or default"""
179
+ key = self._map_key(key, raise_on_error=False)
180
+ if key:
181
+ return getattr(self, key, default)
182
+ return default
183
+
184
+ def _map_key(self, key, raise_on_error=True):
185
+ result = self.__class__.rattribute_map.get(key)
186
+ if result is None:
187
+ if raise_on_error:
188
+ raise AttributeError('Invalid attribute name: {}'.format(key))
189
+ return None
190
+ return '_' + result