wds-client 0.7.0__py3-none-any.whl → 0.8.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.
Files changed (58) hide show
  1. wds_client/__init__.py +8 -10
  2. wds_client/api/__init__.py +1 -2
  3. wds_client/api/capabilities_api.py +237 -102
  4. wds_client/api/cloning_api.py +782 -329
  5. wds_client/api/general_wds_information_api.py +463 -191
  6. wds_client/api/import_api.py +288 -127
  7. wds_client/api/instances_api.py +783 -333
  8. wds_client/api/job_api.py +518 -215
  9. wds_client/api/records_api.py +2512 -1089
  10. wds_client/api/schema_api.py +1450 -626
  11. wds_client/api_client.py +414 -310
  12. wds_client/api_response.py +21 -0
  13. wds_client/configuration.py +110 -53
  14. wds_client/exceptions.py +99 -20
  15. wds_client/models/__init__.py +4 -8
  16. wds_client/models/app.py +68 -125
  17. wds_client/models/attribute_data_type.py +31 -94
  18. wds_client/models/attribute_schema.py +71 -157
  19. wds_client/models/attribute_schema_update.py +69 -127
  20. wds_client/models/backup_job.py +96 -298
  21. wds_client/models/backup_response.py +70 -157
  22. wds_client/models/backup_restore_request.py +68 -129
  23. wds_client/models/batch_operation.py +83 -137
  24. wds_client/models/batch_record_request.py +70 -160
  25. wds_client/models/batch_response.py +68 -127
  26. wds_client/models/build.py +79 -207
  27. wds_client/models/capabilities.py +83 -103
  28. wds_client/models/clone_job.py +96 -298
  29. wds_client/models/clone_response.py +68 -129
  30. wds_client/models/commit.py +69 -125
  31. wds_client/models/error_response.py +78 -222
  32. wds_client/models/generic_job.py +102 -334
  33. wds_client/models/git.py +76 -129
  34. wds_client/models/import_request.py +77 -165
  35. wds_client/models/job.py +87 -243
  36. wds_client/models/job_v1.py +97 -277
  37. wds_client/models/record_query_response.py +86 -162
  38. wds_client/models/record_request.py +60 -96
  39. wds_client/models/record_response.py +70 -160
  40. wds_client/models/record_type_schema.py +84 -191
  41. wds_client/models/search_filter.py +60 -95
  42. wds_client/models/search_request.py +84 -220
  43. wds_client/models/search_sort_direction.py +17 -80
  44. wds_client/models/status_response.py +68 -125
  45. wds_client/models/tsv_upload_response.py +68 -127
  46. wds_client/models/version_response.py +86 -155
  47. wds_client/py.typed +0 -0
  48. wds_client/rest.py +136 -170
  49. wds_client-0.8.0.dist-info/METADATA +17 -0
  50. wds_client-0.8.0.dist-info/RECORD +52 -0
  51. wds_client/models/backup_job_all_of.py +0 -148
  52. wds_client/models/clone_job_all_of.py +0 -148
  53. wds_client/models/generic_job_all_of.py +0 -150
  54. wds_client/models/inline_object.py +0 -123
  55. wds_client-0.7.0.dist-info/METADATA +0 -16
  56. wds_client-0.7.0.dist-info/RECORD +0 -54
  57. {wds_client-0.7.0.dist-info → wds_client-0.8.0.dist-info}/WHEEL +0 -0
  58. {wds_client-0.7.0.dist-info → wds_client-0.8.0.dist-info}/top_level.txt +0 -0
@@ -3,184 +3,96 @@
3
3
  """
4
4
  Workspace Data Service
5
5
 
6
- This page lists current APIs. As of v0.2, all APIs are subject to change without notice. # noqa: E501
6
+ This page lists current APIs. All v0.2 APIs are subject to change without notice. Changelog at [https://github.com/DataBiosphere/terra-workspace-data-service/releases](https://github.com/DataBiosphere/terra-workspace-data-service/releases)
7
7
 
8
8
  The version of the OpenAPI document: v0.2
9
- Generated by: https://openapi-generator.tech
10
- """
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
11
13
 
