anyscale 0.26.58__py3-none-any.whl → 0.26.60__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 (40) hide show
  1. anyscale/_private/anyscale_client/common.py +1 -1
  2. anyscale/client/README.md +15 -0
  3. anyscale/client/openapi_client/__init__.py +10 -0
  4. anyscale/client/openapi_client/api/default_api.py +602 -2
  5. anyscale/client/openapi_client/models/__init__.py +10 -0
  6. anyscale/client/openapi_client/models/baseimagesenum.py +76 -1
  7. anyscale/client/openapi_client/models/create_internal_production_job.py +31 -3
  8. anyscale/client/openapi_client/models/create_job_queue_requests.py +31 -3
  9. anyscale/client/openapi_client/models/dataset_metrics.py +29 -3
  10. anyscale/client/openapi_client/models/email_verification_request.py +175 -0
  11. anyscale/client/openapi_client/models/email_verification_response.py +120 -0
  12. anyscale/client/openapi_client/models/emailverificationresponse_response.py +121 -0
  13. anyscale/client/openapi_client/models/job_queues_query.py +31 -3
  14. anyscale/client/openapi_client/models/operator_event.py +256 -0
  15. anyscale/client/openapi_client/models/operator_event_response.py +148 -0
  16. anyscale/client/openapi_client/models/operator_event_type.py +101 -0
  17. anyscale/client/openapi_client/models/supportedbaseimagesenum.py +76 -1
  18. anyscale/client/openapi_client/models/task_grouped_aggregate_metrics.py +81 -3
  19. anyscale/client/openapi_client/models/task_table_row.py +54 -1
  20. anyscale/client/openapi_client/models/task_type.py +5 -3
  21. anyscale/client/openapi_client/models/update_job_queue_request.py +31 -3
  22. anyscale/client/openapi_client/models/use_work_os_response.py +121 -0
  23. anyscale/client/openapi_client/models/useworkosresponse_response.py +121 -0
  24. anyscale/client/openapi_client/models/work_os_authorize_url_response.py +120 -0
  25. anyscale/client/openapi_client/models/workosauthorizeurlresponse_response.py +121 -0
  26. anyscale/client/openapi_client/models/workspace_template.py +31 -3
  27. anyscale/commands/cloud_commands.py +15 -3
  28. anyscale/commands/command_examples.py +1 -1
  29. anyscale/controllers/cloud_controller.py +7 -3
  30. anyscale/sdk/anyscale_client/models/baseimagesenum.py +76 -1
  31. anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +76 -1
  32. anyscale/shared_anyscale_utils/latest_ray_version.py +1 -1
  33. anyscale/version.py +1 -1
  34. {anyscale-0.26.58.dist-info → anyscale-0.26.60.dist-info}/METADATA +1 -1
  35. {anyscale-0.26.58.dist-info → anyscale-0.26.60.dist-info}/RECORD +40 -30
  36. {anyscale-0.26.58.dist-info → anyscale-0.26.60.dist-info}/WHEEL +0 -0
  37. {anyscale-0.26.58.dist-info → anyscale-0.26.60.dist-info}/entry_points.txt +0 -0
  38. {anyscale-0.26.58.dist-info → anyscale-0.26.60.dist-info}/licenses/LICENSE +0 -0
  39. {anyscale-0.26.58.dist-info → anyscale-0.26.60.dist-info}/licenses/NOTICE +0 -0
  40. {anyscale-0.26.58.dist-info → anyscale-0.26.60.dist-info}/top_level.txt +0 -0
