anyscale 0.25.1__py3-none-any.whl → 0.25.3__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.
- anyscale/__init__.py +10 -0
- anyscale/_private/anyscale_client/anyscale_client.py +40 -9
- anyscale/_private/anyscale_client/common.py +37 -3
- anyscale/_private/anyscale_client/fake_anyscale_client.py +80 -6
- anyscale/_private/docgen/__main__.py +9 -2
- anyscale/_private/docgen/api.md +13 -0
- anyscale/_private/docgen/models.md +3 -3
- anyscale/_private/workload/workload_config.py +20 -6
- anyscale/client/README.md +6 -0
- anyscale/client/openapi_client/__init__.py +3 -0
- anyscale/client/openapi_client/api/default_api.py +391 -2
- anyscale/client/openapi_client/models/__init__.py +3 -0
- anyscale/client/openapi_client/models/baseimagesenum.py +43 -1
- anyscale/client/openapi_client/models/cluster_event_source.py +105 -0
- anyscale/client/openapi_client/models/clusterevent_list_response.py +147 -0
- anyscale/client/openapi_client/models/jobs_sort_field.py +1 -2
- anyscale/client/openapi_client/models/sessions_sort_field.py +1 -2
- anyscale/client/openapi_client/models/supportedbaseimagesenum.py +43 -1
- anyscale/client/openapi_client/models/update_cloud_collaborator.py +121 -0
- anyscale/commands/cloud_commands.py +49 -12
- anyscale/commands/command_examples.py +4 -0
- anyscale/commands/service_account_commands.py +65 -8
- anyscale/commands/service_commands.py +60 -0
- anyscale/controllers/cloud_controller.py +58 -25
- anyscale/controllers/cluster_controller.py +1 -9
- anyscale/controllers/job_controller.py +0 -3
- anyscale/resource_quota/_private/resource_quota_sdk.py +15 -6
- anyscale/sdk/anyscale_client/api/default_api.py +119 -0
- anyscale/sdk/anyscale_client/models/baseimagesenum.py +43 -1
- anyscale/sdk/anyscale_client/models/jobs_sort_field.py +1 -2
- anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py +43 -1
- anyscale/service/__init__.py +21 -0
- anyscale/service/_private/service_sdk.py +13 -0
- anyscale/service/commands.py +35 -0
- anyscale/service_account/__init__.py +88 -0
- anyscale/service_account/_private/service_account_sdk.py +101 -0
- anyscale/service_account/commands.py +147 -0
- anyscale/service_account/models.py +66 -0
- anyscale/shared_anyscale_utils/latest_ray_version.py +1 -1
- anyscale/shared_anyscale_utils/utils/id_gen.py +2 -0
- anyscale/util.py +8 -0
- anyscale/version.py +1 -1
- {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/METADATA +1 -1
- {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/RECORD +49 -43
- anyscale/controllers/service_account_controller.py +0 -168
- {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/LICENSE +0 -0
- {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/NOTICE +0 -0
- {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/WHEEL +0 -0
- {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/entry_points.txt +0 -0
- {anyscale-0.25.1.dist-info → anyscale-0.25.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,66 @@
|
|
1
|
+
from dataclasses import dataclass, field
|
2
|
+
from datetime import datetime
|
3
|
+
|
4
|
+
from anyscale._private.models import ModelBase, ModelEnum
|
5
|
+
|
6
|
+
|
7
|
+
# TODO(cynthiakwu): Move this when we have organization collaborator sdk
|
8
|
+
class OrganizationPermissionLevel(ModelEnum):
|
9
|
+
OWNER = "OWNER"
|
10
|
+
COLLABORATOR = "COLLABORATOR"
|
11
|
+
|
12
|
+
__docstrings__ = {
|
13
|
+
OWNER: "Owner permission level for the organization",
|
14
|
+
COLLABORATOR: "Collaborator permission level for the organization",
|
15
|
+
}
|
16
|
+
|
17
|
+
|
18
|
+
@dataclass(frozen=True)
|
19
|
+
class ServiceAccount(ModelBase):
|
20
|
+
"""Service account
|
21
|
+
"""
|
22
|
+
|
23
|
+
__doc_py_example__ = """\
|
24
|
+
import anyscale
|
25
|
+
from anyscale.service_account.models import ServiceAccount
|
26
|
+
|
27
|
+
service_accounts: List[ServiceAccount] = anyscale.service_account.list()
|
28
|
+
"""
|
29
|
+
|
30
|
+
name: str = field(metadata={"docstring": "Name of the service account."})
|
31
|
+
|
32
|
+
def _validate_name(self, name: str):
|
33
|
+
if not isinstance(name, str):
|
34
|
+
raise TypeError("name must be a string.")
|
35
|
+
|
36
|
+
created_at: datetime = field(
|
37
|
+
metadata={"docstring": "The timestamp when this service account was created."}
|
38
|
+
)
|
39
|
+
|
40
|
+
def _validate_created_at(self, created_at: datetime):
|
41
|
+
if not isinstance(created_at, datetime):
|
42
|
+
raise TypeError("created_at must be a datetime.")
|
43
|
+
|
44
|
+
permission_level: OrganizationPermissionLevel = field(
|
45
|
+
metadata={
|
46
|
+
"docstring": "The organization permission level of the service account."
|
47
|
+
}
|
48
|
+
)
|
49
|
+
|
50
|
+
def _validate_permission_level(
|
51
|
+
self, permission_level: OrganizationPermissionLevel
|
52
|
+
) -> OrganizationPermissionLevel:
|
53
|
+
if isinstance(permission_level, str):
|
54
|
+
return OrganizationPermissionLevel.validate(permission_level)
|
55
|
+
elif isinstance(permission_level, OrganizationPermissionLevel):
|
56
|
+
return permission_level
|
57
|
+
else:
|
58
|
+
raise TypeError(
|
59
|
+
f"'permission_level' must be a 'OrganizationPermissionLevel' (it is {type(permission_level)})."
|
60
|
+
)
|
61
|
+
|
62
|
+
email: str = field(metadata={"docstring": "Email of the service account."})
|
63
|
+
|
64
|
+
def _validate_email(self, email: str):
|
65
|
+
if not isinstance(email, str):
|
66
|
+
raise TypeError("email must be a string.")
|
@@ -1,2 +1,2 @@
|
|
1
1
|
# AUTOGENERATED - modify shared_anyscale_util in root directory to make changes
|
2
|
-
LATEST_RAY_VERSION = "2.
|
2
|
+
LATEST_RAY_VERSION = "2.41.0"
|
@@ -111,7 +111,9 @@ class IDTypes(Enum):
|
|
111
111
|
instance_usage_budgets = "iub"
|
112
112
|
datasets = "dataset"
|
113
113
|
resource_quotas = "rsq"
|
114
|
+
resource_alerts = "rsa"
|
114
115
|
aggregated_instance_usage = "aiu"
|
116
|
+
readonly_collaborators = "rc"
|
115
117
|
|
116
118
|
|
117
119
|
_default_id_length: int = 26
|
anyscale/util.py
CHANGED
@@ -1168,3 +1168,11 @@ T = TypeVar("T")
|
|
1168
1168
|
|
1169
1169
|
def _coerce_to_list(maybe_list: Union[T, List[T]]) -> List[T]:
|
1170
1170
|
return maybe_list if isinstance(maybe_list, list) else [maybe_list]
|
1171
|
+
|
1172
|
+
|
1173
|
+
def allow_optional_file_storage(api_client: Optional[ProductApi] = None) -> bool:
|
1174
|
+
if api_client is None:
|
1175
|
+
api_client = get_auth_api_client().api_client
|
1176
|
+
return api_client.check_is_feature_flag_on_api_v2_userinfo_check_is_feature_flag_on_get(
|
1177
|
+
"allow-optional-file-storage"
|
1178
|
+
).result.is_on
|
anyscale/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = "0.25.
|
1
|
+
__version__ = "0.25.3"
|
@@ -1,4 +1,4 @@
|
|
1
|
-
anyscale/__init__.py,sha256=
|
1
|
+
anyscale/__init__.py,sha256=YtAe4ql_2J7SnRMMvJzx1Fdw2ZjtC2VLfZFPSDMdLxA,8595
|
2
2
|
anyscale/anyscale-cloud-setup-gcp-oa.yaml,sha256=R8oCBlHF5ItLVZA8m35Dli9fdWXbadLHiNkWhRdUz9U,2722
|
3
3
|
anyscale/anyscale-cloud-setup-gcp.yaml,sha256=-sNJ45nLW6W1qIu0Kc-d2IkYTTjEVYI65lAxZB4KcO8,3922
|
4
4
|
anyscale/anyscale-cloud-setup-oa.yaml,sha256=MMfjT2UCNQS43I3mGOMoSq1cq1dufxtnXU9Zy260TK8,3192
|
@@ -26,20 +26,20 @@ anyscale/project_utils.py,sha256=2P7n3K7R3Iy3pZPAevtga4sn1jfdLLwblt2L5MJqUa0,179
|
|
26
26
|
anyscale/scripts.py,sha256=HR6JOCBVBXMVi1Kz5uJmjsh73t2l1W8UbUge83ofnqk,5474
|
27
27
|
anyscale/snapshot.py,sha256=UGJT5C1s_4xmQxjWODK5DFpGxHRBX5jOCdSCqXESH8E,1685
|
28
28
|
anyscale/tables.py,sha256=TV4F2uLnwehvbkAfaP7iuLlT2wLIo6ORH2LVdRGXW5g,2840
|
29
|
-
anyscale/util.py,sha256=
|
30
|
-
anyscale/version.py,sha256=
|
29
|
+
anyscale/util.py,sha256=Tqb9qWSxQI_PBJVSDxm9RWqFyGJFClgZDPByhb_fhU8,40813
|
30
|
+
anyscale/version.py,sha256=mXrC0wG0d9x4Qj0b-1a15tGJ6JHnWNOm82J2nX_CL2k,23
|
31
31
|
anyscale/workspace_utils.py,sha256=OViE88CnIF5ruVxd3kazQ0Mf2BxqtMq6wx-XQ5A2cp8,1204
|
32
32
|
anyscale/_private/anyscale_client/README.md,sha256=gk8obk7kqg6VWoUHcqDMwJULh35tYKEZFC0UF_dixGA,718
|
33
33
|
anyscale/_private/anyscale_client/__init__.py,sha256=807Blx3RHQeS8BmKZcsOQQ4dYoKlCnpm6Bdsif2CrHg,337
|
34
|
-
anyscale/_private/anyscale_client/anyscale_client.py,sha256=
|
35
|
-
anyscale/_private/anyscale_client/common.py,sha256=
|
36
|
-
anyscale/_private/anyscale_client/fake_anyscale_client.py,sha256=
|
34
|
+
anyscale/_private/anyscale_client/anyscale_client.py,sha256=4yQD0pBE7s_oBmrB85G3gQePnCbbaqyqkki7VTfUrOc,79665
|
35
|
+
anyscale/_private/anyscale_client/common.py,sha256=cdIYXPznSCN90PXvX5LixQQzBZMBFk2hM5WaZeh4ZmU,23729
|
36
|
+
anyscale/_private/anyscale_client/fake_anyscale_client.py,sha256=QlC71hwzqbE0Jv6SeHDCFMi7DLH2U04hFFAN6mXJJPg,52883
|
37
37
|
anyscale/_private/docgen/README.md,sha256=z0tj8Jy0KmxWJBQMHKyzXGX_cYYgI8m5DCD6KCMU8oI,762
|
38
|
-
anyscale/_private/docgen/__main__.py,sha256=
|
39
|
-
anyscale/_private/docgen/api.md,sha256=
|
38
|
+
anyscale/_private/docgen/__main__.py,sha256=K-U7QHryFUorzh8-Lj_uQYf-XEpvKsDkka3_Kw429t4,25824
|
39
|
+
anyscale/_private/docgen/api.md,sha256=SzLoDy6GyriU60l8964CNWz3z_QNEJA7mFHr0FzXyPU,32527
|
40
40
|
anyscale/_private/docgen/generator.py,sha256=dgC3qlqhJrTt0bTl3ExlRFLDwpn_Is2Yv47TJ33jaeE,21711
|
41
41
|
anyscale/_private/docgen/generator_legacy.py,sha256=pss_6ONF55XhARrKGcREDmg0J5plWact6USgb5Tr5mM,3002
|
42
|
-
anyscale/_private/docgen/models.md,sha256=
|
42
|
+
anyscale/_private/docgen/models.md,sha256=gNokrRui7ea89AfpdMew64sAnZU9X27bSv57-Do93-g,278751
|
43
43
|
anyscale/_private/models/__init__.py,sha256=ZrkdHhJZNeCYiogsHc_po8m7vaVdxEjkNGixNeYdlgs,125
|
44
44
|
anyscale/_private/models/image_uri.py,sha256=CMzHc-MNTBsBXvX0G73bjkiznCbm95DYQusgXJ8drm8,3971
|
45
45
|
anyscale/_private/models/model_base.py,sha256=QdIKiyNpvjyUGqQtL4_J9qpCK6clHdmWiKV4jSFXunU,8217
|
@@ -49,7 +49,7 @@ anyscale/_private/sdk/timer.py,sha256=NK6rlmjW4NT6qOuxLo65FJ_wN1q23vNBaYDIt7WhSS
|
|
49
49
|
anyscale/_private/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
50
|
anyscale/_private/utils/progress_util.py,sha256=-xNU3MBbFcFOEk1yLA0t7vP_xQy9ygY6dW9e6ljmx5w,2287
|
51
51
|
anyscale/_private/workload/__init__.py,sha256=_wOZsawqp5NZV9He502e2gFSM66hjqxhxNZTqxnrMws,134
|
52
|
-
anyscale/_private/workload/workload_config.py,sha256=
|
52
|
+
anyscale/_private/workload/workload_config.py,sha256=7ATzg6YyCB-LPW3k18Qc6myX8XE8Ul0Q0cEeIEhPey4,8170
|
53
53
|
anyscale/_private/workload/workload_sdk.py,sha256=ZNcvBQgvbcpE0QtdbwY9y-x5JFQmJ6qJ9fj-VXrGwLQ,13010
|
54
54
|
anyscale/aggregated_instance_usage/__init__.py,sha256=mOreJrOZ87NAF3GD2ZEJ48sSwkUDKcTOPa9_DsRBZY8,1290
|
55
55
|
anyscale/aggregated_instance_usage/commands.py,sha256=jzTYc_nljkkF4eTynZAdXPMKLPY8KE48WTmFbD_KwJI,1251
|
@@ -98,7 +98,7 @@ anyscale/background/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
98
98
|
anyscale/background/job_runner.py,sha256=LTuv9JOahyv6C9i7DLQAONgQF6--FfYZEmJrKy-sUG8,2687
|
99
99
|
anyscale/client/.gitignore,sha256=JZyvYEtT2DCSK9V5Joi6lQofhMik4PXiJRCWsg7SvqI,807
|
100
100
|
anyscale/client/.openapi-generator-ignore,sha256=pu2PTide7pJtJ-DFLzDy0cTYQJRlrB-8RRH3zGLeUds,1040
|
101
|
-
anyscale/client/README.md,sha256=
|
101
|
+
anyscale/client/README.md,sha256=gmO0xijTKkiExa8vwJfp5F-SxyT-46a7NS11PJAJsik,131105
|
102
102
|
anyscale/client/git_push.sh,sha256=EDCZOTTiLxbtPHmiU63qC99rGH67B7dhdPZdNUKivF0,1827
|
103
103
|
anyscale/client/requirements.txt,sha256=dkVKYUStC5h_g_87SH7pRdhXCj7ySozAJMGAFEzGgFc,126
|
104
104
|
anyscale/client/setup.cfg,sha256=l7bdKSIedeBhhoDtupsBwx1xPrlBf2yYeTH7a8kMga4,28
|
@@ -106,14 +106,14 @@ anyscale/client/setup.py,sha256=tSxqw1kAL1B9adnrnOarjnQfSbwGmnTr_kg8ZXhlm5A,1109
|
|
106
106
|
anyscale/client/test-requirements.txt,sha256=sTjmDTj5W9fh1ZAeo8UT2EBdeGDBNttj_PHiPBXg1D4,111
|
107
107
|
anyscale/client/tox.ini,sha256=M6L3UmvAdvU65LsoAF-Oi7oRjwZlCJZn8I7ofdXn5Ok,156
|
108
108
|
anyscale/client/.openapi-generator/VERSION,sha256=J0RzX-4u4jfin1kviKtmncjUePyjHm2kyvmkobOrt_E,5
|
109
|
-
anyscale/client/openapi_client/__init__.py,sha256=
|
109
|
+
anyscale/client/openapi_client/__init__.py,sha256=UtTZmBf0YCKljEYbBFgqKNttiRRvRF3aERTQfvOmrF4,54776
|
110
110
|
anyscale/client/openapi_client/api_client.py,sha256=d8Un6j2Ny2vlS2qBXPVFj6_ql0k36DFahpWt_28TfCk,25563
|
111
111
|
anyscale/client/openapi_client/configuration.py,sha256=Dd5XrlHwv-wxnf0C35PG_-HBQoY3Yaz6hKrmkZz-m0E,12363
|
112
112
|
anyscale/client/openapi_client/exceptions.py,sha256=3egwsXQG2j_vARbqgBxUO1xSltAhpfiHTYVP7VXTvU0,3792
|
113
113
|
anyscale/client/openapi_client/rest.py,sha256=Ehj37v7GHW6SXV067Hze5HE42ayKaGi6a6ZlkR7u3Lg,12501
|
114
114
|
anyscale/client/openapi_client/api/__init__.py,sha256=i8u7BI2xX1GrXTL3hN0pKpYIlnT-D_uDxH2ElOfYG1I,141
|
115
|
-
anyscale/client/openapi_client/api/default_api.py,sha256
|
116
|
-
anyscale/client/openapi_client/models/__init__.py,sha256=
|
115
|
+
anyscale/client/openapi_client/api/default_api.py,sha256=A-cm7khApyBZueMK_hFNrZEUhAvLf5rI15FG4L--myY,2114246
|
116
|
+
anyscale/client/openapi_client/models/__init__.py,sha256=p-Xpd0VXL-MxScK3ifwCUhmOkhYfec_PSX5PhVjgbr4,54286
|
117
117
|
anyscale/client/openapi_client/models/access_config.py,sha256=b2mA0qtuTA5PFbp6C61Jc_T2zUMaojM1v32IhZo0MfY,3648
|
118
118
|
anyscale/client/openapi_client/models/admin_create_user.py,sha256=9DPr8D0lKgoEZ3Z2kGsAd8L7ocFCiP6woOGLVs8SRb8,7251
|
119
119
|
anyscale/client/openapi_client/models/admin_created_user.py,sha256=uZffwCvMxIdPbpCRvFwpkfeG5D3LEQ50ebbwa_cj6bQ,8098
|
@@ -169,7 +169,7 @@ anyscale/client/openapi_client/models/aws_region_info.py,sha256=y30HS1AyryxoqIEk
|
|
169
169
|
anyscale/client/openapi_client/models/awsregionandzones_response.py,sha256=yUmo9cDoDworNZdnd-3F8PzLXWIMzPlxFstvo-p2HZY,3605
|
170
170
|
anyscale/client/openapi_client/models/bank_account_information.py,sha256=500GehjG2BiYBj2VeAHGZ4TAr6_lRrTHYmnJ3aqsv60,8222
|
171
171
|
anyscale/client/openapi_client/models/base_job_status.py,sha256=hQoX9Z6VWkKqPGVwiV7WGcfMgggWlpo8-Ig0lfhc534,3010
|
172
|
-
anyscale/client/openapi_client/models/baseimagesenum.py,sha256=
|
172
|
+
anyscale/client/openapi_client/models/baseimagesenum.py,sha256=iaF5u-3Ih4r972CWQ_WuuogroS1LIvThGoH1kq1_t5A,216863
|
173
173
|
anyscale/client/openapi_client/models/batch_response_batched_result_organization_invitation_base.py,sha256=jSabTOT2BCsngQQ9DcOj18Ug2ac1Dqfr4lbnVxTMfNE,3926
|
174
174
|
anyscale/client/openapi_client/models/batched_result_organization_invitation_base.py,sha256=6lpamdA4O_xM3iRt6InZ2q5h0LIab4yx7FfJK-n8kog,5140
|
175
175
|
anyscale/client/openapi_client/models/billing_information.py,sha256=P6U8sjJ_yhJki4XYuW_3m5V2hdwKSKXk8sXFMn8YsZg,6632
|
@@ -246,6 +246,7 @@ anyscale/client/openapi_client/models/cluster_config.py,sha256=ee_eRei3biKf5JZ2w
|
|
246
246
|
anyscale/client/openapi_client/models/cluster_config_with_session_idle_timeout.py,sha256=l2fSRqmDdbEXMSu3D4vWqnm2FhajJI1S-Or6TRYXYZU,6867
|
247
247
|
anyscale/client/openapi_client/models/cluster_environments_query.py,sha256=X2TRqYVnBMGY-QrslIR1jUTdh8ID4CPsuEhusnFh2SE,9699
|
248
248
|
anyscale/client/openapi_client/models/cluster_event.py,sha256=wfOsofR0jNYeMKd_WzTMUifbY7UOZ20IdoLK3Ujrzxo,5018
|
249
|
+
anyscale/client/openapi_client/models/cluster_event_source.py,sha256=91NhcrFfTUPrDVt3B-VDdt3BNsrejOJKh0v_zC49cK8,3096
|
249
250
|
anyscale/client/openapi_client/models/cluster_events_output.py,sha256=YUHkexy7mGLouGg3YwbJFzY8cryvbvwR-AokzmTeDDI,5351
|
250
251
|
anyscale/client/openapi_client/models/cluster_features.py,sha256=WKGsgFLmCCRHrBMIgMLBmKs82yJ8nQAWD0Gd0KTN4w0,4838
|
251
252
|
anyscale/client/openapi_client/models/cluster_management_stack_versions.py,sha256=bmfziKzWYVRKWthh1xQs013bz5Eg74H3xd0Urm7bOpA,2874
|
@@ -256,6 +257,7 @@ anyscale/client/openapi_client/models/cluster_status_details.py,sha256=Sj086_AZa
|
|
256
257
|
anyscale/client/openapi_client/models/clusterauthresponse_response.py,sha256=rwq8UV5AKtjFkrWg0_k94EggUQ2OrSFkm36tIFK7YEk,3627
|
257
258
|
anyscale/client/openapi_client/models/clusterconfig_response.py,sha256=7lOcvgwkBDR9i2BDbxvsV6L3BDxocEu5NFcOGKu7iaY,3561
|
258
259
|
anyscale/client/openapi_client/models/clusterconfigwithsessionidletimeout_response.py,sha256=L0vEMcAMSI4aN-vEfgU_HxU2GPTnN9tHKIfey5EL9pQ,3803
|
260
|
+
anyscale/client/openapi_client/models/clusterevent_list_response.py,sha256=mtfYHoHjpzqg_VOyIn6XvcW71pfBPlfrxjVP6wxHsX4,4377
|
259
261
|
anyscale/client/openapi_client/models/clustereventsoutput_response.py,sha256=vFPLzXf_sRs8LAg16Ht6Oel18w6FISg7MLFi4YlTvHs,3627
|
260
262
|
anyscale/client/openapi_client/models/clusterfeatures_response.py,sha256=m0GHRo6sAAaSh41ind3rl_AKu5Vy4mfzplFcorYI3hs,3583
|
261
263
|
anyscale/client/openapi_client/models/compute_node_type.py,sha256=Nj7xryJWGX0dqCioFPODIUsrJgDqNm4F0z7uSC0Uqeg,11042
|
@@ -456,7 +458,7 @@ anyscale/client/openapi_client/models/job_submissions_sort_field.py,sha256=y0NH2
|
|
456
458
|
anyscale/client/openapi_client/models/jobqueue_response.py,sha256=cwvt1GkB2cKOWohhMukTazJGYmat0zBV4b2dvpqixkQ,3506
|
457
459
|
anyscale/client/openapi_client/models/jobs_logs.py,sha256=oGAsEtd7jYx9a8h6d0XUteCckeDujgrTgf-QwJUYVuQ,4576
|
458
460
|
anyscale/client/openapi_client/models/jobs_logs_query_info.py,sha256=rW0zzwJggmaRz2sQoneqQDlU-bueirEHVOjAzHRfeJs,5794
|
459
|
-
anyscale/client/openapi_client/models/jobs_sort_field.py,sha256=
|
461
|
+
anyscale/client/openapi_client/models/jobs_sort_field.py,sha256=G5NGcfckLltrUMLhIJsgOjtu9ckBkjyXqOqvb__GNvc,2929
|
460
462
|
anyscale/client/openapi_client/models/jobslogs_response.py,sha256=0wC0BbXsXey1QjDLaNA867W2cSKpw-ShLwZ327ONIWg,3506
|
461
463
|
anyscale/client/openapi_client/models/jobslogsqueryinfo_response.py,sha256=NEI0TbR2WMQWpnUf-DpqpE3LjIkeJXIWTE3UpQ9YrDU,3605
|
462
464
|
anyscale/client/openapi_client/models/json_patch_operation.py,sha256=oHgT9WKmcuAp7fkkvFl0nPhoxdQVmPoxPfF82ivf73k,5419
|
@@ -663,7 +665,7 @@ anyscale/client/openapi_client/models/sessioncommandid_response.py,sha256=x74buY
|
|
663
665
|
anyscale/client/openapi_client/models/sessiondescribe_response.py,sha256=Ujer2LG0p_iUY9eBTlUUB99oLB6EGuEq_lEbo950b94,3583
|
664
666
|
anyscale/client/openapi_client/models/sessiondetails_response.py,sha256=Lh-hoiRP3K7OH4sMvIHCJ7VK1JhWdngBy30QP-Z_uto,3572
|
665
667
|
anyscale/client/openapi_client/models/sessionhistoryitem_list_response.py,sha256=H837Bhwhtj9zzzgftglrPVAtkJuCC3bTkpnItPfDMA8,4467
|
666
|
-
anyscale/client/openapi_client/models/sessions_sort_field.py,sha256=
|
668
|
+
anyscale/client/openapi_client/models/sessions_sort_field.py,sha256=6C7TSxmnELVnK0l9_g3bSb9nV2fCLQroGdsZlTxymDY,2957
|
667
669
|
anyscale/client/openapi_client/models/sessionsshkey_response.py,sha256=z0YT-uC_DYS6kn1C_2Xs6NHR4eMaOkRg05OUd1w02t0,3561
|
668
670
|
anyscale/client/openapi_client/models/setup_initialize_session_options.py,sha256=6z4dZI7oa_YALBUGk3FVtNR8Kt4Sj8YaUKlcrIDNhZ0,6896
|
669
671
|
anyscale/client/openapi_client/models/show_otp_source_return_api_model.py,sha256=gNK_eO-cTjA-aMCD2-U61psMxVsD4N9DzT6JQlOV1kQ,3642
|
@@ -683,7 +685,7 @@ anyscale/client/openapi_client/models/stop_session_options.py,sha256=8ulrBPdfMNE
|
|
683
685
|
anyscale/client/openapi_client/models/stream_publish_request.py,sha256=39FNPmJYIg-nGNbIVyNoYkMlt4OjrVY9nVnqufHA7Ms,7774
|
684
686
|
anyscale/client/openapi_client/models/subnet_id_with_availability_zone_aws.py,sha256=S2pj-e91QvTmbUhT_TBzYr8_ysxwl9uXabNHFDJJRzQ,4754
|
685
687
|
anyscale/client/openapi_client/models/support_requests_query.py,sha256=uSM7EnvidalnDMA5rbu-wGFsP9PX8qdUwc7cABJ6ogw,5496
|
686
|
-
anyscale/client/openapi_client/models/supportedbaseimagesenum.py,sha256=
|
688
|
+
anyscale/client/openapi_client/models/supportedbaseimagesenum.py,sha256=zWlyboc4d0_zskjQMKTv8mXFWYuv0jR3kIMdVnXUB2o,133112
|
687
689
|
anyscale/client/openapi_client/models/templatized_compute_configs.py,sha256=PkxHWZl7w0U4jLYmRG303IEfE-B3VI9zdrMCV5CTGJk,6779
|
688
690
|
anyscale/client/openapi_client/models/templatized_decorated_application_templates.py,sha256=a7mIVW12pYxghlud4quzp_w3vRzpW6yMma32zjOkMeI,7163
|
689
691
|
anyscale/client/openapi_client/models/templatizedcomputeconfigs_response.py,sha256=5ZOMoPL77Dq1Ih1doGrshJ_AwKJg4ASefz_MT9HRq5c,3693
|
@@ -698,6 +700,7 @@ anyscale/client/openapi_client/models/tryloginemailresponse_response.py,sha256=O
|
|
698
700
|
anyscale/client/openapi_client/models/unified_job_sort_field.py,sha256=jshTGJgBavjvCYTGNR74Fz18Ut6HzCla_uozGvcqS9g,2986
|
699
701
|
anyscale/client/openapi_client/models/unified_job_status.py,sha256=Pbe6P2h0gGHky0ghEqDzEQwRjcecsIe9Ez72fmTnlz0,3415
|
700
702
|
anyscale/client/openapi_client/models/unified_job_type.py,sha256=bgjHYG3vi5r0853mteoY6ENQcCaGIBj2l1OmWRWSZ2Q,2897
|
703
|
+
anyscale/client/openapi_client/models/update_cloud_collaborator.py,sha256=9jWSKGBhCxWg68CbCtFpP388nu55D5Ol6qYiDq_Jvyg,3793
|
701
704
|
anyscale/client/openapi_client/models/update_cloud_with_cloud_resource.py,sha256=6eRMQHPB0s02qJoWvSiuHvtju467k5OsKuufd2Lch2c,5876
|
702
705
|
anyscale/client/openapi_client/models/update_cloud_with_cloud_resource_gcp.py,sha256=qrHjRe0pFdddwx8ZsA6V2mIXjnX6NYBKBQV2GBja6Ck,5941
|
703
706
|
anyscale/client/openapi_client/models/update_cluster_dns.py,sha256=eFCs_MSsb21TPWmPb4MQ67R0bcxfbTaCm2pdKh1FkEw,4575
|
@@ -771,11 +774,11 @@ anyscale/cloud/_private/cloud_sdk.py,sha256=kNhDJcbCArmgApATLgZb6b3kZ4YT_uHYCw0u
|
|
771
774
|
anyscale/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
772
775
|
anyscale/commands/aggregated_instance_usage_commands.py,sha256=TRP1X3hdIWbKg9V20VtazlDXsYAeV--M0DH3-Z5tnj4,2293
|
773
776
|
anyscale/commands/auth_commands.py,sha256=X1g6Yu9kqgPb4HLODlZTYEk8G5AVLeyizPIgagWx-p0,1026
|
774
|
-
anyscale/commands/cloud_commands.py,sha256=
|
777
|
+
anyscale/commands/cloud_commands.py,sha256=PwDGw8CMTdJRoIqmW8i4hzwJSAaegQVwUs_7IP8YfxA,39061
|
775
778
|
anyscale/commands/cloud_commands_util.py,sha256=d-6TSZ_syrGkZ3Fc1uRX6jG4dqYMebNkBNpYLojOJFg,247
|
776
779
|
anyscale/commands/cluster_commands.py,sha256=taNcffyFfqJ1MgOQd0cz9kzRXWFTdp-wfLPM4l_2tBc,13487
|
777
780
|
anyscale/commands/cluster_env_commands.py,sha256=KNWylyE8Ew1sDi7yu2Tp4RLcRu2_KJJJIzVGRyPflJo,3899
|
778
|
-
anyscale/commands/command_examples.py,sha256=
|
781
|
+
anyscale/commands/command_examples.py,sha256=WrZWuBNHmdtDLN8mE28q54BO6ZocTUzBHZFCHyj7DZw,21559
|
779
782
|
anyscale/commands/compute_config_commands.py,sha256=vdyrtMcdP8eeK32p_Y6zF-qps6_SyzprhbjRZ9p18tQ,7828
|
780
783
|
anyscale/commands/config_commands.py,sha256=p55uM6WrhfbFoRXC9hNAV-8c5ANghw7tBUYwaQDAtjE,7195
|
781
784
|
anyscale/commands/exec_commands.py,sha256=cMOP1u6xQbl81h69Jug3y73XnNSwpbM6XC1X57SIp4c,465
|
@@ -792,8 +795,8 @@ anyscale/commands/organization_invitation_commands.py,sha256=L0OEz_mF5Dm02KjVzDu
|
|
792
795
|
anyscale/commands/project_commands.py,sha256=xVm-W5kKzgfbQjAiHSRhnyMIlYgGji1TUfYAi8QrGBo,7131
|
793
796
|
anyscale/commands/resource_quota_commands.py,sha256=J6r8b6Bo1wMys5pYWieD6F-VsC2OpQZGVLaNFlvAKmI,8536
|
794
797
|
anyscale/commands/schedule_commands.py,sha256=UPJir8mOAYCUhdL4W43n9WAUlWXpjNHyT048ymhyLRQ,14418
|
795
|
-
anyscale/commands/service_account_commands.py,sha256=
|
796
|
-
anyscale/commands/service_commands.py,sha256=
|
798
|
+
anyscale/commands/service_account_commands.py,sha256=u45N2akHsZxyu5LK03FGEEnZh4dTt4B2Be-dXgbSg3U,3977
|
799
|
+
anyscale/commands/service_commands.py,sha256=zS8B3k710ZPAnYOeeuZr_KovnZP7q3D2wiP17JpGmds,25410
|
797
800
|
anyscale/commands/session_commands_hidden.py,sha256=APEypnUB1yV2Rr6wdSFWy1vQbAnn-lOn0rU2enF5JdM,6200
|
798
801
|
anyscale/commands/user_commands.py,sha256=C-i1dGpdhboywN_2XgPS2BekKx2y6LZq8c8gvS0S-tY,1259
|
799
802
|
anyscale/commands/util.py,sha256=h34d1OUOjcC_QMUGc8th-sAp7xDGs4l7YeYmJx82BKk,5106
|
@@ -818,14 +821,14 @@ anyscale/connect_utils/start_interactive_session.py,sha256=NdS5qCnhPNMUA-v_F0l96
|
|
818
821
|
anyscale/controllers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
819
822
|
anyscale/controllers/auth_controller.py,sha256=hDY2sPvUP8pvh8PnlDYH5rCHjQes2v3b_KBVjMbrzeE,5127
|
820
823
|
anyscale/controllers/base_controller.py,sha256=1QFJoScFUV7YTzpKarhwPOc1SvI-xqX3TZmwxKonW6I,1998
|
821
|
-
anyscale/controllers/cloud_controller.py,sha256=
|
824
|
+
anyscale/controllers/cloud_controller.py,sha256=yRySAL0Zt82d18W5tT7M2QGwP4f8hjJWiBoPnmmXFDo,157602
|
822
825
|
anyscale/controllers/cloud_functional_verification_controller.py,sha256=gTn0bNB-7zpICDFhttEEu4npoKUaKOX44BpVEpmW1l8,33389
|
823
|
-
anyscale/controllers/cluster_controller.py,sha256=
|
826
|
+
anyscale/controllers/cluster_controller.py,sha256=f6Lh1zxZ-rmJrJaxE7SBB0YtFtZCa7qXzgxhRLEmUlQ,29275
|
824
827
|
anyscale/controllers/cluster_env_controller.py,sha256=JalGzcmnFtMHefYL5U6ijMY3nX6W6BsMEfZSMtgBvtU,8048
|
825
828
|
anyscale/controllers/compute_config_controller.py,sha256=GnZAJGrPAmGO6MWvqna-0-DBlwC1y8fnKgwsDVa0eDs,14110
|
826
829
|
anyscale/controllers/config_controller.py,sha256=VsfdARHxo4tMLfeiYkTNOMGW3sIcNhVqYi37-SruKnk,17125
|
827
830
|
anyscale/controllers/experimental_integrations_controller.py,sha256=_22_hAQCJIMg3E10s8xajoFF6Lf1HqVlAdAVt0Rh2DY,3889
|
828
|
-
anyscale/controllers/job_controller.py,sha256=
|
831
|
+
anyscale/controllers/job_controller.py,sha256=upFMeLmQyXD8FfUdUxt6om9CgLvyqV19HExK6dV2a3Y,25196
|
829
832
|
anyscale/controllers/jobs_bg_controller.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
830
833
|
anyscale/controllers/list_controller.py,sha256=oaOS6oo2TKPpXhGjs_laxuIVKinv3FwYfHt1CIzeTuU,11621
|
831
834
|
anyscale/controllers/logs_controller.py,sha256=x5GBUVdPYhbWRA3RfMQZJi3hBS2i35RkgzROfmY47h4,17647
|
@@ -833,7 +836,6 @@ anyscale/controllers/machine_controller.py,sha256=WauNi7Spzt2TFZrIN4PwULzgJZBVDF
|
|
833
836
|
anyscale/controllers/machine_pool_controller.py,sha256=zRWDJgnkusLfOKtaOB2c3FSE70e2SaZS0iGwO39Rar8,3574
|
834
837
|
anyscale/controllers/project_controller.py,sha256=kiGYUNCbYvO0MtzT8qUZLo4YBmfLMHObCjyFGWrByM0,11108
|
835
838
|
anyscale/controllers/schedule_controller.py,sha256=4yLsWfRVqAFAkSV-eUnvLHw1732SUY7oWsgjeJrhhL8,11910
|
836
|
-
anyscale/controllers/service_account_controller.py,sha256=nz9PULXuG72XcdHxOGfa0VlOip9ISOiIFah3mF1wPF0,6357
|
837
839
|
anyscale/controllers/service_controller.py,sha256=RjYVWpGJjFbFDkEDfHpQNINR0tUbGVDkyDg3l-jakeU,16960
|
838
840
|
anyscale/controllers/workspace_controller.py,sha256=LNjLMxQ29vBvYiVVLUWVl3AXTHlRU4Ohao0EgiD4ofI,8449
|
839
841
|
anyscale/controllers/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -874,7 +876,7 @@ anyscale/project/_private/project_sdk.py,sha256=wYVCHpF4kfmI4UTa4-zdCL4m7ip3SqLw
|
|
874
876
|
anyscale/resource_quota/__init__.py,sha256=UvK9xIuz8DMHqiTC6Eu8Pw-Ly_yXtTMhI88a9Rqu4Uw,2853
|
875
877
|
anyscale/resource_quota/commands.py,sha256=d7J4Aejx_uBrDRVPozqt_DcPVocq0eGWTBAUHXylttU,3683
|
876
878
|
anyscale/resource_quota/models.py,sha256=xbq6Lde63r4SPwHmxIXzpdPX_K7exVippzddJUIw0Zo,10950
|
877
|
-
anyscale/resource_quota/_private/resource_quota_sdk.py,sha256=
|
879
|
+
anyscale/resource_quota/_private/resource_quota_sdk.py,sha256=D5P7fboC4k7XLE6GkKhWgzLzbcvZpbAovgSIACnQDxs,4524
|
878
880
|
anyscale/schedule/__init__.py,sha256=xZ07hHVUBMs_6tkhIJYqdskoDtgAndL7Zb0bMY9fCF8,2867
|
879
881
|
anyscale/schedule/commands.py,sha256=hIWgDRUVOXpQusnxlt7aPgHtmfi6GAr__4kUWRJ6YGo,4511
|
880
882
|
anyscale/schedule/models.py,sha256=l3vVpY6ovr1vAgiwjFjVXyHa2tTJ0cLCR0cFIIpllKg,4561
|
@@ -886,7 +888,7 @@ anyscale/sdk/anyscale_client/exceptions.py,sha256=A57t810Y_rVxFpbQlfaDhCwOjeFSB6
|
|
886
888
|
anyscale/sdk/anyscale_client/rest.py,sha256=HVsalJFwXwGTEYgVsLJcsLKUU47wZ5oFSWmOsT2LkMM,12499
|
887
889
|
anyscale/sdk/anyscale_client/sdk.py,sha256=donjqpTmWrGZhQOp5ludnKNBJoIZbMPU5EKTh6QoHW8,27604
|
888
890
|
anyscale/sdk/anyscale_client/api/__init__.py,sha256=aI2dYRCOMQk0Ma2_qiEkpFpQGkEquzKNPGPSErfbhro,142
|
889
|
-
anyscale/sdk/anyscale_client/api/default_api.py,sha256=
|
891
|
+
anyscale/sdk/anyscale_client/api/default_api.py,sha256=LZ80ZUY62CGpOwM5RuMrcOwSXYP0YTcKHWw55CbJhw4,542726
|
890
892
|
anyscale/sdk/anyscale_client/models/__init__.py,sha256=L26W47ClDCFq_5zMCgl6umG0H2BtaX6xu1Qa8ebmzto,15373
|
891
893
|
anyscale/sdk/anyscale_client/models/access_config.py,sha256=FOH_2UU2astWm_ilA1_FpWqKQRxwMYXjGC-UT4Zj65Y,3646
|
892
894
|
anyscale/sdk/anyscale_client/models/app_config.py,sha256=1sWYt1jiljHiXtWCQi7HJw4sBvulaqPV8tmTvNpgZYI,13439
|
@@ -897,7 +899,7 @@ anyscale/sdk/anyscale_client/models/apply_production_service_v2_model.py,sha256=
|
|
897
899
|
anyscale/sdk/anyscale_client/models/apply_service_model.py,sha256=ZCOOYhB3WxBlcRH8TdKJyraiTWZl45rF19INfm_XmzE,19551
|
898
900
|
anyscale/sdk/anyscale_client/models/archive_status.py,sha256=C5z72r5glAaa5cOXzwhECfBN3QiVP769B_2_Q9G4znk,2873
|
899
901
|
anyscale/sdk/anyscale_client/models/base_job_status.py,sha256=wW3Cq4H1Bchg1OVf-f0eQyEugMDvM8BgDu6zrAQuYic,3008
|
900
|
-
anyscale/sdk/anyscale_client/models/baseimagesenum.py,sha256=
|
902
|
+
anyscale/sdk/anyscale_client/models/baseimagesenum.py,sha256=5qQr_bH9eoeYksSyHd2oQrhjMacU4OBu4Hwm4-nI8hg,216861
|
901
903
|
anyscale/sdk/anyscale_client/models/build.py,sha256=xiHlZqdnn-jAcbsLp735tjXG4f9TX49ADYqkbL39zLQ,20306
|
902
904
|
anyscale/sdk/anyscale_client/models/build_list_response.py,sha256=TF6awv_aL-Ng2luxUqScxK4goTpYQftyljrMhAGp2B0,4270
|
903
905
|
anyscale/sdk/anyscale_client/models/build_log_response.py,sha256=CzBvxz8Oh3TJ3Kd2BpoSlXfhdiUKCSNp558nHf6PxP0,3529
|
@@ -991,7 +993,7 @@ anyscale/sdk/anyscale_client/models/job_queue_spec.py,sha256=6rfyCkyYCsLFIaq8m-f
|
|
991
993
|
anyscale/sdk/anyscale_client/models/job_run_type.py,sha256=t2_LBY7PntZi5_zTEh4_JGH2eyjalGre4RVPG5d6qdc,2888
|
992
994
|
anyscale/sdk/anyscale_client/models/job_status.py,sha256=gUFnvO3SJDTIsfculUWjlcrqDnBgL7zLqp15qyafW6k,2992
|
993
995
|
anyscale/sdk/anyscale_client/models/jobs_query.py,sha256=QC-cZsymG4Hc7CE6atosIsLkuQ9BujtuxtjPTLjVyGY,15582
|
994
|
-
anyscale/sdk/anyscale_client/models/jobs_sort_field.py,sha256=
|
996
|
+
anyscale/sdk/anyscale_client/models/jobs_sort_field.py,sha256=SZTibpFyBhP7wvvsUh7pBOtJYwIQkFOnYwvAZEOMsa8,2927
|
995
997
|
anyscale/sdk/anyscale_client/models/list_response_metadata.py,sha256=gzH9tialntJ3AHSN1RTL1jMVgmgH28Wj7HAxwLi0a2Y,4214
|
996
998
|
anyscale/sdk/anyscale_client/models/list_service_model.py,sha256=fmEvGc9sYpaY42Hru-6tVSr7JLPiD-cEuCljxwifMy4,11220
|
997
999
|
anyscale/sdk/anyscale_client/models/listservicemodel_list_response.py,sha256=BUh7fEjTAo1U-1dPIJWJovetpQj3WL24dWUzi-CzmuY,4435
|
@@ -1070,7 +1072,7 @@ anyscale/sdk/anyscale_client/models/ssoconfig_response.py,sha256=_ezyQtU4CI25mYs
|
|
1070
1072
|
anyscale/sdk/anyscale_client/models/start_cluster_options.py,sha256=hlCCHVqxwT70lJVL9mg7XhcoM_6nPcl6LmzMbIuJ-IM,6404
|
1071
1073
|
anyscale/sdk/anyscale_client/models/start_session_options.py,sha256=y6Xa9hGFCMimdzCq-8k9MegI5JHelXoNve_UbGHWI08,6943
|
1072
1074
|
anyscale/sdk/anyscale_client/models/static_sso_config.py,sha256=Bq_Pmc1-DKVKiX-xwm6bOc9hw3400U9YZ4-iN93tTSg,7119
|
1073
|
-
anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py,sha256=
|
1075
|
+
anyscale/sdk/anyscale_client/models/supportedbaseimagesenum.py,sha256=qZ1HMACAxN3ATh64jrHHSa6z5BOZJ43KM5JlUIKThpY,133110
|
1074
1076
|
anyscale/sdk/anyscale_client/models/terminate_cluster_options.py,sha256=G88vOv_i5E-CXT5IFGjnu0oZ6diycd9UXI-go9o3vLE,3883
|
1075
1077
|
anyscale/sdk/anyscale_client/models/terminate_session_options.py,sha256=eeWuiUVUZnojpojWbnO4VNijiI7y4S8JyW948Eh3quE,6621
|
1076
1078
|
anyscale/sdk/anyscale_client/models/text_query.py,sha256=NVGbkdvoJxTiCtDhbkiwCUGsqHrewENVRvkh_njNGzg,5105
|
@@ -1087,10 +1089,14 @@ anyscale/sdk/anyscale_client/models/user_service_access_types.py,sha256=3gW1L_VT
|
|
1087
1089
|
anyscale/sdk/anyscale_client/models/ux_instance.py,sha256=F2F2cxAJ5GElRgHcrxpB7GEpvhM-PJa3qpBBYmhwlUQ,15935
|
1088
1090
|
anyscale/sdk/anyscale_client/models/validation_error.py,sha256=h5Cope8JNSDE3Fpr1TfjcnuJPThF0dd_uawvltOqPt0,4901
|
1089
1091
|
anyscale/sdk/anyscale_client/models/worker_node_type.py,sha256=bI3sPVPA4t4axjdbj7pNlPkKPJDDkOnMgiN7B_o3IZI,15046
|
1090
|
-
anyscale/service/__init__.py,sha256
|
1091
|
-
anyscale/service/commands.py,sha256=
|
1092
|
+
anyscale/service/__init__.py,sha256=-a1wMAR5ouEztZEpoS1c8iFCEKcaOtryTqXON8r2BJw,5702
|
1093
|
+
anyscale/service/commands.py,sha256=esBm_l2iTTgk6idTLbetBUe-p3wTxp2y6hCATmiFH7o,10047
|
1092
1094
|
anyscale/service/models.py,sha256=-e-V1RKZ34ZXPzEBkvq4vfrvum33E_JTTu6uxmDA1Ak,24038
|
1093
|
-
anyscale/service/_private/service_sdk.py,sha256=
|
1095
|
+
anyscale/service/_private/service_sdk.py,sha256=RxTRZzD4KHw7H7k9bEsKb9IBqyVfMT3ImVxTxxfDp8M,28653
|
1096
|
+
anyscale/service_account/__init__.py,sha256=jV1OFo_ZTxU3vuPztO1300TuoMz-Ocudm6_84ZtjPQ4,2764
|
1097
|
+
anyscale/service_account/commands.py,sha256=zipHgr0-HtxwpZv_fOU6RKe_l8HFIrUSxvzyikTYhl8,3429
|
1098
|
+
anyscale/service_account/models.py,sha256=MhY-Fo5AZQ68brqtolTUMW3WQDrkNyL1udtNg70sNAU,2189
|
1099
|
+
anyscale/service_account/_private/service_account_sdk.py,sha256=MGF64copqVjDJgY05rOlKJOQ0KsIE6mjzWuM6XcyvUs,3590
|
1094
1100
|
anyscale/shared_anyscale_utils/__init__.py,sha256=2iCXV0v5drnxM8pyFCGm4cthya6zkw1R5RwqMtNO5a0,80
|
1095
1101
|
anyscale/shared_anyscale_utils/aws.py,sha256=MDWTFNOAD4fwxLWzv1taGhl1qP9u08qdsdbwSRvxbd4,5119
|
1096
1102
|
anyscale/shared_anyscale_utils/bytes_util.py,sha256=6cpIW0LMymqivnww4uxFeWdPuyBxtwLf8Oo8FusMBxg,226
|
@@ -1098,7 +1104,7 @@ anyscale/shared_anyscale_utils/conf.py,sha256=nn5Uh-Aj8qShfnFBciKDUarnaGUGo1Xptf
|
|
1098
1104
|
anyscale/shared_anyscale_utils/default_anyscale_aws.yaml,sha256=wU8xPUQ6sMtVB5q3QYYGYlhCKkI5QDtg8LvH53hQ6WE,1650
|
1099
1105
|
anyscale/shared_anyscale_utils/default_anyscale_gcp.yaml,sha256=rmwavzx7aTsSPio-jmYhdvfkHCuu8BOkNOuMSKMgBRE,1817
|
1100
1106
|
anyscale/shared_anyscale_utils/headers.py,sha256=c1PnH7Ag42ESQJkKTWP4ibEujvo9blZcFXEJtQzupUk,1002
|
1101
|
-
anyscale/shared_anyscale_utils/latest_ray_version.py,sha256=
|
1107
|
+
anyscale/shared_anyscale_utils/latest_ray_version.py,sha256=QqsypiiNr-k6c_d4JZTxvbFiUjJJVG4A5m9yG_fbKQA,110
|
1102
1108
|
anyscale/shared_anyscale_utils/project.py,sha256=7gQ6RXWV1bQEWRN5hloj-U3DxmEw6LEEhGoF0oWoAm8,476
|
1103
1109
|
anyscale/shared_anyscale_utils/test_util.py,sha256=bYkCdHV9ZTlFrvHOtub5vivj4TXCct1WECzIPTRMU1I,657
|
1104
1110
|
anyscale/shared_anyscale_utils/util.py,sha256=oT82MhLjJo2-Xb4iLN1_JhGN4rdXWfrkcLe4QDkRx1A,1787
|
@@ -1109,7 +1115,7 @@ anyscale/shared_anyscale_utils/utils/__init__.py,sha256=M_ebCo5_hZ-aSP8SzcuqKwhC
|
|
1109
1115
|
anyscale/shared_anyscale_utils/utils/asyncio.py,sha256=aOlH-bw8QJbSIg7-BpbLuy8zBYJqEK56QJD2-DhBEAE,4145
|
1110
1116
|
anyscale/shared_anyscale_utils/utils/byod.py,sha256=yue93FlA9bzlLAtIpSkpVj0-0IWaV8ITgdpkBr3wNvU,1097
|
1111
1117
|
anyscale/shared_anyscale_utils/utils/collections.py,sha256=t_6SZNOskAn7EP0gwgJHRnRxj4ykYj_lxcqwLmUUs08,899
|
1112
|
-
anyscale/shared_anyscale_utils/utils/id_gen.py,sha256=
|
1118
|
+
anyscale/shared_anyscale_utils/utils/id_gen.py,sha256=RbVvgGbtkFISaJFnf-ATImUA7VlQ6Wntflfzhfu-fDw,4792
|
1113
1119
|
anyscale/shared_anyscale_utils/utils/protected_string.py,sha256=8-T3VC37NrWeAhc7aPjMsUd9zhjcSF1xaGo2GRNjLL4,3166
|
1114
1120
|
anyscale/shared_anyscale_utils/utils/ray_semver.py,sha256=OzIJuawv4Ja-_irSCLUO8e-P1wc-qMvOAJcr689_hn4,2539
|
1115
1121
|
anyscale/user/__init__.py,sha256=mWpx3KTLWGWMB5m6a_GKOaqCOm-sqhBkXYb6iM78OOA,1220
|
@@ -1151,10 +1157,10 @@ anyscale/workspace/__init__.py,sha256=fIxkn8b_HADCQl5njPAbcJxAf0sajZoc55L_wMvGAx
|
|
1151
1157
|
anyscale/workspace/commands.py,sha256=21FubFd2wmEwlVbk-ng-adwBm-O4ZPBgEJnoavbfvbU,14035
|
1152
1158
|
anyscale/workspace/models.py,sha256=Ey67KqxdslS51yK7xetbRaFjE8sURAArpf-F38r3cUU,9760
|
1153
1159
|
anyscale/workspace/_private/workspace_sdk.py,sha256=4LOBmMm7kd-O94ii5uP1UDbkWLComh6zI5QmE2lXRTY,26824
|
1154
|
-
anyscale-0.25.
|
1155
|
-
anyscale-0.25.
|
1156
|
-
anyscale-0.25.
|
1157
|
-
anyscale-0.25.
|
1158
|
-
anyscale-0.25.
|
1159
|
-
anyscale-0.25.
|
1160
|
-
anyscale-0.25.
|
1160
|
+
anyscale-0.25.3.dist-info/LICENSE,sha256=UOPu974Wzsna6frFv1mu4VrZgNdZT7lbcNPzo5ue3qs,3494
|
1161
|
+
anyscale-0.25.3.dist-info/METADATA,sha256=YBLyVuJeB1XICwEcWyZST4_3HQljlpcBrQx1LvtQkjg,3049
|
1162
|
+
anyscale-0.25.3.dist-info/NOTICE,sha256=gHqDhSnUYlRXX-mDOL5FtE7774oiKyV_HO80qM3r9Xo,196
|
1163
|
+
anyscale-0.25.3.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
1164
|
+
anyscale-0.25.3.dist-info/entry_points.txt,sha256=NqO18sCZn6zG6J0S38itjcN00s7aE3C3v3k5lMAfCLk,51
|
1165
|
+
anyscale-0.25.3.dist-info/top_level.txt,sha256=g3NVNS8Oh0NZwbFFgeX696C5MZZkS5dqV2NqcsbDRJE,9
|
1166
|
+
anyscale-0.25.3.dist-info/RECORD,,
|
@@ -1,168 +0,0 @@
|
|
1
|
-
from typing import List, Optional
|
2
|
-
|
3
|
-
import click
|
4
|
-
from rich import box
|
5
|
-
from rich.console import Console
|
6
|
-
from rich.table import Table
|
7
|
-
|
8
|
-
from anyscale.cli_logger import BlockLogger
|
9
|
-
from anyscale.client.openapi_client.models import (
|
10
|
-
AnyscaleServiceAccount,
|
11
|
-
ServerSessionToken,
|
12
|
-
)
|
13
|
-
from anyscale.controllers.base_controller import BaseController
|
14
|
-
|
15
|
-
|
16
|
-
WARNING_COLOR = "bold red"
|
17
|
-
DEFAULT_OVERFLOW = "fold"
|
18
|
-
DEFAULT_COL_WIDTH = 36
|
19
|
-
ONE_HUNDRED_YEARS_IN_SECONDS = 3153600000
|
20
|
-
|
21
|
-
|
22
|
-
class ServiceAccountController(BaseController):
|
23
|
-
def __init__(self):
|
24
|
-
super().__init__()
|
25
|
-
self.log = BlockLogger()
|
26
|
-
self.console = Console()
|
27
|
-
|
28
|
-
def _get_service_account_identifier(
|
29
|
-
self, email: Optional[str], name: Optional[str]
|
30
|
-
) -> str:
|
31
|
-
# Logic can be simplified but kept verbose for clarity and typing
|
32
|
-
if not email and not name:
|
33
|
-
raise click.ClickException("Either email or name must be provided.")
|
34
|
-
if email and name:
|
35
|
-
raise click.ClickException("Only one of email or name can be provided.")
|
36
|
-
if email:
|
37
|
-
return email
|
38
|
-
elif name:
|
39
|
-
return name
|
40
|
-
|
41
|
-
raise click.ClickException("Internal server error. Please contact support.")
|
42
|
-
|
43
|
-
def _validate_exactly_one_service_account_per_email_or_name(
|
44
|
-
self, service_accounts: List[AnyscaleServiceAccount], identifier: str,
|
45
|
-
):
|
46
|
-
if len(service_accounts) == 0:
|
47
|
-
raise click.ClickException(f"No service account {identifier} found.")
|
48
|
-
|
49
|
-
if len(service_accounts) > 1:
|
50
|
-
raise click.ClickException(
|
51
|
-
f"Internal server error when fetching service account {identifier}. Please contact support."
|
52
|
-
)
|
53
|
-
|
54
|
-
def _print_new_api_key(self, api_key: ServerSessionToken):
|
55
|
-
self.console.print(
|
56
|
-
"The following API token for the service account will only appear once:\n",
|
57
|
-
style=WARNING_COLOR,
|
58
|
-
)
|
59
|
-
self.console.print(api_key.server_session_id)
|
60
|
-
|
61
|
-
def create_service_account(self, name: str):
|
62
|
-
service_account = self.api_client.create_service_account_api_v2_users_service_accounts_post(
|
63
|
-
name=name
|
64
|
-
).result
|
65
|
-
api_key = self.api_client.create_api_key_api_v2_users_create_api_key_post(
|
66
|
-
api_key_parameters={
|
67
|
-
"user_id": service_account.user_id,
|
68
|
-
"duration": ONE_HUNDRED_YEARS_IN_SECONDS,
|
69
|
-
}
|
70
|
-
).result
|
71
|
-
|
72
|
-
self.console.print(f"\nService account {name} created successfully.")
|
73
|
-
self._print_new_api_key(api_key)
|
74
|
-
|
75
|
-
def create_new_service_account_api_key(
|
76
|
-
self, email: Optional[str], name: Optional[str]
|
77
|
-
):
|
78
|
-
service_accounts = (
|
79
|
-
self.api_client.list_organization_collaborators_api_v2_organization_collaborators_get(
|
80
|
-
is_service_account=True, email=email, name=name
|
81
|
-
)
|
82
|
-
).results
|
83
|
-
self._validate_exactly_one_service_account_per_email_or_name(
|
84
|
-
service_accounts, self._get_service_account_identifier(email, name)
|
85
|
-
)
|
86
|
-
sa = service_accounts[0]
|
87
|
-
api_key = self.api_client.create_api_key_api_v2_users_create_api_key_post(
|
88
|
-
api_key_parameters={
|
89
|
-
"user_id": sa.user_id,
|
90
|
-
"duration": ONE_HUNDRED_YEARS_IN_SECONDS,
|
91
|
-
}
|
92
|
-
).result
|
93
|
-
|
94
|
-
self._print_new_api_key(api_key)
|
95
|
-
|
96
|
-
def _print_service_account_table(
|
97
|
-
self, service_accounts: List[AnyscaleServiceAccount]
|
98
|
-
):
|
99
|
-
table = Table(box=box.MINIMAL, header_style="bright_cyan")
|
100
|
-
table.add_column("NAME", width=DEFAULT_COL_WIDTH, overflow=DEFAULT_OVERFLOW)
|
101
|
-
table.add_column(
|
102
|
-
"CREATED AT",
|
103
|
-
style="dim",
|
104
|
-
width=DEFAULT_COL_WIDTH,
|
105
|
-
overflow=DEFAULT_OVERFLOW,
|
106
|
-
)
|
107
|
-
table.add_column(
|
108
|
-
"ORGANIZATION ROLE", width=DEFAULT_COL_WIDTH, overflow=DEFAULT_OVERFLOW
|
109
|
-
)
|
110
|
-
table.add_column("EMAIL", width=80, overflow=DEFAULT_OVERFLOW)
|
111
|
-
for sa in service_accounts:
|
112
|
-
table.add_row(
|
113
|
-
sa.name,
|
114
|
-
sa.created_at.strftime("%Y/%m/%d"),
|
115
|
-
sa.permission_level,
|
116
|
-
sa.email,
|
117
|
-
)
|
118
|
-
|
119
|
-
self.console.print(table)
|
120
|
-
|
121
|
-
def list_service_accounts(self, max_items: int):
|
122
|
-
service_accounts = self.api_client.list_organization_collaborators_api_v2_organization_collaborators_get(
|
123
|
-
is_service_account=True
|
124
|
-
).results
|
125
|
-
|
126
|
-
self._print_service_account_table(service_accounts[:max_items])
|
127
|
-
|
128
|
-
def delete_service_account(self, email: Optional[str], name: Optional[str]):
|
129
|
-
service_accounts = self.api_client.list_organization_collaborators_api_v2_organization_collaborators_get(
|
130
|
-
is_service_account=True, email=email, name=name
|
131
|
-
).results
|
132
|
-
identifier = self._get_service_account_identifier(email, name)
|
133
|
-
self._validate_exactly_one_service_account_per_email_or_name(
|
134
|
-
service_accounts, identifier
|
135
|
-
)
|
136
|
-
sa = service_accounts[0]
|
137
|
-
self.api_client.remove_organization_collaborator_api_v2_organization_collaborators_identity_id_delete(
|
138
|
-
identity_id=sa.id
|
139
|
-
)
|
140
|
-
self.console.print(f"Service account {identifier} deleted successfully.")
|
141
|
-
|
142
|
-
def rotate_service_account_api_keys(
|
143
|
-
self, email: Optional[str], name: Optional[str]
|
144
|
-
):
|
145
|
-
service_accounts = (
|
146
|
-
self.api_client.list_organization_collaborators_api_v2_organization_collaborators_get(
|
147
|
-
is_service_account=True, email=email, name=name
|
148
|
-
)
|
149
|
-
).results
|
150
|
-
|
151
|
-
identifier = self._get_service_account_identifier(email, name)
|
152
|
-
self._validate_exactly_one_service_account_per_email_or_name(
|
153
|
-
service_accounts, identifier
|
154
|
-
)
|
155
|
-
sa = service_accounts[0]
|
156
|
-
self.api_client.rotate_api_key_for_user_api_v2_organization_collaborators_rotate_api_key_for_user_user_id_post(
|
157
|
-
sa.user_id
|
158
|
-
)
|
159
|
-
api_key = self.api_client.create_api_key_api_v2_users_create_api_key_post(
|
160
|
-
api_key_parameters={
|
161
|
-
"user_id": sa.user_id,
|
162
|
-
"duration": ONE_HUNDRED_YEARS_IN_SECONDS,
|
163
|
-
}
|
164
|
-
).result
|
165
|
-
self.console.print(
|
166
|
-
f"\nAll API keys for service account {identifier} rotated successfully."
|
167
|
-
)
|
168
|
-
self._print_new_api_key(api_key)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|