elabapi-python 5.5.11__py3-none-any.whl → 5.6.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 (48) hide show
  1. elabapi_python/__init__.py +7 -1
  2. elabapi_python/api/__init__.py +3 -1
  3. elabapi_python/api/branding_api.py +247 -0
  4. elabapi_python/api/containers_api.py +2 -2
  5. elabapi_python/api/{extra_fields_keys_api.py → custom_fields_keys_api.py} +14 -14
  6. elabapi_python/api/experiments_api.py +5 -5
  7. elabapi_python/api/experiments_templates_api.py +5 -5
  8. elabapi_python/api/instance_api.py +130 -0
  9. elabapi_python/api/items_api.py +5 -5
  10. elabapi_python/api/items_types__resources_templates_api.py +5 -5
  11. elabapi_python/api/notifications_api.py +11 -3
  12. elabapi_python/api/storage_units_api.py +2 -2
  13. elabapi_python/api_client.py +1 -1
  14. elabapi_python/configuration.py +1 -1
  15. elabapi_python/models/__init__.py +4 -0
  16. elabapi_python/models/all_ofentity_editable_metadatamerge.py +90 -0
  17. elabapi_python/models/branding_id_body.py +147 -0
  18. elabapi_python/models/containers_subid_body1.py +31 -3
  19. elabapi_python/models/entity_and_item_editable.py +93 -3
  20. elabapi_python/models/entity_editable.py +57 -1
  21. elabapi_python/models/event.py +407 -109
  22. elabapi_python/models/events_id_body.py +10 -10
  23. elabapi_python/models/id_experiments_categories_body.py +3 -31
  24. elabapi_python/models/id_experiments_status_body.py +3 -31
  25. elabapi_python/models/id_items_status_body.py +3 -31
  26. elabapi_python/models/id_resources_categories_body.py +3 -31
  27. elabapi_python/models/idp.py +53 -27
  28. elabapi_python/models/idps_body.py +59 -31
  29. elabapi_python/models/instance_body.py +84 -0
  30. elabapi_python/models/item.py +93 -3
  31. elabapi_python/models/item_editable.py +93 -3
  32. elabapi_python/models/metadata_elabftw.py +2 -2
  33. elabapi_python/models/notifications_subid_body.py +118 -0
  34. elabapi_python/models/statuslike.py +3 -29
  35. elabapi_python/models/storage_units_id_body.py +33 -6
  36. elabapi_python/models/team.py +31 -1
  37. {elabapi_python-5.5.11.dist-info → elabapi_python-5.6.0.dist-info}/METADATA +1 -1
  38. {elabapi_python-5.5.11.dist-info → elabapi_python-5.6.0.dist-info}/RECORD +48 -36
  39. {elabapi_python-5.5.11.dist-info → elabapi_python-5.6.0.dist-info}/WHEEL +1 -1
  40. test/test_all_ofentity_editable_metadatamerge.py +39 -0
  41. test/test_branding_api.py +47 -0
  42. test/test_branding_id_body.py +39 -0
  43. test/test_custom_fields_keys_api.py +40 -0
  44. test/{test_extra_fields_keys_api.py → test_instance_api.py} +7 -7
  45. test/test_instance_body.py +39 -0
  46. test/test_notifications_api.py +1 -1
  47. test/test_notifications_subid_body.py +39 -0
  48. {elabapi_python-5.5.11.dist-info → elabapi_python-5.6.0.dist-info}/top_level.txt +0 -0
@@ -528,7 +528,7 @@ class ItemsTypesResourcesTemplatesApi(object):
528
528
  :param str extended: Extended search (advanced query).
529
529
  :param int related: Look only for entries linked to this entry id.
530
530
  :param str related_origin: When using the \"related\" query parameter, select the type of the related ID (experiments or items)
531
- :param str cat: Add a filter on the Category. Supports comma separated list of numbers, including \"null\".
531
+ :param str category: Add a filter on the Category. Supports comma separated list of numbers, including \"null\".
532
532
  :param str status: Add a filter on the Status. Supports comma separated list of numbers, including \"null\".