@@ -34,15 +34,17 @@ class UpdateJobQueueRequest(object):
34
34
  """
35
35
  openapi_types = {
36
36
  'idle_timeout_sec': 'int',
37
- 'max_concurrency': 'int'
37
+ 'max_concurrency': 'int',
38
+ 'tags': 'dict(str, str)'
38
39
  }
39
40
 
40
41
  attribute_map = {
41
42
  'idle_timeout_sec': 'idle_timeout_sec',
42
- 'max_concurrency': 'max_concurrency'
43
+ 'max_concurrency': 'max_concurrency',
44
+ 'tags': 'tags'
43
45
  }
44
46
 
45
- def __init__(self, idle_timeout_sec=None, max_concurrency=None, local_vars_configuration=None): # noqa: E501
47
+ def __init__(self, idle_timeout_sec=None, max_concurrency=None, tags=None, local_vars_configuration=None): # noqa: E501
46
48
  """UpdateJobQueueRequest - a model defined in OpenAPI""" # noqa: E501
47
49
  if local_vars_configuration is None:
48
50
  local_vars_configuration = Configuration()
@@ -50,12 +52,15 @@ class UpdateJobQueueRequest(object):
50
52
 
51
53
  self._idle_timeout_sec = None
52
54
  self._max_concurrency = None
55
+ self._tags = None
53
56
  self.discriminator = None
54
57
 
55
58
  if idle_timeout_sec is not None:
56
59
  self.idle_timeout_sec = idle_timeout_sec
57
60
  if max_concurrency is not None:
58
61
  self.max_concurrency = max_concurrency
62
+ if tags is not None:
63
+ self.tags = tags
59
64
 
60
65
  @property
61
66
  def idle_timeout_sec(self):
@@ -103,6 +108,29 @@ class UpdateJobQueueRequest(object):
103
108
 
104
109
  self._max_concurrency = max_concurrency
105
110
 
111
+ @property
112
+ def tags(self):
113
+ """Gets the tags of this UpdateJobQueueRequest. # noqa: E501
114
+
115
+ Tags to associate with the job queue # noqa: E501
116
+
117
+ :return: The tags of this UpdateJobQueueRequest. # noqa: E501
118
+ :rtype: dict(str, str)
119
+ """
120
+ return self._tags
121
+
122
+ @tags.setter
123
+ def tags(self, tags):
124
+ """Sets the tags of this UpdateJobQueueRequest.
125
+
126
+ Tags to associate with the job queue # noqa: E501
127
+
128
+ :param tags: The tags of this UpdateJobQueueRequest. # noqa: E501
129
+ :type: dict(str, str)
130
+ """
131
+
132
+ self._tags = tags
133
+
106
134
  def to_dict(self):
107
135
  """Returns the model properties as a dict"""
108
136
  result = {}
@@ -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 UseWorkOSResponse(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
+ 'use_workos': 'bool'
37
+ }
38
+
39
+ attribute_map = {
40
+ 'use_workos': 'use_workos'
41
+ }
42
+
43
+ def __init__(self, use_workos=None, local_vars_configuration=None): # noqa: E501
44
+ """UseWorkOSResponse - 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._use_workos = None
50
+ self.discriminator = None
51
+
52
+ self.use_workos = use_workos
53
+
54
+ @property
55
+ def use_workos(self):
56
+ """Gets the use_workos of this UseWorkOSResponse. # noqa: E501
57
+
58
+
59
+ :return: The use_workos of this UseWorkOSResponse. # noqa: E501
60
+ :rtype: bool
61
+ """
62
+ return self._use_workos
63
+
64
+ @use_workos.setter
65
+ def use_workos(self, use_workos):
66
+ """Sets the use_workos of this UseWorkOSResponse.
67
+
68
+
69
+ :param use_workos: The use_workos of this UseWorkOSResponse. # noqa: E501
70
+ :type: bool
71
+ """
72
+ if self.local_vars_configuration.client_side_validation and use_workos is None: # noqa: E501
73
+ raise ValueError("Invalid value for `use_workos`, must not be `None`") # noqa: E501
74
+
75
+ self._use_workos = use_workos
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, UseWorkOSResponse):
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, UseWorkOSResponse):
119
+ return True
120
+
121
+ 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 UseworkosresponseResponse(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': 'UseWorkOSResponse'
37
+ }
38
+
39
+ attribute_map = {
40
+ 'result': 'result'
41
+ }
42
+
43
+ def __init__(self, result=None, local_vars_configuration=None): # noqa: E501
44
+ """UseworkosresponseResponse - 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 UseworkosresponseResponse. # noqa: E501
57
+
58
+
59
+ :return: The result of this UseworkosresponseResponse. # noqa: E501
60
+ :rtype: UseWorkOSResponse
61
+ """
62
+ return self._result
63
+
64
+ @result.setter
65
+ def result(self, result):
66
+ """Sets the result of this UseworkosresponseResponse.
67
+
68
+
69
+ :param result: The result of this UseworkosresponseResponse. # noqa: E501
70
+ :type: UseWorkOSResponse
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, UseworkosresponseResponse):
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, UseworkosresponseResponse):
119
+ return True
120
+
121
+ return self.to_dict() != other.to_dict()
@@ -0,0 +1,120 @@
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 WorkOSAuthorizeUrlResponse(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
+ 'url': 'str'
37
+ }
38
+
39
+ attribute_map = {
40
+ 'url': 'url'
41
+ }
42
+
43
+ def __init__(self, url=None, local_vars_configuration=None): # noqa: E501
44
+ """WorkOSAuthorizeUrlResponse - 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._url = None
50
+ self.discriminator = None
51
+
52
+ if url is not None:
53
+ self.url = url
54
+
55
+ @property
56
+ def url(self):
57
+ """Gets the url of this WorkOSAuthorizeUrlResponse. # noqa: E501
58
+
59
+
60
+ :return: The url of this WorkOSAuthorizeUrlResponse. # noqa: E501
61
+ :rtype: str
62
+ """
63
+ return self._url
64
+
65
+ @url.setter
66
+ def url(self, url):
67
+ """Sets the url of this WorkOSAuthorizeUrlResponse.
68
+
69
+
70
+ :param url: The url of this WorkOSAuthorizeUrlResponse. # noqa: E501
71
+ :type: str
72
+ """
73
+
74
+ self._url = url
75
+
76
+ def to_dict(self):
77
+ """Returns the model properties as a dict"""
78
+ result = {}
79
+
80
+ for attr, _ in six.iteritems(self.openapi_types):
81
+ value = getattr(self, attr)
82
+ if isinstance(value, list):
83
+ result[attr] = list(map(
84
+ lambda x: x.to_dict() if hasattr(x, "to_dict") else x,
85
+ value
86
+ ))
87
+ elif hasattr(value, "to_dict"):
88
+ result[attr] = value.to_dict()
89
+ elif isinstance(value, dict):
90
+ result[attr] = dict(map(
91
+ lambda item: (item[0], item[1].to_dict())
92
+ if hasattr(item[1], "to_dict") else item,
93
+ value.items()
94
+ ))
95
+ else:
96
+ result[attr] = value
97
+
98
+ return result
99
+
100
+ def to_str(self):
101
+ """Returns the string representation of the model"""
102
+ return pprint.pformat(self.to_dict())
103
+
104
+ def __repr__(self):
105
+ """For `print` and `pprint`"""
106
+ return self.to_str()
107
+
108
+ def __eq__(self, other):
109
+ """Returns true if both objects are equal"""
110
+ if not isinstance(other, WorkOSAuthorizeUrlResponse):
111
+ return False
112
+
113
+ return self.to_dict() == other.to_dict()
114
+
115
+ def __ne__(self, other):
116
+ """Returns true if both objects are not equal"""
117
+ if not isinstance(other, WorkOSAuthorizeUrlResponse):
118
+ return True
119
+
120
+ 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 WorkosauthorizeurlresponseResponse(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': 'WorkOSAuthorizeUrlResponse'
37
+ }
38
+
39
+ attribute_map = {
40
+ 'result': 'result'
41
+ }
42
+
43
+ def __init__(self, result=None, local_vars_configuration=None): # noqa: E501
44
+ """WorkosauthorizeurlresponseResponse - 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 WorkosauthorizeurlresponseResponse. # noqa: E501
57
+
58
+
59
+ :return: The result of this WorkosauthorizeurlresponseResponse. # noqa: E501
60
+ :rtype: WorkOSAuthorizeUrlResponse
61
+ """
62
+ return self._result
63
+
64
+ @result.setter
65
+ def result(self, result):
66
+ """Sets the result of this WorkosauthorizeurlresponseResponse.
67
+
68
+
69
+ :param result: The result of this WorkosauthorizeurlresponseResponse. # noqa: E501
70
+ :type: WorkOSAuthorizeUrlResponse
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, WorkosauthorizeurlresponseResponse):
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, WorkosauthorizeurlresponseResponse):
119
+ return True
120
+
121
+ return self.to_dict() != other.to_dict()
@@ -50,7 +50,8 @@ class WorkspaceTemplate(object):
50
50
  'updated_at': 'datetime',
51
51
  'organization_id': 'str',
52
52
  'creator_email': 'str',
53
- 'published_version': 'WorkspaceTemplateVersionDataObject'
53
+ 'published_version': 'WorkspaceTemplateVersionDataObject',
54
+ 'version': 'int'
54
55
  }
55
56
 
56
57
  attribute_map = {
@@ -71,10 +72,11 @@ class WorkspaceTemplate(object):
71
72
  'updated_at': 'updated_at',
72
73
  'organization_id': 'organization_id',
73
74
  'creator_email': 'creator_email',
74
- 'published_version': 'published_version'
75
+ 'published_version': 'published_version',
76
+ 'version': 'version'
75
77
  }
76
78
 
77
- def __init__(self, name=None, description=None, mins_to_complete=None, icon_type=None, icon_bg_color=None, complexity=None, category=None, labels=None, published_version_id=None, cloud_id=None, is_global=False, id=None, creator_id=None, created_at=None, updated_at=None, organization_id=None, creator_email=None, published_version=None, local_vars_configuration=None): # noqa: E501
79
+ def __init__(self, name=None, description=None, mins_to_complete=None, icon_type=None, icon_bg_color=None, complexity=None, category=None, labels=None, published_version_id=None, cloud_id=None, is_global=False, id=None, creator_id=None, created_at=None, updated_at=None, organization_id=None, creator_email=None, published_version=None, version=None, local_vars_configuration=None): # noqa: E501
78
80
  """WorkspaceTemplate - a model defined in OpenAPI""" # noqa: E501
79
81
  if local_vars_configuration is None:
80
82
  local_vars_configuration = Configuration()
@@ -98,6 +100,7 @@ class WorkspaceTemplate(object):
98
100
  self._organization_id = None
99
101
  self._creator_email = None
100
102
  self._published_version = None
103
+ self._version = None
101
104
  self.discriminator = None
102
105
 
103
106
  self.name = name
@@ -130,6 +133,8 @@ class WorkspaceTemplate(object):
130
133
  self.creator_email = creator_email
131
134
  if published_version is not None:
132
135
  self.published_version = published_version
136
+ if version is not None:
137
+ self.version = version
133
138
 
134
139
  @property
135
140
  def name(self):
@@ -557,6 +562,29 @@ class WorkspaceTemplate(object):
557
562
 
558
563
  self._published_version = published_version
559
564
 
565
+ @property
566
+ def version(self):
567
+ """Gets the version of this WorkspaceTemplate. # noqa: E501
568
+
569
+ Version of the template # noqa: E501
570
+
571
+ :return: The version of this WorkspaceTemplate. # noqa: E501
572
+ :rtype: int
573
+ """
574
+ return self._version
575
+
576
+ @version.setter
577
+ def version(self, version):
578
+ """Sets the version of this WorkspaceTemplate.
579
+
580
+ Version of the template # noqa: E501
581
+
582
+ :param version: The version of this WorkspaceTemplate. # noqa: E501
583
+ :type: int
584
+ """
585
+
586
+ self._version = version
587
+
560
588
  def to_dict(self):
561
589
  """Returns the model properties as a dict"""
562
590
  result = {}
@@ -265,7 +265,13 @@ def cloud_config_group() -> None:
265
265
  "--cloud",
266
266
  help="The name of the cloud to add the new resource to.",
267
267
  type=str,
268
- required=True,
268
+ required=False,
269
+ )
270
+ @click.option(
271
+ "--cloud-id",
272
+ help="The ID of the cloud to add the new resource to.",
273
+ type=str,
274
+ required=False,
269
275
  )
270
276
  @click.option(
271
277
  "--file",
@@ -283,10 +289,16 @@ def cloud_config_group() -> None:
283
289
  "--yes", "-y", is_flag=True, default=False, help="Skip asking for confirmation."
284
290
  )
285
291
  def cloud_resource_create(
286
- cloud: str, file: str, skip_verification: bool, yes: bool,
292
+ cloud: Optional[str],
293
+ cloud_id: Optional[str],
294
+ file: str,
295
+ skip_verification: bool,
296
+ yes: bool,
287
297
  ) -> None:
288
298
  try:
289
- CloudController().create_cloud_resource(cloud, file, skip_verification, yes)
299
+ CloudController().create_cloud_resource(
300
+ cloud, cloud_id, file, skip_verification, yes
301
+ )
290
302
  except click.ClickException as e:
291
303
  print(e)
292
304
 
@@ -551,7 +551,7 @@ collaborators:
551
551
 
552
552
 
553
553
  CLOUD_RESOURCE_CREATE_EXAMPLE = """\