12
14
 
15
+ from __future__ import annotations
13
16
  import pprint
14
17
  import re # noqa: F401
18
+ import json
15
19
 
16
- import six
17
-
18
- from wds_client.configuration import Configuration
19
-
20
-
21
- class ImportRequest(object):
22
- """NOTE: This class is auto generated by OpenAPI Generator.
23
- Ref: https://openapi-generator.tech
24
-
25
- Do not edit the class manually.
26
- """
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
27
24
 
25
+ class ImportRequest(BaseModel):
28
26
  """
29
- Attributes:
30
- openapi_types (dict): The key is attribute name
31
- and the value is attribute type.
32
- attribute_map (dict): The key is attribute name
33
- and the value is json key in definition.
34
- """
35
- openapi_types = {
36
- 'type': 'str',
37
- 'url': 'str',
38
- 'options': 'dict(str, object)'
39
- }
40
-
41
- attribute_map = {
42
- 'type': 'type',
43
- 'url': 'url',
44
- 'options': 'options'
45
- }
46
-
47
- def __init__(self, type=None, url=None, options=None, local_vars_configuration=None): # noqa: E501
48
- """ImportRequest - a model defined in OpenAPI""" # noqa: E501
49
- if local_vars_configuration is None:
50
- local_vars_configuration = Configuration()
51
- self.local_vars_configuration = local_vars_configuration
52
-
53
- self._type = None
54
- self._url = None
55
- self._options = None
56
- self.discriminator = None
57
-
58
- self.type = type
59
- self.url = url
60
- if options is not None:
61
- self.options = options
62
-
63
- @property
64
- def type(self):
65
- """Gets the type of this ImportRequest. # noqa: E501
66
-
67
- format of file to import # noqa: E501
68
-
69
- :return: The type of this ImportRequest. # noqa: E501
70
- :rtype: str
27
+ ImportRequest
28
+ """ # noqa: E501
29
+ type: StrictStr = Field(description="format of file to import")
30
+ url: StrictStr = Field(description="url from which to import")
31
+ options: Optional[Dict[str, Any]] = Field(default=None, description="key-value pairs to configure this import. Options vary based on the import file type.")
32
+ __properties: ClassVar[List[str]] = ["type", "url", "options"]
33
+
34
+ @field_validator('type')
35
+ def type_validate_enum(cls, value):
36
+ """Validates the enum"""
37
+ if value not in set(['PFB', 'RAWLSJSON', 'TDRMANIFEST']):
38
+ raise ValueError("must be one of enum values ('PFB', 'RAWLSJSON', 'TDRMANIFEST')")
39
+ return value
40
+
41
+ model_config = ConfigDict(
42
+ populate_by_name=True,
43
+ validate_assignment=True,
44
+ protected_namespaces=(),
45
+ )
46
+
47
+
48
+ def to_str(self) -> str:
49
+ """Returns the string representation of the model using alias"""
50
+ return pprint.pformat(self.model_dump(by_alias=True))
51
+
52
+ def to_json(self) -> str:
53
+ """Returns the JSON representation of the model using alias"""
54
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
55
+ return json.dumps(self.to_dict())
56
+
57
+ @classmethod
58
+ def from_json(cls, json_str: str) -> Optional[Self]:
59
+ """Create an instance of ImportRequest from a JSON string"""
60
+ return cls.from_dict(json.loads(json_str))
61
+
62
+ def to_dict(self) -> Dict[str, Any]:
63
+ """Return the dictionary representation of the model using alias.
64
+
65
+ This has the following differences from calling pydantic's
66
+ `self.model_dump(by_alias=True)`:
67
+
68
+ * `None` is only added to the output dict for nullable fields that
69
+ were set at model initialization. Other fields with value `None`
70
+ are ignored.
71
71
  """