533
533
  :param list[str] tags: An array of tags for filtering results containing all of these tags.
534
534
  :param int limit: Limit the number of results.
@@ -562,7 +562,7 @@ class ItemsTypesResourcesTemplatesApi(object):
562
562
  :param str extended: Extended search (advanced query).
563
563
  :param int related: Look only for entries linked to this entry id.
564
564
  :param str related_origin: When using the \"related\" query parameter, select the type of the related ID (experiments or items)
565
- :param str cat: Add a filter on the Category. Supports comma separated list of numbers, including \"null\".
565
+ :param str category: Add a filter on the Category. Supports comma separated list of numbers, including \"null\".
566
566
  :param str status: Add a filter on the Status. Supports comma separated list of numbers, including \"null\".
567
567
  :param list[str] tags: An array of tags for filtering results containing all of these tags.
568
568
  :param int limit: Limit the number of results.
@@ -577,7 +577,7 @@ class ItemsTypesResourcesTemplatesApi(object):
577
577
  returns the request thread.
578
578
  """
579
579
 
580
- all_params = ['q', 'extended', 'related', 'related_origin', 'cat', 'status', 'tags', 'limit', 'offset', 'owner', 'scope', 'order', 'sort', 'state'] # noqa: E501
580
+ all_params = ['q', 'extended', 'related', 'related_origin', 'category', 'status', 'tags', 'limit', 'offset', 'owner', 'scope', 'order', 'sort', 'state'] # noqa: E501
581
581
  all_params.append('async_req')
582
582
  all_params.append('_return_http_data_only')
583
583
  all_params.append('_preload_content')
@@ -606,8 +606,8 @@ class ItemsTypesResourcesTemplatesApi(object):
606
606
  query_params.append(('related', params['related'])) # noqa: E501
607
607
  if 'related_origin' in params:
608
608
  query_params.append(('related_origin', params['related_origin'])) # noqa: E501
609
- if 'cat' in params:
610
- query_params.append(('cat', params['cat'])) # noqa: E501
609
+ if 'category' in params:
610
+ query_params.append(('category', params['category'])) # noqa: E501
611
611
  if 'status' in params:
612
612
  query_params.append(('status', params['status'])) # noqa: E501
613
613
  if 'tags' in params:
@@ -128,7 +128,7 @@ class NotificationsApi(object):
128
128
  collection_formats=collection_formats)
129
129
 
130
130
  def patch_notification(self, id, subid, **kwargs): # noqa: E501
131
- """Actions on a notification. Only changing `is_ack` column is possible. # noqa: E501
131
+ """Update the acknowledgment status of a notification. # noqa: E501
132
132
 
133
133
  This method makes a synchronous HTTP request by default. To make an
134
134
  asynchronous HTTP request, please pass async_req=True
@@ -138,6 +138,7 @@ class NotificationsApi(object):
138
138
  :param async_req bool
139
139
  :param Id4 id: ID of the user or `me`. (required)
140
140
  :param int subid: ID of the notification. (required)
141
+ :param NotificationsSubidBody body: Defines whether the notification is acknowledged.
141
142
  :return: Notification
142
143
  If the method is called asynchronously,
143
144
  returns the request thread.
@@ -150,7 +151,7 @@ class NotificationsApi(object):
150
151
  return data
151
152
 
152
153
  def patch_notification_with_http_info(self, id, subid, **kwargs): # noqa: E501
153
- """Actions on a notification. Only changing `is_ack` column is possible. # noqa: E501
154
+ """Update the acknowledgment status of a notification. # noqa: E501
154
155
 
155
156
  This method makes a synchronous HTTP request by default. To make an
156
157
  asynchronous HTTP request, please pass async_req=True
@@ -160,12 +161,13 @@ class NotificationsApi(object):
160
161
  :param async_req bool
161
162
  :param Id4 id: ID of the user or `me`. (required)
162
163
  :param int subid: ID of the notification. (required)
164
+ :param NotificationsSubidBody body: Defines whether the notification is acknowledged.
163
165
  :return: Notification
164
166
  If the method is called asynchronously,
165
167
  returns the request thread.
166
168
  """
