anyscale 0.24.86__py3-none-any.whl → 0.24.88__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 (49) hide show
  1. anyscale/__init__.py +10 -0
  2. anyscale/_private/anyscale_client/anyscale_client.py +10 -0
  3. anyscale/_private/anyscale_client/common.py +9 -0
  4. anyscale/_private/anyscale_client/fake_anyscale_client.py +28 -0
  5. anyscale/_private/docgen/__main__.py +12 -0
  6. anyscale/_private/docgen/generator.py +1 -0
  7. anyscale/client/README.md +25 -2
  8. anyscale/client/openapi_client/__init__.py +18 -2
  9. anyscale/client/openapi_client/api/default_api.py +992 -105
  10. anyscale/client/openapi_client/models/__init__.py +18 -2
  11. anyscale/client/openapi_client/models/admin_create_user.py +255 -0
  12. anyscale/client/openapi_client/models/admin_created_user.py +281 -0
  13. anyscale/client/openapi_client/models/admincreateduser_list_response.py +147 -0
  14. anyscale/client/openapi_client/models/{aggregated_instance_usage_with_cost_model.py → aggregated_instance_usage_csv.py} +100 -100
  15. anyscale/client/openapi_client/models/aggregated_usage.py +147 -0
  16. anyscale/client/openapi_client/models/aggregated_usage_query.py +236 -0
  17. anyscale/client/openapi_client/models/{aggregatedinstanceusagewithcostmodel_list_response.py → aggregatedinstanceusagecsv_list_response.py} +15 -15
  18. anyscale/client/openapi_client/models/aggregatedusage_response.py +121 -0
  19. anyscale/client/openapi_client/models/cloud_resource.py +29 -1
  20. anyscale/client/openapi_client/models/cloud_resource_gcp.py +29 -1
  21. anyscale/client/openapi_client/models/create_cloud_resource.py +29 -1
  22. anyscale/client/openapi_client/models/create_cloud_resource_gcp.py +29 -1
  23. anyscale/client/openapi_client/models/usage_by_cloud.py +201 -0
  24. anyscale/client/openapi_client/models/usage_by_cluster.py +544 -0
  25. anyscale/client/openapi_client/models/usage_by_instance_type.py +174 -0
  26. anyscale/client/openapi_client/models/usage_by_project.py +255 -0
  27. anyscale/client/openapi_client/models/usage_by_user.py +201 -0
  28. anyscale/client/openapi_client/models/usagebycloud_list_response.py +147 -0
  29. anyscale/client/openapi_client/models/usagebycluster_list_response.py +147 -0
  30. anyscale/client/openapi_client/models/usagebyinstancetype_list_response.py +147 -0
  31. anyscale/client/openapi_client/models/usagebyproject_list_response.py +147 -0
  32. anyscale/client/openapi_client/models/usagebyuser_list_response.py +147 -0
  33. anyscale/commands/cloud_commands.py +8 -0
  34. anyscale/commands/command_examples.py +6 -0
  35. anyscale/commands/user_commands.py +49 -0
  36. anyscale/controllers/cloud_controller.py +3 -0
  37. anyscale/scripts.py +2 -0
  38. anyscale/user/__init__.py +35 -0
  39. anyscale/user/_private/user_sdk.py +32 -0
  40. anyscale/user/commands.py +42 -0
  41. anyscale/user/models.py +191 -0
  42. anyscale/version.py +1 -1
  43. {anyscale-0.24.86.dist-info → anyscale-0.24.88.dist-info}/METADATA +1 -1
  44. {anyscale-0.24.86.dist-info → anyscale-0.24.88.dist-info}/RECORD +49 -28
  45. {anyscale-0.24.86.dist-info → anyscale-0.24.88.dist-info}/LICENSE +0 -0
  46. {anyscale-0.24.86.dist-info → anyscale-0.24.88.dist-info}/NOTICE +0 -0
  47. {anyscale-0.24.86.dist-info → anyscale-0.24.88.dist-info}/WHEEL +0 -0
  48. {anyscale-0.24.86.dist-info → anyscale-0.24.88.dist-info}/entry_points.txt +0 -0
  49. {anyscale-0.24.86.dist-info → anyscale-0.24.88.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,147 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Managed Ray API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by: https://openapi-generator.tech
10
+ """
11
+
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ from openapi_client.configuration import Configuration
19
+
20
+
21
+ class AggregatedUsage(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.
34
+ """
35
+ openapi_types = {
36
+ 'anyscale_credits': 'float',
37
+ 'date': 'date'
38
+ }
39
+
40
+ attribute_map = {
41
+ 'anyscale_credits': 'anyscale_credits',
42
+ 'date': 'date'
43
+ }
44
+
45
+ def __init__(self, anyscale_credits=None, date=None, local_vars_configuration=None): # noqa: E501
46
+ """AggregatedUsage - a model defined in OpenAPI""" # noqa: E501
47
+ if local_vars_configuration is None:
48
+ local_vars_configuration = Configuration()
49
+ self.local_vars_configuration = local_vars_configuration
50
+
51
+ self._anyscale_credits = None
52
+ self._date = None
53
+ self.discriminator = None
54
+
55
+ self.anyscale_credits = anyscale_credits
56
+ if date is not None:
57
+ self.date = date
58
+
59
+ @property
60
+ def anyscale_credits(self):
61
+ """Gets the anyscale_credits of this AggregatedUsage. # noqa: E501
62
+
63
+
64
+ :return: The anyscale_credits of this AggregatedUsage. # noqa: E501
65
+ :rtype: float
66
+ """
67
+ return self._anyscale_credits
68
+
69
+ @anyscale_credits.setter
70
+ def anyscale_credits(self, anyscale_credits):
71
+ """Sets the anyscale_credits of this AggregatedUsage.
72
+
73
+
74
+ :param anyscale_credits: The anyscale_credits of this AggregatedUsage. # noqa: E501
75
+ :type: float
76
+ """
77
+ if self.local_vars_configuration.client_side_validation and anyscale_credits is None: # noqa: E501
78
+ raise ValueError("Invalid value for `anyscale_credits`, must not be `None`") # noqa: E501
79
+
80
+ self._anyscale_credits = anyscale_credits
81
+
82
+ @property
83
+ def date(self):
84
+ """Gets the date of this AggregatedUsage. # noqa: E501
85
+
86
+
87
+ :return: The date of this AggregatedUsage. # noqa: E501
88
+ :rtype: date
89
+ """
90
+ return self._date
91
+
92
+ @date.setter
93
+ def date(self, date):
94
+ """Sets the date of this AggregatedUsage.
95
+
96
+
97
+ :param date: The date of this AggregatedUsage. # noqa: E501
98
+ :type: date
99
+ """
100
+
101
+ self._date = date
102
+
103
+ def to_dict(self):
104
+ """Returns the model properties as a dict"""
105
+ result = {}
106
+
107
+ for attr, _ in six.iteritems(self.openapi_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
+
125
+ return result
126
+
127
+ def to_str(self):
128
+ """Returns the string representation of the model"""
129
+ return pprint.pformat(self.to_dict())
130
+
131
+ def __repr__(self):
132
+ """For `print` and `pprint`"""
133
+ return self.to_str()
134
+
135
+ def __eq__(self, other):
136
+ """Returns true if both objects are equal"""
137
+ if not isinstance(other, AggregatedUsage):
138
+ return False
139
+
140
+ return self.to_dict() == other.to_dict()
141
+
142
+ def __ne__(self, other):
143
+ """Returns true if both objects are not equal"""
144
+ if not isinstance(other, AggregatedUsage):
145
+ return True
146
+
147
+ return self.to_dict() != other.to_dict()
@@ -0,0 +1,236 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Managed Ray API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by: https://openapi-generator.tech
10
+ """
11
+
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ from openapi_client.configuration import Configuration
19
+
20
+
21
+ class AggregatedUsageQuery(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.
34
+ """
35
+ openapi_types = {
36
+ 'start_date': 'date',
37
+ 'end_date': 'date',
38
+ 'name_contains': 'str',
39
+ 'group_by_date': 'bool',
40
+ 'asc': 'bool'
41
+ }
42
+
43
+ attribute_map = {
44
+ 'start_date': 'start_date',
45
+ 'end_date': 'end_date',
46
+ 'name_contains': 'name_contains',
47
+ 'group_by_date': 'group_by_date',
48
+ 'asc': 'asc'
49
+ }
50
+
51
+ def __init__(self, start_date=None, end_date=None, name_contains=None, group_by_date=False, asc=False, local_vars_configuration=None): # noqa: E501
52
+ """AggregatedUsageQuery - a model defined in OpenAPI""" # noqa: E501
53
+ if local_vars_configuration is None:
54
+ local_vars_configuration = Configuration()
55
+ self.local_vars_configuration = local_vars_configuration
56
+
57
+ self._start_date = None
58
+ self._end_date = None
59
+ self._name_contains = None
60
+ self._group_by_date = None
61
+ self._asc = None
62
+ self.discriminator = None
63
+
64
+ self.start_date = start_date
65
+ self.end_date = end_date
66
+ if name_contains is not None:
67
+ self.name_contains = name_contains
68
+ if group_by_date is not None:
69
+ self.group_by_date = group_by_date
70
+ if asc is not None:
71
+ self.asc = asc
72
+
73
+ @property
74
+ def start_date(self):
75
+ """Gets the start_date of this AggregatedUsageQuery. # noqa: E501
76
+
77
+ Start date of the usage data to query # noqa: E501
78
+
79
+ :return: The start_date of this AggregatedUsageQuery. # noqa: E501
80
+ :rtype: date
81
+ """
82
+ return self._start_date
83
+
84
+ @start_date.setter
85
+ def start_date(self, start_date):
86
+ """Sets the start_date of this AggregatedUsageQuery.
87
+
88
+ Start date of the usage data to query # noqa: E501
89
+
90
+ :param start_date: The start_date of this AggregatedUsageQuery. # noqa: E501
91
+ :type: date
92
+ """
93
+ if self.local_vars_configuration.client_side_validation and start_date is None: # noqa: E501
94
+ raise ValueError("Invalid value for `start_date`, must not be `None`") # noqa: E501
95
+
96
+ self._start_date = start_date
97
+
98
+ @property
99
+ def end_date(self):
100
+ """Gets the end_date of this AggregatedUsageQuery. # noqa: E501
101
+
102
+ End date of the usage data to query # noqa: E501
103
+
104
+ :return: The end_date of this AggregatedUsageQuery. # noqa: E501
105
+ :rtype: date
106
+ """
107
+ return self._end_date
108
+
109
+ @end_date.setter
110
+ def end_date(self, end_date):
111
+ """Sets the end_date of this AggregatedUsageQuery.
112
+
113
+ End date of the usage data to query # noqa: E501
114
+
115
+ :param end_date: The end_date of this AggregatedUsageQuery. # noqa: E501
116
+ :type: date
117
+ """
118
+ if self.local_vars_configuration.client_side_validation and end_date is None: # noqa: E501
119
+ raise ValueError("Invalid value for `end_date`, must not be `None`") # noqa: E501
120
+
121
+ self._end_date = end_date
122
+
123
+ @property
124
+ def name_contains(self):
125
+ """Gets the name_contains of this AggregatedUsageQuery. # noqa: E501
126
+
127
+ Filter the usage data by name containing this string # noqa: E501
128
+
129
+ :return: The name_contains of this AggregatedUsageQuery. # noqa: E501
130
+ :rtype: str
131
+ """
132
+ return self._name_contains
133
+
134
+ @name_contains.setter
135
+ def name_contains(self, name_contains):
136
+ """Sets the name_contains of this AggregatedUsageQuery.
137
+
138
+ Filter the usage data by name containing this string # noqa: E501
139
+
140
+ :param name_contains: The name_contains of this AggregatedUsageQuery. # noqa: E501
141
+ :type: str
142
+ """
143
+
144
+ self._name_contains = name_contains
145
+
146
+ @property
147
+ def group_by_date(self):
148
+ """Gets the group_by_date of this AggregatedUsageQuery. # noqa: E501
149
+
150
+ Whether to group the usage data by date # noqa: E501
151
+
152
+ :return: The group_by_date of this AggregatedUsageQuery. # noqa: E501
153
+ :rtype: bool
154
+ """
155
+ return self._group_by_date
156
+
157
+ @group_by_date.setter
158
+ def group_by_date(self, group_by_date):
159
+ """Sets the group_by_date of this AggregatedUsageQuery.
160
+
161
+ Whether to group the usage data by date # noqa: E501
162
+
163
+ :param group_by_date: The group_by_date of this AggregatedUsageQuery. # noqa: E501
164
+ :type: bool
165
+ """
166
+
167
+ self._group_by_date = group_by_date
168
+
169
+ @property
170
+ def asc(self):
171
+ """Gets the asc of this AggregatedUsageQuery. # noqa: E501
172
+
173
+ Whether to sort the usage data in ascending order # noqa: E501
174
+
175
+ :return: The asc of this AggregatedUsageQuery. # noqa: E501
176
+ :rtype: bool
177
+ """
178
+ return self._asc
179
+
180
+ @asc.setter
181
+ def asc(self, asc):
182
+ """Sets the asc of this AggregatedUsageQuery.
183
+
184
+ Whether to sort the usage data in ascending order # noqa: E501
185
+
186
+ :param asc: The asc of this AggregatedUsageQuery. # noqa: E501
187
+ :type: bool
188
+ """
189
+
190
+ self._asc = asc
191
+
192
+ def to_dict(self):
193
+ """Returns the model properties as a dict"""
194
+ result = {}
195
+
196
+ for attr, _ in six.iteritems(self.openapi_types):
197
+ value = getattr(self, attr)
198
+ if isinstance(value, list):
199
+ result[attr] = list(map(
200
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
201
+ value
202
+ ))
203
+ elif hasattr(value, "to_dict"):
204
+ result[attr] = value.to_dict()
205
+ elif isinstance(value, dict):
206
+ result[attr] = dict(map(
207
+ lambda item: (item[0], item[1].to_dict())
208
+ if hasattr(item[1], "to_dict") else item,
209
+ value.items()
210
+ ))
211
+ else:
212
+ result[attr] = value
213
+
214
+ return result
215
+
216
+ def to_str(self):
217
+ """Returns the string representation of the model"""
218
+ return pprint.pformat(self.to_dict())
219
+
220
+ def __repr__(self):
221
+ """For `print` and `pprint`"""
222
+ return self.to_str()
223
+
224
+ def __eq__(self, other):
225
+ """Returns true if both objects are equal"""
226
+ if not isinstance(other, AggregatedUsageQuery):
227
+ return False
228
+
229
+ return self.to_dict() == other.to_dict()
230
+
231
+ def __ne__(self, other):
232
+ """Returns true if both objects are not equal"""
233
+ if not isinstance(other, AggregatedUsageQuery):
234
+ return True
235
+
236
+ return self.to_dict() != other.to_dict()
@@ -18,7 +18,7 @@ import six
18
18
  from openapi_client.configuration import Configuration
19
19
 
20
20
 
21
- class AggregatedinstanceusagewithcostmodelListResponse(object):
21
+ class AggregatedinstanceusagecsvListResponse(object):
22
22
  """NOTE: This class is auto generated by OpenAPI Generator.
23
23
  Ref: https://openapi-generator.tech
24
24
 
@@ -33,7 +33,7 @@ class AggregatedinstanceusagewithcostmodelListResponse(object):
33
33
  and the value is json key in definition.
34
34
  """
35
35
  openapi_types = {
36
- 'results': 'list[AggregatedInstanceUsageWithCostModel]',
36
+ 'results': 'list[AggregatedInstanceUsageCSV]',
37
37
  'metadata': 'ListResponseMetadata'
38
38
  }
39
39
 
@@ -43,7 +43,7 @@ class AggregatedinstanceusagewithcostmodelListResponse(object):
43
43
  }
44
44
 
45
45
  def __init__(self, results=None, metadata=None, local_vars_configuration=None): # noqa: E501
46
- """AggregatedinstanceusagewithcostmodelListResponse - a model defined in OpenAPI""" # noqa: E501
46
+ """AggregatedinstanceusagecsvListResponse - a model defined in OpenAPI""" # noqa: E501
47
47
  if local_vars_configuration is None:
48
48
  local_vars_configuration = Configuration()
49
49
  self.local_vars_configuration = local_vars_configuration
@@ -58,21 +58,21 @@ class AggregatedinstanceusagewithcostmodelListResponse(object):
58
58
 
59
59
  @property
60
60
  def results(self):
61
- """Gets the results of this AggregatedinstanceusagewithcostmodelListResponse. # noqa: E501
61
+ """Gets the results of this AggregatedinstanceusagecsvListResponse. # noqa: E501
62
62
 
63
63
 
64
- :return: The results of this AggregatedinstanceusagewithcostmodelListResponse. # noqa: E501
65
- :rtype: list[AggregatedInstanceUsageWithCostModel]
64
+ :return: The results of this AggregatedinstanceusagecsvListResponse. # noqa: E501
65
+ :rtype: list[AggregatedInstanceUsageCSV]
66
66
  """
67
67
  return self._results
68
68
 
69
69
  @results.setter
70
70
  def results(self, results):
71
- """Sets the results of this AggregatedinstanceusagewithcostmodelListResponse.
71
+ """Sets the results of this AggregatedinstanceusagecsvListResponse.
72
72
 
73
73
 
74
- :param results: The results of this AggregatedinstanceusagewithcostmodelListResponse. # noqa: E501
75
- :type: list[AggregatedInstanceUsageWithCostModel]
74
+ :param results: The results of this AggregatedinstanceusagecsvListResponse. # noqa: E501
75
+ :type: list[AggregatedInstanceUsageCSV]
76
76
  """
77
77
  if self.local_vars_configuration.client_side_validation and results is None: # noqa: E501
78
78
  raise ValueError("Invalid value for `results`, must not be `None`") # noqa: E501
@@ -81,20 +81,20 @@ class AggregatedinstanceusagewithcostmodelListResponse(object):
81
81
 
82
82
  @property
83
83
  def metadata(self):
84
- """Gets the metadata of this AggregatedinstanceusagewithcostmodelListResponse. # noqa: E501
84
+ """Gets the metadata of this AggregatedinstanceusagecsvListResponse. # noqa: E501
85
85
 
86
86
 
87
- :return: The metadata of this AggregatedinstanceusagewithcostmodelListResponse. # noqa: E501
87
+ :return: The metadata of this AggregatedinstanceusagecsvListResponse. # noqa: E501
88
88
  :rtype: ListResponseMetadata
89
89
  """
90
90
  return self._metadata
91
91
 
92
92
  @metadata.setter
93
93
  def metadata(self, metadata):
94
- """Sets the metadata of this AggregatedinstanceusagewithcostmodelListResponse.
94
+ """Sets the metadata of this AggregatedinstanceusagecsvListResponse.
95
95
 
96
96
 
97
- :param metadata: The metadata of this AggregatedinstanceusagewithcostmodelListResponse. # noqa: E501
97
+ :param metadata: The metadata of this AggregatedinstanceusagecsvListResponse. # noqa: E501
98
98
  :type: ListResponseMetadata
99
99
  """
100
100
 
@@ -134,14 +134,14 @@ class AggregatedinstanceusagewithcostmodelListResponse(object):
134
134
 
135
135
  def __eq__(self, other):
136
136
  """Returns true if both objects are equal"""
137
- if not isinstance(other, AggregatedinstanceusagewithcostmodelListResponse):
137
+ if not isinstance(other, AggregatedinstanceusagecsvListResponse):
138
138
  return False
139
139
 
140
140
  return self.to_dict() == other.to_dict()
141
141
 
142
142
  def __ne__(self, other):
143
143
  """Returns true if both objects are not equal"""
144
- if not isinstance(other, AggregatedinstanceusagewithcostmodelListResponse):
144
+ if not isinstance(other, AggregatedinstanceusagecsvListResponse):
145
145
  return True
146
146
 
147
147
  return self.to_dict() != other.to_dict()
@@ -0,0 +1,121 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Managed Ray API
5
+
6
+ No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) # noqa: E501
7
+
8
+ The version of the OpenAPI document: 0.1.0
9
+ Generated by: https://openapi-generator.tech
10
+ """
11
+
12
+
13
+ import pprint
14
+ import re # noqa: F401
15
+
16
+ import six
17
+
18
+ from openapi_client.configuration import Configuration
19
+
20
+
21
+ class AggregatedusageResponse(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.
34
+ """
35
+ openapi_types = {
36
+ 'result': 'AggregatedUsage'
37
+ }
38
+
39
+ attribute_map = {
40
+ 'result': 'result'
41
+ }
42
+
43
+ def __init__(self, result=None, local_vars_configuration=None): # noqa: E501
44
+ """AggregatedusageResponse - a model defined in OpenAPI""" # noqa: E501
45
+ if local_vars_configuration is None:
46
+ local_vars_configuration = Configuration()
47
+ self.local_vars_configuration = local_vars_configuration
48
+
49
+ self._result = None
50
+ self.discriminator = None
51
+
52
+ self.result = result
53
+
54
+ @property
55
+ def result(self):
56
+ """Gets the result of this AggregatedusageResponse. # noqa: E501
57
+
58
+
59
+ :return: The result of this AggregatedusageResponse. # noqa: E501
60
+ :rtype: AggregatedUsage
61
+ """
62
+ return self._result
63
+
64
+ @result.setter
65
+ def result(self, result):
66
+ """Sets the result of this AggregatedusageResponse.
67
+
68
+
69
+ :param result: The result of this AggregatedusageResponse. # noqa: E501
70
+ :type: AggregatedUsage
71
+ """
72
+ if self.local_vars_configuration.client_side_validation and result is None: # noqa: E501
73
+ raise ValueError("Invalid value for `result`, must not be `None`") # noqa: E501
74
+
75
+ self._result = result
76
+
77
+ def to_dict(self):
78
+ """Returns the model properties as a dict"""
79
+ result = {}
80
+
81
+ for attr, _ in six.iteritems(self.openapi_types):
82
+ value = getattr(self, attr)
83
+ if isinstance(value, list):
84
+ result[attr] = list(map(
85
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
86
+ value
87
+ ))
88
+ elif hasattr(value, "to_dict"):
89
+ result[attr] = value.to_dict()
90
+ elif isinstance(value, dict):
91
+ result[attr] = dict(map(
92
+ lambda item: (item[0], item[1].to_dict())
93
+ if hasattr(item[1], "to_dict") else item,
94
+ value.items()
95
+ ))
96
+ else:
97
+ result[attr] = value
98
+
99
+ return result
100
+
101
+ def to_str(self):
102
+ """Returns the string representation of the model"""
103
+ return pprint.pformat(self.to_dict())
104
+
105
+ def __repr__(self):
106
+ """For `print` and `pprint`"""
107
+ return self.to_str()
108
+
109
+ def __eq__(self, other):
110
+ """Returns true if both objects are equal"""
111
+ if not isinstance(other, AggregatedusageResponse):
112
+ return False
113
+
114
+ return self.to_dict() == other.to_dict()
115
+
116
+ def __ne__(self, other):
117
+ """Returns true if both objects are not equal"""
118
+ if not isinstance(other, AggregatedusageResponse):
119
+ return True
120
+
121
+ return self.to_dict() != other.to_dict()
@@ -41,6 +41,7 @@ class CloudResource(object):
41
41
  'kubernetes_nfs_persistent_volume_claim': 'str',