72
- return self._type
72
+ excluded_fields: Set[str] = set([
73
+ ])
73
74
 
74
- @type.setter
75
- def type(self, type):
76
- """Sets the type of this ImportRequest.
75
+ _dict = self.model_dump(
76
+ by_alias=True,
77
+ exclude=excluded_fields,
78
+ exclude_none=True,
79
+ )
80
+ return _dict
77
81
 
78
- format of file to import # noqa: E501
82
+ @classmethod
83
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
84
+ """Create an instance of ImportRequest from a dict"""
85
+ if obj is None:
86
+ return None
79
87
 
80
- :param type: The type of this ImportRequest. # noqa: E501
81
- :type: str
82
- """
83
- if self.local_vars_configuration.client_side_validation and type is None: # noqa: E501
84
- raise ValueError("Invalid value for `type`, must not be `None`") # noqa: E501
85
- allowed_values = ["PFB", "RAWLSJSON", "TDRMANIFEST"] # noqa: E501
86
- if self.local_vars_configuration.client_side_validation and type not in allowed_values: # noqa: E501
87
- raise ValueError(
88
- "Invalid value for `type` ({0}), must be one of {1}" # noqa: E501
89
- .format(type, allowed_values)
90
- )
88
+ if not isinstance(obj, dict):
89
+ return cls.model_validate(obj)
91
90
 
92
- self._type = type
91
+ _obj = cls.model_validate({
92
+ "type": obj.get("type"),
93
+ "url": obj.get("url"),
94
+ "options": obj.get("options")
95
+ })
96
+ return _obj
93
97
 
94
- @property
95
- def url(self):
96
- """Gets the url of this ImportRequest. # noqa: E501
97
-
98
- url from which to import # noqa: E501
99
-
100
- :return: The url of this ImportRequest. # noqa: E501
101
- :rtype: str
102
- """
103
- return self._url
104
-
105
- @url.setter
106
- def url(self, url):
107
- """Sets the url of this ImportRequest.
108
-
109
- url from which to import # noqa: E501
110
-
111
- :param url: The url of this ImportRequest. # noqa: E501
112
- :type: str
113
- """
114
- if self.local_vars_configuration.client_side_validation and url is None: # noqa: E501
115
- raise ValueError("Invalid value for `url`, must not be `None`") # noqa: E501
116
-
117
- self._url = url
118
-
119
- @property
120
- def options(self):
121
- """Gets the options of this ImportRequest. # noqa: E501
122
-
123
- key-value pairs to configure this import. Options vary based on the import file type. # noqa: E501
124
-
125
- :return: The options of this ImportRequest. # noqa: E501
126
- :rtype: dict(str, object)
127
- """
128
- return self._options
129
-
130
- @options.setter
131
- def options(self, options):
132
- """Sets the options of this ImportRequest.
133
-
134
- key-value pairs to configure this import. Options vary based on the import file type. # noqa: E501
135
-
136
- :param options: The options of this ImportRequest. # noqa: E501
137
- :type: dict(str, object)
138
- """
139
98
 