167
169
 
168
- all_params = ['id', 'subid'] # noqa: E501
170
+ all_params = ['id', 'subid', 'body'] # noqa: E501
169
171
  all_params.append('async_req')
170
172
  all_params.append('_return_http_data_only')
171
173
  all_params.append('_preload_content')
@@ -205,10 +207,16 @@ class NotificationsApi(object):
205
207
  local_var_files = {}
206
208
 
207
209
  body_params = None
210
+ if 'body' in params:
211
+ body_params = params['body']
208
212
  # HTTP header `Accept`
209
213
  header_params['Accept'] = self.api_client.select_header_accept(
210
214
  ['application/json']) # noqa: E501
211
215
 
216
+ # HTTP header `Content-Type`
217
+ header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
218
+ ['application/json']) # noqa: E501
219
+
212
220
  # Authentication setting
213
221
  auth_settings = ['token'] # noqa: E501
214
222
 
@@ -130,7 +130,7 @@ class StorageUnitsApi(object):
130
130
  def patch_storage_unit(self, id, **kwargs): # noqa: E501
131
131
  """Modify a storage unit. # noqa: E501
132
132
 
133
- Update the name of a storage unit. Requires permission to manage inventory locations. # noqa: E501
133
+ Update the name and/or the parent of a storage unit. Setting `parent_id` reparents the unit (and everything under it) in place. Pass `parent_id: null` to move the unit to the root. Requires permission to manage inventory locations. # noqa: E501
134
134
  This method makes a synchronous HTTP request by default. To make an
135
135
  asynchronous HTTP request, please pass async_req=True
136
136
  >>> thread = api.patch_storage_unit(id, async_req=True)
@@ -153,7 +153,7 @@ class StorageUnitsApi(object):
153
153
  def patch_storage_unit_with_http_info(self, id, **kwargs): # noqa: E501
154
154
  """Modify a storage unit. # noqa: E501
155
155
 
156
- Update the name of a storage unit. Requires permission to manage inventory locations. # noqa: E501
156
+ Update the name and/or the parent of a storage unit. Setting `parent_id` reparents the unit (and everything under it) in place. Pass `parent_id: null` to move the unit to the root. Requires permission to manage inventory locations. # noqa: E501
157
157
  This method makes a synchronous HTTP request by default. To make an
158
158
  asynchronous HTTP request, please pass async_req=True
159
159
  >>> thread = api.patch_storage_unit_with_http_info(id, async_req=True)
@@ -72,7 +72,7 @@ class ApiClient(object):
72
72
  self.default_headers[header_name] = header_value
73
73
  self.cookie = cookie
74
74
  # Set default User-Agent.
75
- self.user_agent = 'Swagger-Codegen/5.5.11/python'
75
+ self.user_agent = 'Swagger-Codegen/5.6.0/python'
76
76
 
77
77
  def __del__(self):
78
78
  self.pool.close()
@@ -250,5 +250,5 @@ class Configuration(six.with_metaclass(TypeWithDefault, object)):
250
250
  "OS: {env}\n"\
251
251
  "Python Version: {pyversion}\n"\
252
252
  "Version of the API: 2.0.0\n"\
253
- "SDK Package Version: 5.5.11".\
253
+ "SDK Package Version: 5.6.0".\
254
254
  format(env=sys.platform, pyversion=sys.version)
@@ -14,9 +14,11 @@
14
14
  from __future__ import absolute_import
15
15
 
16
16
  # import models into model package
17
+ from elabapi_python.models.all_ofentity_editable_metadatamerge import AllOfentityEditableMetadatamerge
17
18
  from elabapi_python.models.any_ofuploads_subid_body1 import AnyOfuploadsSubidBody1
18
19
  from elabapi_python.models.apikey import Apikey