42
42
  'cloud_storage_bucket_name': 'str',
43
43
  'cloud_storage_bucket_endpoint': 'str',
44
+ 'cloud_storage_bucket_region': 'str',
44
45
  'nfs_mount_targets': 'list[NFSMountTarget]',
45
46
  'nfs_mount_path': 'str',
46
47
  'aws_vpc_id': 'str',
@@ -67,6 +68,7 @@ class CloudResource(object):
67
68
  'kubernetes_nfs_persistent_volume_claim': 'kubernetes_nfs_persistent_volume_claim',
68
69
  'cloud_storage_bucket_name': 'cloud_storage_bucket_name',
69
70
  'cloud_storage_bucket_endpoint': 'cloud_storage_bucket_endpoint',
71
+ 'cloud_storage_bucket_region': 'cloud_storage_bucket_region',
70
72
  'nfs_mount_targets': 'nfs_mount_targets',
71
73
  'nfs_mount_path': 'nfs_mount_path',
72
74
  'aws_vpc_id': 'aws_vpc_id',
@@ -84,7 +86,7 @@ class CloudResource(object):
84
86
  'cloud_id': 'cloud_id'
85
87
  }
86
88
 
87
- def __init__(self, compute_stack=None, kubernetes_ingress_external_address=None, kubernetes_namespaces=None, kubernetes_zones=None, kubernetes_dataplane_identity=None, kubernetes_nfs_persistent_volume_claim=None, cloud_storage_bucket_name=None, cloud_storage_bucket_endpoint=None, nfs_mount_targets=None, nfs_mount_path=None, aws_vpc_id=None, aws_subnet_ids_with_availability_zones=None, aws_iam_role_arns=None, aws_security_groups=None, aws_s3_id=None, aws_efs_id=None, aws_efs_mount_target_ip=None, aws_cloudformation_stack_id=None, gcp_vpc_id=None, gcp_subnet_ids=None, memorydb_cluster_config=None, id=None, cloud_id=None, local_vars_configuration=None): # noqa: E501
89
+ def __init__(self, compute_stack=None, kubernetes_ingress_external_address=None, kubernetes_namespaces=None, kubernetes_zones=None, kubernetes_dataplane_identity=None, kubernetes_nfs_persistent_volume_claim=None, cloud_storage_bucket_name=None, cloud_storage_bucket_endpoint=None, cloud_storage_bucket_region=None, nfs_mount_targets=None, nfs_mount_path=None, aws_vpc_id=None, aws_subnet_ids_with_availability_zones=None, aws_iam_role_arns=None, aws_security_groups=None, aws_s3_id=None, aws_efs_id=None, aws_efs_mount_target_ip=None, aws_cloudformation_stack_id=None, gcp_vpc_id=None, gcp_subnet_ids=None, memorydb_cluster_config=None, id=None, cloud_id=None, local_vars_configuration=None): # noqa: E501
88
90
  """CloudResource - a model defined in OpenAPI""" # noqa: E501