140
- self._options = options
141
-
142
- def to_dict(self):
143
- """Returns the model properties as a dict"""
144
- result = {}
145
-
146
- for attr, _ in six.iteritems(self.openapi_types):
147
- value = getattr(self, attr)
148
- if isinstance(value, list):
149
- result[attr] = list(map(
150
- lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
151
- value
152
- ))
153
- elif hasattr(value, "to_dict"):
154
- result[attr] = value.to_dict()
155
- elif isinstance(value, dict):
156
- result[attr] = dict(map(
157
- lambda item: (item[0], item[1].to_dict())
158
- if hasattr(item[1], "to_dict") else item,
159
- value.items()
160
- ))
161
- else:
162
- result[attr] = value
163
-
164
- return result
165
-
166
- def to_str(self):
167
- """Returns the string representation of the model"""
168
- return pprint.pformat(self.to_dict())
169
-
170
- def __repr__(self):
171
- """For `print` and `pprint`"""
172
- return self.to_str()
173
-
174
- def __eq__(self, other):
175
- """Returns true if both objects are equal"""
176
- if not isinstance(other, ImportRequest):
177
- return False
178
-
179
- return self.to_dict() == other.to_dict()
180
-
181
- def __ne__(self, other):
182
- """Returns true if both objects are not equal"""
183
- if not isinstance(other, ImportRequest):
184
- return True
185
-
186
- return self.to_dict() != other.to_dict()
wds_client/models/job.py CHANGED
@@ -3,258 +3,102 @@
3
3
  """
4
4
  Workspace Data Service
5
5
 
6
- This page lists current APIs. As of v0.2, all APIs are subject to change without notice. # noqa: E501
6
+ This page lists current APIs. All v0.2 APIs are subject to change without notice. Changelog at [https://github.com/DataBiosphere/terra-workspace-data-service/releases](https://github.com/DataBiosphere/terra-workspace-data-service/releases)
7
7
 
8
8
  The version of the OpenAPI document: v0.2
9
- Generated by: https://openapi-generator.tech
10
- """
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
11
13
 
12
14
 
15
+ from __future__ import annotations
13
16
  import pprint
14
17
  import re # noqa: F401
18
+ import json
15
19
 
16
- import six
17
-
18
- from wds_client.configuration import Configuration
19
-
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
20
24
 
21
- class Job(object):
22
- """NOTE: This class is auto generated by OpenAPI Generator.
23
- Ref: https://openapi-generator.tech
24
-
25
- Do not edit the class manually.
26
- """
27
-
28
- """
29
- Attributes:
30
- openapi_types (dict): The key is attribute name
31
- and the value is attribute type.
32
- attribute_map (dict): The key is attribute name
33
- and the value is json key in definition.
25
+ class Job(BaseModel):
34
26
  """