554
- $ anyscale cloud resource create --cloud my-cloud --file new-cloud-resource.yaml
554
+ $ anyscale cloud resource create --cloud my-cloud -f new-cloud-resource.yaml
555
555
  Successfully created cloud resource my-new-resource in cloud my-cloud.
556
556
 
557
557
  $ cat new-cloud-resource.yaml
@@ -1728,12 +1728,16 @@ class CloudController(BaseController):
1728
1728
 
1729
1729
  def create_cloud_resource(
1730
1730
  self,
1731
- cloud_name: str,
1731
+ cloud: Optional[str],
1732
+ cloud_id: Optional[str],
1732
1733
  spec_file: str,
1733
1734
  skip_verification: bool = False,
1734
1735
  yes: bool = False,
1735
1736
  ):
1736
- cloud_id, _ = get_cloud_id_and_name(self.api_client, cloud_name=cloud_name)
1737
+ cloud_id, _ = get_cloud_id_and_name(
1738
+ self.api_client, cloud_id=cloud_id, cloud_name=cloud
1739
+ )
1740
+ assert cloud_id
1737
1741
 
1738
1742
  # Read the spec file.
1739
1743
  path = pathlib.Path(spec_file)
@@ -1787,7 +1791,7 @@ class CloudController(BaseController):
1787
1791
  raise ClickException(f"Failed to add cloud resource: {e}")
1788
1792
 
1789
1793
  self.log.info(
1790
- f"Successfully created cloud resource{' ' + new_deployment.name if new_deployment.name else ''} in cloud {cloud_name}!"
1794
+ f"Successfully created cloud resource{' ' + (new_deployment.name or '')} in cloud {cloud or cloud_id}!"
1791
1795
  )
1792
1796
 
1793
1797
  def update_cloud_resources( # noqa: PLR0912, C901