19
20
  from elabapi_python.models.apikeys_body import ApikeysBody
21
+ from elabapi_python.models.branding_id_body import BrandingIdBody
20
22
  from elabapi_python.models.changelog import Changelog
21
23
  from elabapi_python.models.comment import Comment
22
24
  from elabapi_python.models.compound import Compound
@@ -95,6 +97,7 @@ from elabapi_python.models.inline_response2008 import InlineResponse2008
95
97
  from elabapi_python.models.inline_response2009 import InlineResponse2009
96
98
  from elabapi_python.models.inline_response2009_embedded import InlineResponse2009Embedded
97
99
  from elabapi_python.models.inline_response2009_embedded_entries import InlineResponse2009EmbeddedEntries
100
+ from elabapi_python.models.instance_body import InstanceBody
98
101
  from elabapi_python.models.item import Item
99
102
  from elabapi_python.models.item_editable import ItemEditable
100
103
  from elabapi_python.models.items_links_subid_body import ItemsLinksSubidBody
@@ -105,6 +108,7 @@ from elabapi_python.models.metadata_elabftw import MetadataElabftw
105
108
  from elabapi_python.models.metadata_elabftw_extra_fields_groups import MetadataElabftwExtraFieldsGroups
106
109
  from elabapi_python.models.metadata_extra_fields import MetadataExtraFields
107
110
  from elabapi_python.models.notification import Notification
111
+ from elabapi_python.models.notifications_subid_body import NotificationsSubidBody
108
112
  from elabapi_python.models.patch_action import PatchAction
109
113
  from elabapi_python.models.revision import Revision
110
114
  from elabapi_python.models.revisions_subid_body import RevisionsSubidBody