35
- openapi_types = {
36
- 'job_id': 'str',
37
- 'job_type': 'str',
38
- 'status': 'str',
39
- 'created': 'str',
40
- 'updated': 'str',
41
- 'error_message': 'str'
42
- }
43
-
44
- attribute_map = {
45
- 'job_id': 'jobId',
46
- 'job_type': 'jobType',
47
- 'status': 'status',
48
- 'created': 'created',
49
- 'updated': 'updated',
50
- 'error_message': 'errorMessage'
51
- }
52
-
53
- def __init__(self, job_id=None, job_type=None, status=None, created=None, updated=None, error_message=None, local_vars_configuration=None): # noqa: E501
54
- """Job - a model defined in OpenAPI""" # noqa: E501
55
- if local_vars_configuration is None:
56
- local_vars_configuration = Configuration()
57
- self.local_vars_configuration = local_vars_configuration
58
-
59
- self._job_id = None
60
- self._job_type = None
61
- self._status = None
62
- self._created = None
63
- self._updated = None
64
- self._error_message = None
65
- self.discriminator = None
66
-
67
- self.job_id = job_id
68
- if job_type is not None:
69
- self.job_type = job_type
70
- self.status = status
71
- self.created = created
72
- self.updated = updated
73
- if error_message is not None:
74
- self.error_message = error_message
75
-
76
- @property
77
- def job_id(self):
78
- """Gets the job_id of this Job. # noqa: E501
79
-
80
-
81
- :return: The job_id of this Job. # noqa: E501
82
- :rtype: str
83
- """
84
- return self._job_id
85
-
86
- @job_id.setter
87
- def job_id(self, job_id):
88
- """Sets the job_id of this Job.
89
-
90
-
91
- :param job_id: The job_id of this Job. # noqa: E501
92
- :type: str
93
- """
94
- if self.local_vars_configuration.client_side_validation and job_id is None: # noqa: E501
95
- raise ValueError("Invalid value for `job_id`, must not be `None`") # noqa: E501
96
-
97
- self._job_id = job_id
98
-
99
- @property
100
- def job_type(self):
101
- """Gets the job_type of this Job. # noqa: E501
102
-
103
-
104
- :return: The job_type of this Job. # noqa: E501
105
- :rtype: str
106
- """
107
- return self._job_type
108
-
109
- @job_type.setter
110
- def job_type(self, job_type):
111
- """Sets the job_type of this Job.
112
-
113
-
114
- :param job_type: The job_type of this Job. # noqa: E501
115
- :type: str
116
- """
117
-
118
- self._job_type = job_type
119
-
120
- @property
121
- def status(self):
122
- """Gets the status of this Job. # noqa: E501
123
-
124
-
125
- :return: The status of this Job. # noqa: E501
126
- :rtype: str
127
- """
128
- return self._status
129
-
130
- @status.setter
131
- def status(self, status):
132
- """Sets the status of this Job.
133
-
134
-
135
- :param status: The status of this Job. # noqa: E501
136
- :type: str
137
- """
138
- if self.local_vars_configuration.client_side_validation and status is None: # noqa: E501
139
- raise ValueError("Invalid value for `status`, must not be `None`") # noqa: E501
140
- allowed_values = ["QUEUED", "RUNNING", "SUCCEEDED", "ERROR", "CANCELLED", "UNKNOWN"] # noqa: E501
141
- if self.local_vars_configuration.client_side_validation and status not in allowed_values: # noqa: E501
142
- raise ValueError(
143
- "Invalid value for `status` ({0}), must be one of {1}" # noqa: E501
144
- .format(status, allowed_values)
145
- )
146
-
147
- self._status = status
148
-
149
- @property
150
- def created(self):
151
- """Gets the created of this Job. # noqa: E501
152
-
153
-
154
- :return: The created of this Job. # noqa: E501
155
- :rtype: str
27
+ Job
28
+ """ # noqa: E501
29
+ job_id: StrictStr = Field(alias="jobId")
30
+ job_type: Optional[StrictStr] = Field(default=None, alias="jobType")
31
+ status: StrictStr
32
+ created: StrictStr
33
+ updated: StrictStr
34
+ error_message: Optional[StrictStr] = Field(default=None, alias="errorMessage")
35
+ __properties: ClassVar[List[str]] = ["jobId", "jobType", "status", "created", "updated", "errorMessage"]
36
+
37
+ @field_validator('status')
38
+ def status_validate_enum(cls, value):
39
+ """Validates the enum"""
40
+ if value not in set(['QUEUED', 'RUNNING', 'SUCCEEDED', 'ERROR', 'CANCELLED', 'UNKNOWN']):
41
+ raise ValueError("must be one of enum values ('QUEUED', 'RUNNING', 'SUCCEEDED', 'ERROR', 'CANCELLED', 'UNKNOWN')")
42
+ return value
43
+
44
+ model_config = ConfigDict(
45
+ populate_by_name=True,
46
+ validate_assignment=True,
47
+ protected_namespaces=(),
48
+ )
49
+
50
+
51
+ def to_str(self) -> str:
52
+ """Returns the string representation of the model using alias"""
53
+ return pprint.pformat(self.model_dump(by_alias=True))
54
+
55
+ def to_json(self) -> str:
56
+ """Returns the JSON representation of the model using alias"""
57
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
58
+ return json.dumps(self.to_dict())
59
+
60
+ @classmethod
61
+ def from_json(cls, json_str: str) -> Optional[Self]:
62
+ """Create an instance of Job from a JSON string"""
63
+ return cls.from_dict(json.loads(json_str))
64
+
65
+ def to_dict(self) -> Dict[str, Any]:
66
+ """Return the dictionary representation of the model using alias.
67
+
68
+ This has the following differences from calling pydantic's
69
+ `self.model_dump(by_alias=True)`:
70
+
71
+ * `None` is only added to the output dict for nullable fields that
72
+ were set at model initialization. Other fields with value `None`
73
+ are ignored.
156
74
  """