89
91
  if local_vars_configuration is None:
90
92
  local_vars_configuration = Configuration()
@@ -98,6 +100,7 @@ class CloudResource(object):
98
100
  self._kubernetes_nfs_persistent_volume_claim = None
99
101
  self._cloud_storage_bucket_name = None
100
102
  self._cloud_storage_bucket_endpoint = None
103
+ self._cloud_storage_bucket_region = None
101
104
  self._nfs_mount_targets = None
102
105
  self._nfs_mount_path = None
103
106
  self._aws_vpc_id = None
@@ -131,6 +134,8 @@ class CloudResource(object):
131
134
  self.cloud_storage_bucket_name = cloud_storage_bucket_name
132
135
  if cloud_storage_bucket_endpoint is not None:
133
136
  self.cloud_storage_bucket_endpoint = cloud_storage_bucket_endpoint
137
+ if cloud_storage_bucket_region is not None:
138
+ self.cloud_storage_bucket_region = cloud_storage_bucket_region
134
139
  if nfs_mount_targets is not None:
135
140
  self.nfs_mount_targets = nfs_mount_targets
136
141
  if nfs_mount_path is not None:
@@ -344,6 +349,29 @@ class CloudResource(object):
344
349
 
345
350
  self._cloud_storage_bucket_endpoint = cloud_storage_bucket_endpoint
346
351
 
352
+ @property
353
+ def cloud_storage_bucket_region(self):
354
+ """Gets the cloud_storage_bucket_region of this CloudResource. # noqa: E501
355
+
356
+ The region of the cloud storage bucket. # noqa: E501
357
+
358
+ :return: The cloud_storage_bucket_region of this CloudResource. # noqa: E501
359
+ :rtype: str
360
+ """
361
+ return self._cloud_storage_bucket_region
362
+
363
+ @cloud_storage_bucket_region.setter
364
+ def cloud_storage_bucket_region(self, cloud_storage_bucket_region):
365
+ """Sets the cloud_storage_bucket_region of this CloudResource.
366
+
367
+ The region of the cloud storage bucket. # noqa: E501
368
+
369
+ :param cloud_storage_bucket_region: The cloud_storage_bucket_region of this CloudResource. # noqa: E501
370
+ :type: str
371
+ """
372
+
373
+ self._cloud_storage_bucket_region = cloud_storage_bucket_region
374
+
347
375
  @property
348
376
  def nfs_mount_targets(self):
349
377
  """Gets the nfs_mount_targets of this CloudResource. # noqa: E501