@@ -0,0 +1,90 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ eLabFTW REST API v2 Documentation
5
+
6
+ This document describes all available endpoints and methods for eLabFTW's API version 2. # noqa: E501
7
+
8
+ OpenAPI spec version: 2.0.0
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+ from elabapi_python.models.metadata import Metadata # noqa: F401,E501
18
+
19
+ class AllOfentityEditableMetadatamerge(Metadata):
20
+ """NOTE: This class is auto generated by the swagger code generator program.
21
+
22
+ Do not edit the class manually.
23
+ """
24
+ """
25
+ Attributes:
26
+ swagger_types (dict): The key is attribute name
27
+ and the value is attribute type.
28
+ attribute_map (dict): The key is attribute name
29
+ and the value is json key in definition.
30
+ """
31
+ swagger_types = {
32
+ }
33
+ if hasattr(Metadata, "swagger_types"):
34
+ swagger_types.update(Metadata.swagger_types)
35
+
36
+ attribute_map = {
37
+ }
38
+ if hasattr(Metadata, "attribute_map"):
39
+ attribute_map.update(Metadata.attribute_map)
40
+
41
+ def __init__(self, *args, **kwargs): # noqa: E501
42
+ """AllOfentityEditableMetadatamerge - a model defined in Swagger""" # noqa: E501
43
+ self.discriminator = None
44
+ Metadata.__init__(self, *args, **kwargs)
45
+
46
+ def to_dict(self):
47
+ """Returns the model properties as a dict"""
48
+ result = {}
49
+
50
+ for attr, _ in six.iteritems(self.swagger_types):
51
+ value = getattr(self, attr)
52
+ if isinstance(value, list):
53
+ result[attr] = list(map(
54
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
55
+ value
56
+ ))
57
+ elif hasattr(value, "to_dict"):
58
+ result[attr] = value.to_dict()
59
+ elif isinstance(value, dict):
60
+ result[attr] = dict(map(
61
+ lambda item: (item[0], item[1].to_dict())
62
+ if hasattr(item[1], "to_dict") else item,
63
+ value.items()
64
+ ))
65
+ else:
66
+ result[attr] = value
67
+ if issubclass(AllOfentityEditableMetadatamerge, dict):
68
+ for key, value in self.items():
69
+ result[key] = value
70
+
71
+ return result
72
+
73
+ def to_str(self):
74
+ """Returns the string representation of the model"""
75
+ return pprint.pformat(self.to_dict())
76
+
77
+ def __repr__(self):
78
+ """For `print` and `pprint`"""
79
+ return self.to_str()
80
+
81
+ def __eq__(self, other):
82
+ """Returns true if both objects are equal"""
83
+ if not isinstance(other, AllOfentityEditableMetadatamerge):
84
+ return False
85
+
86
+ return self.__dict__ == other.__dict__
87
+
88
+ def __ne__(self, other):
89
+ """Returns true if both objects are not equal"""
90
+ return not self == other
@@ -0,0 +1,147 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ eLabFTW REST API v2 Documentation
5
+
6
+ This document describes all available endpoints and methods for eLabFTW's API version 2. # noqa: E501
7
+
8
+ OpenAPI spec version: 2.0.0
9
+
10
+ Generated by: https://github.com/swagger-api/swagger-codegen.git
11
+ """
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ class BrandingIdBody(object):
19
+ """NOTE: This class is auto generated by the swagger code generator program.
20
+
21
+ Do not edit the class manually.
22
+ """
23
+ """
24
+ Attributes:
25
+ swagger_types (dict): The key is attribute name
26
+ and the value is attribute type.
27
+ attribute_map (dict): The key is attribute name
28
+ and the value is json key in definition.
29
+ """
30
+ swagger_types = {
31
+ 'action': 'str',
32
+ 'file': 'str'
33
+ }
34
+
35
+ attribute_map = {
36
+ 'action': 'action',
37
+ 'file': 'file'
38
+ }
39
+
40
+ def __init__(self, action='update', file=None): # noqa: E501
41
+ """BrandingIdBody - a model defined in Swagger""" # noqa: E501
42
+ self._action = None
43
+ self._file = None
44
+ self.discriminator = None
45
+ if action is not None:
46
+ self.action = action
47
+ self.file = file
48
+
49
+ @property
50
+ def action(self):
51
+ """Gets the action of this BrandingIdBody. # noqa: E501
52
+
53
+ Update a branding asset. Requires Sysadmin permissions. # noqa: E501
54
+
55
+ :return: The action of this BrandingIdBody. # noqa: E501
56
+ :rtype: str
57
+ """
58
+ return self._action
59
+
60
+ @action.setter
61
+ def action(self, action):
62
+ """Sets the action of this BrandingIdBody.
63
+
64
+ Update a branding asset. Requires Sysadmin permissions. # noqa: E501
65
+
66
+ :param action: The action of this BrandingIdBody. # noqa: E501
67
+ :type: str
68
+ """
69
+ allowed_values = ["update"] # noqa: E501
70
+ if action not in allowed_values:
71
+ raise ValueError(
72
+ "Invalid value for `action` ({0}), must be one of {1}" # noqa: E501
73
+ .format(action, allowed_values)
74
+ )
75
+
76
+ self._action = action
77
+
78
+ @property
79
+ def file(self):
80
+ """Gets the file of this BrandingIdBody. # noqa: E501
81
+
82
+ Branding file. Accepted types are SVG, PNG, JPEG, WebP and ICO. Maximum size is 1 MiB. # noqa: E501
83
+
84
+ :return: The file of this BrandingIdBody. # noqa: E501
85
+ :rtype: str
86
+ """
87
+ return self._file
88
+
89
+ @file.setter
90
+ def file(self, file):
91
+ """Sets the file of this BrandingIdBody.
92
+
93
+ Branding file. Accepted types are SVG, PNG, JPEG, WebP and ICO. Maximum size is 1 MiB. # noqa: E501
94
+
95
+ :param file: The file of this BrandingIdBody. # noqa: E501
96
+ :type: str
97
+ """
98
+ if file is None:
99
+ raise ValueError("Invalid value for `file`, must not be `None`") # noqa: E501
100
+
101
+ self._file = file
102
+
103
+ def to_dict(self):
104
+ """Returns the model properties as a dict"""
105
+ result = {}
106
+
107
+ for attr, _ in six.iteritems(self.swagger_types):
108
+ value = getattr(self, attr)
109
+ if isinstance(value, list):
110
+ result[attr] = list(map(
111
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
112
+ value
113
+ ))
114
+ elif hasattr(value, "to_dict"):
115
+ result[attr] = value.to_dict()
116
+ elif isinstance(value, dict):
117
+ result[attr] = dict(map(
118
+ lambda item: (item[0], item[1].to_dict())
119
+ if hasattr(item[1], "to_dict") else item,
120
+ value.items()
121
+ ))
122
+ else:
123
+ result[attr] = value
124
+ if issubclass(BrandingIdBody, dict):
125
+ for key, value in self.items():
126
+ result[key] = value
127
+
128
+ return result
129
+
130
+ def to_str(self):
131
+ """Returns the string representation of the model"""
132
+ return pprint.pformat(self.to_dict())
133
+
134
+ def __repr__(self):
135
+ """For `print` and `pprint`"""
136
+ return self.to_str()
137
+
138
+ def __eq__(self, other):
139
+ """Returns true if both objects are equal"""
140
+ if not isinstance(other, BrandingIdBody):
141
+ return False
142
+
143
+ return self.__dict__ == other.__dict__
144
+
145
+ def __ne__(self, other):
146
+ """Returns true if both objects are not equal"""
147
+ return not self == other
@@ -29,23 +29,28 @@ class ContainersSubidBody1(object):
29
29
  """