157
- return self._created
158
-
159
- @created.setter
160
- def created(self, created):
161
- """Sets the created of this Job.
162
-
163
-
164
- :param created: The created of this Job. # noqa: E501
165
- :type: str
166
- """
167
- if self.local_vars_configuration.client_side_validation and created is None: # noqa: E501
168
- raise ValueError("Invalid value for `created`, must not be `None`") # noqa: E501
169
-
170
- self._created = created
171
-
172
- @property
173
- def updated(self):
174
- """Gets the updated of this Job. # noqa: E501
175
-
176
-
177
- :return: The updated of this Job. # noqa: E501
178
- :rtype: str
179
- """
180
- return self._updated
181
-
182
- @updated.setter
183
- def updated(self, updated):
184
- """Sets the updated of this Job.
185
-
186
-
187
- :param updated: The updated of this Job. # noqa: E501
188
- :type: str
189
- """
190
- if self.local_vars_configuration.client_side_validation and updated is None: # noqa: E501
191
- raise ValueError("Invalid value for `updated`, must not be `None`") # noqa: E501
192
-
193
- self._updated = updated
194
-
195
- @property
196
- def error_message(self):
197
- """Gets the error_message of this Job. # noqa: E501
198
-
199
-
200
- :return: The error_message of this Job. # noqa: E501
201
- :rtype: str
202
- """
203
- return self._error_message
204
-
205
- @error_message.setter
206
- def error_message(self, error_message):
207
- """Sets the error_message of this Job.
208
-
209
-
210
- :param error_message: The error_message of this Job. # noqa: E501
211
- :type: str
212
- """
213
-
214
- self._error_message = error_message
215
-
216
- def to_dict(self):
217
- """Returns the model properties as a dict"""
218
- result = {}
219
-
220
- for attr, _ in six.iteritems(self.openapi_types):
221
- value = getattr(self, attr)
222
- if isinstance(value, list):
223
- result[attr] = list(map(
224
- lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
225
- value
226
- ))
227
- elif hasattr(value, "to_dict"):
228
- result[attr] = value.to_dict()
229
- elif isinstance(value, dict):
230
- result[attr] = dict(map(
231
- lambda item: (item[0], item[1].to_dict())
232
- if hasattr(item[1], "to_dict") else item,
233
- value.items()
234
- ))
235
- else:
236
- result[attr] = value
237
-
238
- return result
239
-
240
- def to_str(self):
241
- """Returns the string representation of the model"""
242
- return pprint.pformat(self.to_dict())
243
-
244
- def __repr__(self):
245
- """For `print` and `pprint`"""
246
- return self.to_str()
247
-
248
- def __eq__(self, other):
249
- """Returns true if both objects are equal"""
250
- if not isinstance(other, Job):
251
- return False
252
-
253
- return self.to_dict() == other.to_dict()
75
+ excluded_fields: Set[str] = set([
76
+ ])
77
+
78
+ _dict = self.model_dump(
79
+ by_alias=True,
80
+ exclude=excluded_fields,
81
+ exclude_none=True,
82
+ )
83
+ return _dict
84
+
85
+ @classmethod
86
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
87
+ """Create an instance of Job from a dict"""
88
+ if obj is None:
89
+ return None
90
+
91
+ if not isinstance(obj, dict):
92
+ return cls.model_validate(obj)
93
+
94
+ _obj = cls.model_validate({
95
+ "jobId": obj.get("jobId"),
96
+ "jobType": obj.get("jobType"),
97
+ "status": obj.get("status"),
98
+ "created": obj.get("created"),
99
+ "updated": obj.get("updated"),
100
+ "errorMessage": obj.get("errorMessage")
101
+ })
102
+ return _obj
254
103
 
255
- def __ne__(self, other):
256
- """Returns true if both objects are not equal"""
257
- if not isinstance(other, Job):
258
- return True
259
104
 
260
- return self.to_dict() != other.to_dict()