30
30
  swagger_types = {
31
31
  'qty_stored': 'float',
32
- 'qty_unit': 'str'
32
+ 'qty_unit': 'str',
33
+ 'storage_id': 'int'
33
34
  }
34
35
 
35
36
  attribute_map = {
36
37
  'qty_stored': 'qty_stored',
37
- 'qty_unit': 'qty_unit'
38
+ 'qty_unit': 'qty_unit',
39
+ 'storage_id': 'storage_id'
38
40
  }
39
41
 
40
- def __init__(self, qty_stored=None, qty_unit=None): # noqa: E501
42
+ def __init__(self, qty_stored=None, qty_unit=None, storage_id=None): # noqa: E501
41
43
  """ContainersSubidBody1 - a model defined in Swagger""" # noqa: E501
42
44
  self._qty_stored = None
43
45
  self._qty_unit = None
46
+ self._storage_id = None
44
47
  self.discriminator = None
45
48
  if qty_stored is not None:
46
49
  self.qty_stored = qty_stored
47
50
  if qty_unit is not None:
48
51
  self.qty_unit = qty_unit
52
+ if storage_id is not None:
53
+ self.storage_id = storage_id
49
54
 
50
55
  @property
51
56
  def qty_stored(self):
@@ -93,6 +98,29 @@ class ContainersSubidBody1(object):
93
98
 
94
99
  self._qty_unit = qty_unit
95
100
 
101
+ @property
102
+ def storage_id(self):
103
+ """Gets the storage_id of this ContainersSubidBody1. # noqa: E501
104
+
105
+ New storage unit id. Moves the container to that storage unit. Requires write access on the parent entity and (when `inventory_require_edit_rights=1`) the `can_manage_inventory_locations` permission. # noqa: E501
106
+
107
+ :return: The storage_id of this ContainersSubidBody1. # noqa: E501
108
+ :rtype: int
109
+ """
110
+ return self._storage_id
111
+
112
+ @storage_id.setter
113
+ def storage_id(self, storage_id):
114
+ """Sets the storage_id of this ContainersSubidBody1.
115
+
116
+ New storage unit id. Moves the container to that storage unit. Requires write access on the parent entity and (when `inventory_require_edit_rights=1`) the `can_manage_inventory_locations` permission. # noqa: E501
117
+
118
+ :param storage_id: The storage_id of this ContainersSubidBody1. # noqa: E501
119
+ :type: int
120
+ """
121
+
122
+ self._storage_id = storage_id
123
+
96
124
  def to_dict(self):
97
125
  """Returns the model properties as a dict"""
98
126
  result = {}
@@ -38,7 +38,10 @@ class EntityAndItemEditable(EntityEditable):
38
38
  'book_users_can_in_past': 'int',
39
39
  'book_is_cancellable': 'int',
40
40
  'book_cancel_minutes': 'int',
41
- 'booking_window_days': 'int'
41
+ 'booking_window_days': 'int',
42
+ 'booking_hourly_rate_notax': 'float',
43
+ 'booking_hourly_rate_tax': 'float',
44
+ 'booking_hourly_rate_currency': 'int'
42
45
  }
43
46
  if hasattr(EntityEditable, "swagger_types"):
44
47
  swagger_types.update(EntityEditable.swagger_types)
@@ -53,12 +56,15 @@ class EntityAndItemEditable(EntityEditable):
53
56
  'book_users_can_in_past': 'book_users_can_in_past',
54
57
  'book_is_cancellable': 'book_is_cancellable',
55
58
  'book_cancel_minutes': 'book_cancel_minutes',
56
- 'booking_window_days': 'booking_window_days'
59
+ 'booking_window_days': 'booking_window_days',
60
+ 'booking_hourly_rate_notax': 'booking_hourly_rate_notax',
61
+ 'booking_hourly_rate_tax': 'booking_hourly_rate_tax',
62
+ 'booking_hourly_rate_currency': 'booking_hourly_rate_currency'
57
63
  }
58
64
  if hasattr(EntityEditable, "attribute_map"):
59
65
  attribute_map.update(EntityEditable.attribute_map)
60
66
 
61
- def __init__(self, is_bookable=None, canbook_base=None, canbook=None, book_max_minutes=None, book_max_slots=None, book_can_overlap=None, book_users_can_in_past=None, book_is_cancellable=None, book_cancel_minutes=None, booking_window_days=None, *args, **kwargs): # noqa: E501
67
+ def __init__(self, is_bookable=None, canbook_base=None, canbook=None, book_max_minutes=None, book_max_slots=None, book_can_overlap=None, book_users_can_in_past=None, book_is_cancellable=None, book_cancel_minutes=None, booking_window_days=None, booking_hourly_rate_notax=None, booking_hourly_rate_tax=None, booking_hourly_rate_currency=None, *args, **kwargs): # noqa: E501
62
68
  """EntityAndItemEditable - a model defined in Swagger""" # noqa: E501
63
69
  self._is_bookable = None
64
70
  self._canbook_base = None
@@ -70,6 +76,9 @@ class EntityAndItemEditable(EntityEditable):
70
76
  self._book_is_cancellable = None
71
77
  self._book_cancel_minutes = None
72
78
  self._booking_window_days = None
79
+ self._booking_hourly_rate_notax = None
80
+ self._booking_hourly_rate_tax = None
81
+ self._booking_hourly_rate_currency = None
73
82
  self.discriminator = None
74
83
  if is_bookable is not None:
75
84
  self.is_bookable = is_bookable
@@ -91,6 +100,12 @@ class EntityAndItemEditable(EntityEditable):
91
100
  self.book_cancel_minutes = book_cancel_minutes
92
101
  if booking_window_days is not None:
93
102
  self.booking_window_days = booking_window_days
103
+ if booking_hourly_rate_notax is not None:
104
+ self.booking_hourly_rate_notax = booking_hourly_rate_notax
105
+ if booking_hourly_rate_tax is not None:
106
+ self.booking_hourly_rate_tax = booking_hourly_rate_tax
107
+ if booking_hourly_rate_currency is not None:
108
+ self.booking_hourly_rate_currency = booking_hourly_rate_currency
94
109
  EntityEditable.__init__(self, *args, **kwargs)
95
110
 
96
111
  @property
@@ -313,6 +328,81 @@ class EntityAndItemEditable(EntityEditable):
313
328
 
314
329
  self._booking_window_days = booking_window_days
315
330
 
331
+ @property
332
+ def booking_hourly_rate_notax(self):
333
+ """Gets the booking_hourly_rate_notax of this EntityAndItemEditable. # noqa: E501
334
+
335
+ The hourly rate of booked resource, without taxes. # noqa: E501
336
+
337
+ :return: The booking_hourly_rate_notax of this EntityAndItemEditable. # noqa: E501
338
+ :rtype: float
339
+ """
340
+ return self._booking_hourly_rate_notax
341
+
342
+ @booking_hourly_rate_notax.setter
343
+ def booking_hourly_rate_notax(self, booking_hourly_rate_notax):
344
+ """Sets the booking_hourly_rate_notax of this EntityAndItemEditable.
345
+
346
+ The hourly rate of booked resource, without taxes. # noqa: E501
347
+
348
+ :param booking_hourly_rate_notax: The booking_hourly_rate_notax of this EntityAndItemEditable. # noqa: E501
349
+ :type: float
350
+ """
351
+
352
+ self._booking_hourly_rate_notax = booking_hourly_rate_notax
353
+
354
+ @property
355
+ def booking_hourly_rate_tax(self):
356
+ """Gets the booking_hourly_rate_tax of this EntityAndItemEditable. # noqa: E501
357
+
358
+ The hourly rate of booked resource, with taxes. # noqa: E501
359
+
360
+ :return: The booking_hourly_rate_tax of this EntityAndItemEditable. # noqa: E501
361
+ :rtype: float
362
+ """
363
+ return self._booking_hourly_rate_tax
364
+
365
+ @booking_hourly_rate_tax.setter
366
+ def booking_hourly_rate_tax(self, booking_hourly_rate_tax):
367
+ """Sets the booking_hourly_rate_tax of this EntityAndItemEditable.
368
+
369
+ The hourly rate of booked resource, with taxes. # noqa: E501
370
+
371
+ :param booking_hourly_rate_tax: The booking_hourly_rate_tax of this EntityAndItemEditable. # noqa: E501
372
+ :type: float
373
+ """
374
+
375
+ self._booking_hourly_rate_tax = booking_hourly_rate_tax
376
+
377
+ @property
378
+ def booking_hourly_rate_currency(self):
379
+ """Gets the booking_hourly_rate_currency of this EntityAndItemEditable. # noqa: E501
380
+
381
+ The currency of the hourly rate: - 0: CAD - 1: CHF - 2: CNY - 3: DKK - 4: EUR - 5: GBP - 6: JPY - 7: USD - 8: SEK - 9: NOK # noqa: E501
382
+
383
+ :return: The booking_hourly_rate_currency of this EntityAndItemEditable. # noqa: E501
384
+ :rtype: int
385
+ """
386
+ return self._booking_hourly_rate_currency
387
+
388
+ @booking_hourly_rate_currency.setter
389
+ def booking_hourly_rate_currency(self, booking_hourly_rate_currency):
390
+ """Sets the booking_hourly_rate_currency of this EntityAndItemEditable.
391
+
392
+ The currency of the hourly rate: - 0: CAD - 1: CHF - 2: CNY - 3: DKK - 4: EUR - 5: GBP - 6: JPY - 7: USD - 8: SEK - 9: NOK # noqa: E501
393
+
394
+ :param booking_hourly_rate_currency: The booking_hourly_rate_currency of this EntityAndItemEditable. # noqa: E501
395
+ :type: int
396
+ """
397
+ allowed_values = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # noqa: E501
398
+ if booking_hourly_rate_currency not in allowed_values:
399
+ raise ValueError(
400
+ "Invalid value for `booking_hourly_rate_currency` ({0}), must be one of {1}" # noqa: E501
401
+ .format(booking_hourly_rate_currency, allowed_values)
402
+ )
403
+
404
+ self._booking_hourly_rate_currency = booking_hourly_rate_currency
405
+
316
406
  def to_dict(self):
317
407
  """Returns the model properties as a dict"""
318
408
  result = {}