yellowdog-sdk 9.6.0__py3-none-any.whl → 11.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. yellowdog_client/_version.py +1 -1
  2. yellowdog_client/account/account_client.py +2 -2
  3. yellowdog_client/account/account_client_impl.py +3 -3
  4. yellowdog_client/account/account_service_proxy.py +3 -3
  5. yellowdog_client/common/json/__init__.py +8 -2
  6. yellowdog_client/model/__init__.py +12 -14
  7. yellowdog_client/model/access_delegate.py +3 -3
  8. yellowdog_client/model/cloud_provider.py +0 -2
  9. yellowdog_client/model/compute_requirement_dynamic_template.py +1 -0
  10. yellowdog_client/model/granted_permission_scope.py +10 -0
  11. yellowdog_client/model/granted_permissions.py +10 -0
  12. yellowdog_client/model/group_role.py +2 -0
  13. yellowdog_client/model/namespace_ref.py +7 -0
  14. yellowdog_client/model/permission.py +48 -46
  15. yellowdog_client/model/permission_detail.py +3 -0
  16. yellowdog_client/model/permission_scope.py +9 -0
  17. yellowdog_client/model/role_scope.py +8 -0
  18. yellowdog_client/model/role_scope_validator.py +6 -0
  19. yellowdog_client/model/user_portal_context.py +2 -0
  20. {yellowdog_sdk-9.6.0.dist-info → yellowdog_sdk-11.0.0.dist-info}/METADATA +1 -1
  21. {yellowdog_sdk-9.6.0.dist-info → yellowdog_sdk-11.0.0.dist-info}/RECORD +24 -25
  22. yellowdog_client/model/alibaba_compute_source.py +0 -9
  23. yellowdog_client/model/alibaba_credential.py +0 -16
  24. yellowdog_client/model/alibaba_instance.py +0 -40
  25. yellowdog_client/model/alibaba_instance_charge_type.py +0 -15
  26. yellowdog_client/model/alibaba_instances_compute_source.py +0 -64
  27. yellowdog_client/model/alibaba_namespace_storage_configuration.py +0 -12
  28. yellowdog_client/model/alibaba_spot_strategy.py +0 -16
  29. {yellowdog_sdk-9.6.0.dist-info → yellowdog_sdk-11.0.0.dist-info}/WHEEL +0 -0
  30. {yellowdog_sdk-9.6.0.dist-info → yellowdog_sdk-11.0.0.dist-info}/licenses/LICENSE +0 -0
  31. {yellowdog_sdk-9.6.0.dist-info → yellowdog_sdk-11.0.0.dist-info}/top_level.txt +0 -0
@@ -1 +1 @@
1
- __version__ = '9.6.0' # YEL-13736
1
+ __version__ = '11.0.0' # YEL-13643
@@ -4,7 +4,7 @@ from abc import ABC, abstractmethod
4
4
  from typing import List
5
5
 
6
6
  from yellowdog_client.common import Closeable, SearchClient
7
- from yellowdog_client.model import AddApplicationRequest, AddApplicationResponse, AddGroupRequest, ApiKey, Application, ApplicationSearch, Group, GroupSearch, GroupSummary, PermissionDetail, Role, RoleSearch, UpdateApplicationRequest, UpdateGroupRequest, User, UserSearch
7
+ from yellowdog_client.model import AddApplicationRequest, AddApplicationResponse, AddGroupRequest, ApiKey, Application, ApplicationSearch, Group, GroupSearch, GroupSummary, PermissionDetail, Role, RoleScope, RoleSearch, UpdateApplicationRequest, UpdateGroupRequest, User, UserSearch
8
8
 
9
9
 
10
10
  class AccountClient(ABC, Closeable):
@@ -99,7 +99,7 @@ class AccountClient(ABC, Closeable):
99
99
  pass
100
100
 
101
101
  @abstractmethod
102
- def add_role_to_group(self, group_id: str, role_id: str) -> None:
102
+ def add_role_to_group(self, group_id: str, role_id: str, scope: RoleScope) -> None:
103
103
  pass
104
104
 
105
105
  @abstractmethod
@@ -5,7 +5,7 @@ from yellowdog_client.account.account_service_proxy import AccountServiceProxy
5
5
  from yellowdog_client.common import SearchClient
6
6
  from yellowdog_client.model import User, SliceReference, UserSearch, Slice, GroupSummary, Application, \
7
7
  ApplicationSearch, UpdateApplicationRequest, AddApplicationResponse, AddApplicationRequest, ApiKey, \
8
- PermissionDetail, Role, Group, AddGroupRequest, UpdateGroupRequest, GroupSearch, RoleSearch
8
+ PermissionDetail, Role, Group, AddGroupRequest, UpdateGroupRequest, GroupSearch, RoleSearch, RoleScope
9
9
 
10
10
 
11
11
  class AccountClientImpl(AccountClient):
@@ -105,8 +105,8 @@ class AccountClientImpl(AccountClient):
105
105
  def add_application_to_group(self, group_id: str, application_id: str) -> None:
106
106
  return self.__service_proxy.add_application_to_group(group_id, application_id)
107
107
 
108
- def add_role_to_group(self, group_id: str, role_id: str) -> None:
109
- return self.__service_proxy.add_role_to_group(group_id, role_id)
108
+ def add_role_to_group(self, group_id: str, role_id: str, scope: RoleScope) -> None:
109
+ return self.__service_proxy.add_role_to_group(group_id, role_id, scope)
110
110
 
111
111
  def remove_user_from_group(self, group_id: str, user_id: str) -> None:
112
112
  return self.__service_proxy.remove_user_from_group(group_id, user_id)
@@ -4,7 +4,7 @@ from yellowdog_client.common import Proxy
4
4
  from yellowdog_client.model import UserSearch, SliceReference, Slice, GroupSummary, Application, \
5
5
  UpdateApplicationRequest, AddApplicationRequest, AddApplicationResponse, ApiKey, ApplicationSearch, \
6
6
  PermissionDetail, \
7
- Role, RoleSearch, Group, AddGroupRequest, UpdateGroupRequest, GroupSearch, User
7
+ Role, RoleSearch, Group, AddGroupRequest, UpdateGroupRequest, GroupSearch, User, RoleScope
8
8
 
9
9
 
10
10
  class AccountServiceProxy:
@@ -104,8 +104,8 @@ class AccountServiceProxy:
104
104
  def add_application_to_group(self, group_id: str, application_id: str) -> None:
105
105
  return self.proxy.put(url="groups/%s/applications/%s" % (group_id, application_id))
106
106
 
107
- def add_role_to_group(self, group_id: str, role_id: str) -> None:
108
- return self.proxy.put(url="groups/%s/roles/%s" % (group_id, role_id))
107
+ def add_role_to_group(self, group_id: str, role_id: str, scope: RoleScope) -> None:
108
+ return self.proxy.put(data=scope, url="groups/%s/roles/%s" % (group_id, role_id))
109
109
 
110
110
  def remove_user_from_group(self, group_id: str, user_id: str) -> None:
111
111
  return self.proxy.delete("groups/%s/users/%s" % (group_id, user_id))
@@ -10,7 +10,6 @@ from jsons._compatibility_impl import get_union_params, get_naked_class
10
10
  from jsons._load_impl import load
11
11
  from jsons._dump_impl import dump
12
12
  from typish import get_args
13
-
14
13
  from yellowdog_client.model import Slice
15
14
  from yellowdog_client.model.exceptions import BaseCustomException
16
15
  from yellowdog_client.model.exceptions import ErrorType
@@ -99,6 +98,7 @@ def object_deserializer(value: dict, cls: type, **kwargs) -> object:
99
98
  instance = naked_subclass.__new__(naked_subclass)
100
99
  class_name = naked_subclass.__name__
101
100
  for attr_name, attr_value in value.items():
101
+ attr_name = f"{attr_name}_" if attr_name in keywords else attr_name
102
102
  try:
103
103
  attr_type = type_hints[attr_name]
104
104
  except KeyError:
@@ -156,6 +156,12 @@ jsons.set_deserializer(slice_deserializer, Slice)
156
156
  jsons.set_deserializer(union_deserializer, (Union, Optional))
157
157
  jsons.set_deserializer(object_deserializer, object, False)
158
158
 
159
+ keywords = {'global'}
160
+
161
+
162
+ def deserialization_key_transformer(key: str) -> str:
163
+ return key[:-1] if key[:-1] in keywords else key
164
+
159
165
 
160
166
  class Json:
161
167
  @classmethod
@@ -164,7 +170,7 @@ class Json:
164
170
 
165
171
  @staticmethod
166
172
  def dump(value: object) -> object:
167
- return jsons.dump(value, strip_nulls=True, strip_privates=True, use_enum_name=True)
173
+ return jsons.dump(value, strip_nulls=True, strip_privates=True, use_enum_name=True, key_transformer=deserialization_key_transformer)
168
174
 
169
175
  @classmethod
170
176
  def loads(cls, value: str, value_class: Type[T]) -> T:
@@ -11,13 +11,6 @@ from .add_group_request import AddGroupRequest
11
11
  from .add_node_actions_request import AddNodeActionsRequest
12
12
  from .add_user_request import AddUserRequest
13
13
  from .add_user_response import AddUserResponse
14
- from .alibaba_compute_source import AlibabaComputeSource
15
- from .alibaba_credential import AlibabaCredential
16
- from .alibaba_instance import AlibabaInstance
17
- from .alibaba_instance_charge_type import AlibabaInstanceChargeType
18
- from .alibaba_instances_compute_source import AlibabaInstancesComputeSource
19
- from .alibaba_namespace_storage_configuration import AlibabaNamespaceStorageConfiguration
20
- from .alibaba_spot_strategy import AlibabaSpotStrategy
21
14
  from .allowance import Allowance
22
15
  from .allowance_exhausted_notification import AllowanceExhaustedNotification
23
16
  from .allowance_limit_enforcement import AllowanceLimitEnforcement
@@ -138,6 +131,8 @@ from .gcs_namespace_storage_configuration import GcsNamespaceStorageConfiguratio
138
131
  from .google_cloud_credential import GoogleCloudCredential
139
132
  from .grant_application_access_request import GrantApplicationAccessRequest
140
133
  from .grant_user_access_request import GrantUserAccessRequest
134
+ from .granted_permission_scope import GrantedPermissionScope
135
+ from .granted_permissions import GrantedPermissions
141
136
  from .group import Group
142
137
  from .group_role import GroupRole
143
138
  from .group_search import GroupSearch
@@ -186,6 +181,7 @@ from .namespace_autoscaling_capacity_response import NamespaceAutoscalingCapacit
186
181
  from .namespace_objects_response import NamespaceObjectsResponse
187
182
  from .namespace_policy import NamespacePolicy
188
183
  from .namespace_policy_search import NamespacePolicySearch
184
+ from .namespace_ref import NamespaceRef
189
185
  from .namespace_search import NamespaceSearch
190
186
  from .namespace_storage_configuration import NamespaceStorageConfiguration
191
187
  from .new_password_request import NewPasswordRequest
@@ -231,6 +227,7 @@ from .okta_account_authentication_properties import OktaAccountAuthenticationPro
231
227
  from .operating_system_licence import OperatingSystemLicence
232
228
  from .permission import Permission
233
229
  from .permission_detail import PermissionDetail
230
+ from .permission_scope import PermissionScope
234
231
  from .price import Price
235
232
  from .processor_architecture import ProcessorArchitecture
236
233
  from .provider_node_summary import ProviderNodeSummary
@@ -245,6 +242,8 @@ from .requirement_allowance import RequirementAllowance
245
242
  from .requirements_allowance import RequirementsAllowance
246
243
  from .retry_properties import RetryProperties
247
244
  from .role import Role
245
+ from .role_scope import RoleScope
246
+ from .role_scope_validator import RoleScopeValidator
248
247
  from .role_search import RoleSearch
249
248
  from .role_summary import RoleSummary
250
249
  from .run_specification import RunSpecification
@@ -331,13 +330,6 @@ __all__ = [
331
330
  "AddNodeActionsRequest",
332
331
  "AddUserRequest",
333
332
  "AddUserResponse",
334
- "AlibabaComputeSource",
335
- "AlibabaCredential",
336
- "AlibabaInstance",
337
- "AlibabaInstanceChargeType",
338
- "AlibabaInstancesComputeSource",
339
- "AlibabaNamespaceStorageConfiguration",
340
- "AlibabaSpotStrategy",
341
333
  "Allowance",
342
334
  "AllowanceExhaustedNotification",
343
335
  "AllowanceLimitEnforcement",
@@ -458,6 +450,8 @@ __all__ = [
458
450
  "GoogleCloudCredential",
459
451
  "GrantApplicationAccessRequest",
460
452
  "GrantUserAccessRequest",
453
+ "GrantedPermissionScope",
454
+ "GrantedPermissions",
461
455
  "Group",
462
456
  "GroupRole",
463
457
  "GroupSearch",
@@ -506,6 +500,7 @@ __all__ = [
506
500
  "NamespaceObjectsResponse",
507
501
  "NamespacePolicy",
508
502
  "NamespacePolicySearch",
503
+ "NamespaceRef",
509
504
  "NamespaceSearch",
510
505
  "NamespaceStorageConfiguration",
511
506
  "NewPasswordRequest",
@@ -551,6 +546,7 @@ __all__ = [
551
546
  "OperatingSystemLicence",
552
547
  "Permission",
553
548
  "PermissionDetail",
549
+ "PermissionScope",
554
550
  "Price",
555
551
  "ProcessorArchitecture",
556
552
  "ProviderNodeSummary",
@@ -565,6 +561,8 @@ __all__ = [
565
561
  "RequirementsAllowance",
566
562
  "RetryProperties",
567
563
  "Role",
564
+ "RoleScope",
565
+ "RoleScopeValidator",
568
566
  "RoleSearch",
569
567
  "RoleSummary",
570
568
  "RunSpecification",
@@ -1,9 +1,9 @@
1
1
  from dataclasses import dataclass, field
2
2
  from datetime import datetime
3
- from typing import List, Optional
3
+ from typing import Optional
4
4
 
5
+ from .granted_permissions import GrantedPermissions
5
6
  from .identified import Identified
6
- from .permission import Permission
7
7
 
8
8
 
9
9
  @dataclass
@@ -14,4 +14,4 @@ class AccessDelegate(Identified):
14
14
  subject: Optional[str] = None
15
15
  description: Optional[str] = None
16
16
  createdTime: Optional[datetime] = None
17
- requiredPermissions: Optional[List[Permission]] = None
17
+ permissions: Optional[GrantedPermissions] = None
@@ -3,8 +3,6 @@ from enum import Enum
3
3
 
4
4
  class CloudProvider(Enum):
5
5
  """Enumerates Cloud Compute Providers."""
6
- ALIBABA = "ALIBABA", "Alibaba"
7
- """Alibaba Cloud"""
8
6
  AWS = "AWS", "AWS"
9
7
  """Amazon Web Services (AWS)"""
10
8
  GOOGLE = "GOOGLE", "Google Cloud"
@@ -23,3 +23,4 @@ class ComputeRequirementDynamicTemplate(ComputeRequirementTemplate):
23
23
  constraints: Optional[List[AttributeConstraint]] = None
24
24
  preferences: Optional[List[AttributePreference]] = None
25
25
  sourceTraits: Optional[ComputeSourceTraitsFilter] = None
26
+ sourceNamespaces: Optional[List[str]] = None
@@ -0,0 +1,10 @@
1
+ from dataclasses import dataclass
2
+ from typing import List, Optional
3
+
4
+ from .namespace_ref import NamespaceRef
5
+
6
+
7
+ @dataclass
8
+ class GrantedPermissionScope:
9
+ global_: bool = False
10
+ namespaces: Optional[List[NamespaceRef]] = None
@@ -0,0 +1,10 @@
1
+ from dataclasses import dataclass
2
+ from typing import Dict, Optional
3
+
4
+ from .granted_permission_scope import GrantedPermissionScope
5
+ from .permission import Permission
6
+
7
+
8
+ @dataclass
9
+ class GrantedPermissions:
10
+ permissions: Optional[Dict[Permission, GrantedPermissionScope]] = None
@@ -1,8 +1,10 @@
1
1
  from dataclasses import dataclass
2
2
 
3
+ from .granted_permission_scope import GrantedPermissionScope
3
4
  from .role_summary import RoleSummary
4
5
 
5
6
 
6
7
  @dataclass
7
8
  class GroupRole:
8
9
  role: RoleSummary
10
+ scope: GrantedPermissionScope
@@ -0,0 +1,7 @@
1
+ from dataclasses import dataclass
2
+
3
+
4
+ @dataclass
5
+ class NamespaceRef:
6
+ id: str
7
+ namespace: str
@@ -3,58 +3,60 @@ from __future__ import annotations
3
3
  from enum import Enum
4
4
  from typing import List
5
5
 
6
+ from .permission_scope import PermissionScope
7
+
6
8
 
7
9
  class Permission(Enum):
8
- ACCOUNT_APPLICATION_READ = "ACCOUNT_APPLICATION_READ", "Read Account Applications", None
9
- ACCOUNT_APPLICATION_WRITE = "ACCOUNT_APPLICATION_WRITE", "Write Account Applications", ACCOUNT_APPLICATION_READ
10
- ACCOUNT_AUTH_PROPERTIES_READ = "ACCOUNT_AUTH_PROPERTIES_READ", "Read Account Authentication Properties", None
11
- ACCOUNT_AUTH_PROPERTIES_WRITE = "ACCOUNT_AUTH_PROPERTIES_WRITE", "Write Account Authentication Properties", ACCOUNT_AUTH_PROPERTIES_READ
12
- ACCOUNT_GROUP_READ = "ACCOUNT_GROUP_READ", "Read Account Groups", None
13
- ACCOUNT_GROUP_WRITE = "ACCOUNT_GROUP_WRITE", "Write Account Groups", ACCOUNT_GROUP_READ
14
- ACCOUNT_POLICY_READ = "ACCOUNT_POLICY_READ", "Read Account Policy", None
15
- ACCOUNT_POLICY_WRITE = "ACCOUNT_POLICY_WRITE", "Write Account Policy", ACCOUNT_POLICY_READ
16
- ACCOUNT_ROLE_READ = "ACCOUNT_ROLE_READ", "Read Account Roles", None
17
- ACCOUNT_ROLE_WRITE = "ACCOUNT_ROLE_WRITE", "Write Account Roles", ACCOUNT_ROLE_READ
18
- ACCOUNT_USER_READ = "ACCOUNT_USER_READ", "Read Account Users", None
19
- ACCOUNT_USER_WRITE = "ACCOUNT_USER_WRITE", "Write Account Users", ACCOUNT_USER_READ
20
- COMPUTE_ALLOWANCE_READ = "COMPUTE_ALLOWANCE_READ", "Read Compute Allowances", None
21
- COMPUTE_ALLOWANCE_WRITE = "COMPUTE_ALLOWANCE_WRITE", "Write Compute Allowances", COMPUTE_ALLOWANCE_READ
22
- COMPUTE_READ = "COMPUTE_READ", "Read Compute", None
23
- COMPUTE_REQUIREMENT_TEMPLATE_WRITE = "COMPUTE_REQUIREMENT_TEMPLATE_WRITE", "Write Compute Requirement Templates", COMPUTE_READ
24
- COMPUTE_REQUIREMENT_WRITE = "COMPUTE_REQUIREMENT_WRITE", "Write Compute Requirements", COMPUTE_READ
25
- COMPUTE_SOURCE_TEMPLATE_WRITE = "COMPUTE_SOURCE_TEMPLATE_WRITE", "Write Compute Source Templates", COMPUTE_READ
26
- COMPUTE_USAGE_READ = "COMPUTE_USAGE_READ", "Read Compute Usage Data", None
27
- COMPUTE_USER_ATTRIBUTE_READ = "COMPUTE_USER_ATTRIBUTE_READ", "Read Compute User Attributes", COMPUTE_READ
28
- COMPUTE_USER_ATTRIBUTE_WRITE = "COMPUTE_USER_ATTRIBUTE_WRITE", "Write Compute User Attributes", COMPUTE_USER_ATTRIBUTE_READ
29
- IMAGE_READ = "IMAGE_READ", "Read Images", None
30
- IMAGE_WRITE = "IMAGE_WRITE", "Write Images", IMAGE_READ
31
- KEYRING_READ = "KEYRING_READ", "Read Keyrings", None
32
- KEYRING_WRITE = "KEYRING_WRITE", "Write Keyrings", KEYRING_READ
33
- KEYRING_ACCESS_WRITE = "KEYRING_ACCESS_WRITE", "Write Keyring Access", KEYRING_READ
34
- LOG_READ = "LOG_READ", "Read Logs", None
35
- METRICS_READ = "METRICS_READ", "Read Metrics", None
36
- METRICS_WRITE = "METRICS_WRITE", "Write Metrics", METRICS_READ
37
- NAMESPACE_READ = "NAMESPACE_READ", "Read Namespaces", None
38
- NAMESPACE_WRITE = "NAMESPACE_WRITE", "Write Namespaces", NAMESPACE_READ
39
- ACCOUNT_NAMESPACE_WRITE = "ACCOUNT_NAMESPACE_WRITE", "Write Account Namespaces", NAMESPACE_READ
40
- NAMESPACE_POLICY_READ = "NAMESPACE_POLICY_READ", "Read Namespace Policies", NAMESPACE_READ
41
- NAMESPACE_POLICY_WRITE = "NAMESPACE_POLICY_WRITE", "Write Namespace Policies", NAMESPACE_POLICY_READ
42
- OBJECT_STORAGE_CONFIGURATION_READ = "OBJECT_STORAGE_CONFIGURATION_READ", "Read Object Storage Configurations", None
43
- OBJECT_STORAGE_CONFIGURATION_WRITE = "OBJECT_STORAGE_CONFIGURATION_WRITE", "Write Object Storage Configurations", OBJECT_STORAGE_CONFIGURATION_READ
44
- OBJECT_READ = "OBJECT_READ", "Read Objects", OBJECT_STORAGE_CONFIGURATION_READ
45
- OBJECT_WRITE = "OBJECT_WRITE", "Write Objects", OBJECT_READ
46
- WORK_REQUIREMENT_READ = "WORK_REQUIREMENT_READ", "Read Work Requirements", None
47
- WORK_REQUIREMENT_WRITE = "WORK_REQUIREMENT_WRITE", "Write Work Requirements", WORK_REQUIREMENT_READ
48
- WORKER_POOL_READ = "WORKER_POOL_READ", "Read Worker Pools", None
49
- WORKER_POOL_WRITE = "WORKER_POOL_WRITE", "Write Worker Pools", WORKER_POOL_READ
50
- WORKER_POOL_WORKER_WRITE = "WORKER_POOL_WORKER_WRITE", "Write Worker Pool Workers", WORKER_POOL_READ
51
- WORKER_POOL_TOKEN_READ = "WORKER_POOL_TOKEN_READ", "Read Worker Pool Tokens", None
52
- WORKER_POOL_TOKEN_WRITE = "WORKER_POOL_TOKEN_WRITE", "Write Worker Pool Tokens", WORKER_POOL_READ
10
+ NAMESPACE_READ = "NAMESPACE_READ", "Read Namespaces", PermissionScope.NAMESPACED_OR_GLOBAL, None
11
+ COMPUTE_READ = "COMPUTE_READ", "Read Compute", PermissionScope.NAMESPACED_OR_GLOBAL, NAMESPACE_READ
12
+ COMPUTE_REQUIREMENT_TEMPLATE_WRITE = "COMPUTE_REQUIREMENT_TEMPLATE_WRITE", "Write Compute Requirement Templates", PermissionScope.NAMESPACED_OR_GLOBAL, COMPUTE_READ
13
+ COMPUTE_REQUIREMENT_WRITE = "COMPUTE_REQUIREMENT_WRITE", "Write Compute Requirements", PermissionScope.NAMESPACED_OR_GLOBAL, COMPUTE_READ
14
+ COMPUTE_SOURCE_TEMPLATE_WRITE = "COMPUTE_SOURCE_TEMPLATE_WRITE", "Write Compute Source Templates", PermissionScope.NAMESPACED_OR_GLOBAL, COMPUTE_READ
15
+ IMAGE_READ = "IMAGE_READ", "Read Images", PermissionScope.NAMESPACED_OR_GLOBAL, NAMESPACE_READ
16
+ IMAGE_WRITE = "IMAGE_WRITE", "Write Images", PermissionScope.NAMESPACED_OR_GLOBAL, IMAGE_READ
17
+ NAMESPACE_POLICY_READ = "NAMESPACE_POLICY_READ", "Read Namespace Policies", PermissionScope.NAMESPACED_OR_GLOBAL, NAMESPACE_READ
18
+ NAMESPACE_POLICY_WRITE = "NAMESPACE_POLICY_WRITE", "Write Namespace Policies", PermissionScope.NAMESPACED_OR_GLOBAL, NAMESPACE_POLICY_READ
19
+ WORK_REQUIREMENT_READ = "WORK_REQUIREMENT_READ", "Read Work Requirements", PermissionScope.NAMESPACED_OR_GLOBAL, NAMESPACE_READ
20
+ WORK_REQUIREMENT_WRITE = "WORK_REQUIREMENT_WRITE", "Write Work Requirements", PermissionScope.NAMESPACED_OR_GLOBAL, WORK_REQUIREMENT_READ
21
+ WORKER_POOL_READ = "WORKER_POOL_READ", "Read Worker Pools", PermissionScope.NAMESPACED_OR_GLOBAL, NAMESPACE_READ
22
+ WORKER_POOL_WRITE = "WORKER_POOL_WRITE", "Write Worker Pools", PermissionScope.NAMESPACED_OR_GLOBAL, WORKER_POOL_READ
23
+ WORKER_POOL_TOKEN_READ = "WORKER_POOL_TOKEN_READ", "Read Worker Pool Tokens", PermissionScope.NAMESPACED_OR_GLOBAL, WORKER_POOL_READ
24
+ WORKER_POOL_TOKEN_WRITE = "WORKER_POOL_TOKEN_WRITE", "Write Worker Pool Tokens", PermissionScope.NAMESPACED_OR_GLOBAL, WORKER_POOL_TOKEN_READ
25
+ WORKER_POOL_WORKER_WRITE = "WORKER_POOL_WORKER_WRITE", "Write Worker Pool Workers", PermissionScope.NAMESPACED_OR_GLOBAL, WORKER_POOL_READ
26
+ ACCOUNT_APPLICATION_READ = "ACCOUNT_APPLICATION_READ", "Read Account Applications", PermissionScope.GLOBAL_ONLY, None
27
+ ACCOUNT_APPLICATION_WRITE = "ACCOUNT_APPLICATION_WRITE", "Write Account Applications", PermissionScope.GLOBAL_ONLY, ACCOUNT_APPLICATION_READ
28
+ ACCOUNT_AUTH_PROPERTIES_READ = "ACCOUNT_AUTH_PROPERTIES_READ", "Read Account Authentication Properties", PermissionScope.GLOBAL_ONLY, None
29
+ ACCOUNT_AUTH_PROPERTIES_WRITE = "ACCOUNT_AUTH_PROPERTIES_WRITE", "Write Account Authentication Properties", PermissionScope.GLOBAL_ONLY, ACCOUNT_AUTH_PROPERTIES_READ
30
+ ACCOUNT_GROUP_READ = "ACCOUNT_GROUP_READ", "Read Account Groups", PermissionScope.GLOBAL_ONLY, None
31
+ ACCOUNT_GROUP_WRITE = "ACCOUNT_GROUP_WRITE", "Write Account Groups", PermissionScope.GLOBAL_ONLY, ACCOUNT_GROUP_READ
32
+ ACCOUNT_POLICY_READ = "ACCOUNT_POLICY_READ", "Read Account Policy", PermissionScope.GLOBAL_ONLY, None
33
+ ACCOUNT_POLICY_WRITE = "ACCOUNT_POLICY_WRITE", "Write Account Policy", PermissionScope.GLOBAL_ONLY, ACCOUNT_POLICY_READ
34
+ ACCOUNT_ROLE_READ = "ACCOUNT_ROLE_READ", "Read Account Roles", PermissionScope.GLOBAL_ONLY, None
35
+ ACCOUNT_ROLE_WRITE = "ACCOUNT_ROLE_WRITE", "Write Account Roles", PermissionScope.GLOBAL_ONLY, ACCOUNT_ROLE_READ
36
+ ACCOUNT_USER_READ = "ACCOUNT_USER_READ", "Read Account Users", PermissionScope.GLOBAL_ONLY, None
37
+ ACCOUNT_USER_WRITE = "ACCOUNT_USER_WRITE", "Write Account Users", PermissionScope.GLOBAL_ONLY, ACCOUNT_USER_READ
38
+ ACCOUNT_NAMESPACE_WRITE = "ACCOUNT_NAMESPACE_WRITE", "Write Account Namespaces", PermissionScope.GLOBAL_ONLY, NAMESPACE_READ
39
+ COMPUTE_ALLOWANCE_READ = "COMPUTE_ALLOWANCE_READ", "Read Compute Allowances", PermissionScope.GLOBAL_ONLY, None
40
+ COMPUTE_ALLOWANCE_WRITE = "COMPUTE_ALLOWANCE_WRITE", "Write Compute Allowances", PermissionScope.GLOBAL_ONLY, COMPUTE_ALLOWANCE_READ
41
+ COMPUTE_USER_ATTRIBUTE_READ = "COMPUTE_USER_ATTRIBUTE_READ", "Read Compute User Attributes", PermissionScope.GLOBAL_ONLY, None
42
+ COMPUTE_USER_ATTRIBUTE_WRITE = "COMPUTE_USER_ATTRIBUTE_WRITE", "Write Compute User Attributes", PermissionScope.GLOBAL_ONLY, COMPUTE_USER_ATTRIBUTE_READ
43
+ KEYRING_READ = "KEYRING_READ", "Read Keyrings", PermissionScope.GLOBAL_ONLY, None
44
+ KEYRING_WRITE = "KEYRING_WRITE", "Write Keyrings", PermissionScope.GLOBAL_ONLY, KEYRING_READ
45
+ KEYRING_ACCESS_WRITE = "KEYRING_ACCESS_WRITE", "Write Keyring Access", PermissionScope.GLOBAL_ONLY, KEYRING_READ
46
+ OBJECT_STORAGE_CONFIGURATION_READ = "OBJECT_STORAGE_CONFIGURATION_READ", "Read Object Storage Configurations", PermissionScope.GLOBAL_ONLY, None
47
+ OBJECT_STORAGE_CONFIGURATION_WRITE = "OBJECT_STORAGE_CONFIGURATION_WRITE", "Write Object Storage Configurations", PermissionScope.GLOBAL_ONLY, OBJECT_STORAGE_CONFIGURATION_READ
48
+ OBJECT_READ = "OBJECT_READ", "Read Objects", PermissionScope.GLOBAL_ONLY, OBJECT_STORAGE_CONFIGURATION_READ
49
+ OBJECT_WRITE = "OBJECT_WRITE", "Write Objects", PermissionScope.GLOBAL_ONLY, OBJECT_READ
50
+ METRICS_READ = "METRICS_READ", "Read Metrics", PermissionScope.GLOBAL_ONLY, None
51
+ METRICS_WRITE = "METRICS_WRITE", "Write Metrics", PermissionScope.GLOBAL_ONLY, METRICS_READ
52
+ LOG_READ = "LOG_READ", "Read Logs", PermissionScope.GLOBAL_ONLY, None
53
+ COMPUTE_USAGE_READ = "COMPUTE_USAGE_READ", "Read Compute Usage Data", PermissionScope.GLOBAL_ONLY, None
53
54
 
54
- def __new__(cls, value, title: str, includes: List[Permission]):
55
+ def __new__(cls, value, title: str, scope: PermissionScope, includes: List[Permission]):
55
56
  obj = object.__new__(cls)
56
57
  obj._value_ = value
57
58
  obj.title = title
59
+ obj.scope = scope
58
60
  obj.includes = includes
59
61
  return obj
60
62
 
@@ -1,9 +1,12 @@
1
1
  from dataclasses import dataclass
2
2
  from typing import Optional, Set
3
3
 
4
+ from .permission_scope import PermissionScope
5
+
4
6
 
5
7
  @dataclass
6
8
  class PermissionDetail:
7
9
  name: Optional[str] = None
8
10
  title: Optional[str] = None
9
11
  includes: Optional[Set[str]] = None
12
+ scope: Optional[PermissionScope] = None
@@ -0,0 +1,9 @@
1
+ from enum import Enum
2
+
3
+
4
+ class PermissionScope(Enum):
5
+ GLOBAL_ONLY = "GLOBAL_ONLY"
6
+ NAMESPACED_OR_GLOBAL = "NAMESPACED_OR_GLOBAL"
7
+
8
+ def __str__(self) -> str:
9
+ return self.name
@@ -0,0 +1,8 @@
1
+ from dataclasses import dataclass
2
+ from typing import Optional, Set
3
+
4
+
5
+ @dataclass
6
+ class RoleScope:
7
+ global_: bool = False
8
+ namespaces: Optional[Set[str]] = None
@@ -0,0 +1,6 @@
1
+ from dataclasses import dataclass
2
+
3
+
4
+ @dataclass
5
+ class RoleScopeValidator:
6
+ pass
@@ -14,4 +14,6 @@ class UserPortalContext:
14
14
  email: Optional[str] = None
15
15
  eulaAccepted: bool = False
16
16
  passwordSet: bool = False
17
+ allNamespacesReadable: bool = False
18
+ readableNamespaces: Optional[List[str]] = None
17
19
  features: Optional[List[Feature]] = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yellowdog-sdk
3
- Version: 9.6.0
3
+ Version: 11.0.0
4
4
  Summary: SDK for the YellowDog Platform
5
5
  Author-email: YellowDog Limited <support@yellowdog.co>
6
6
  Project-URL: Homepage, https://yellowdog.co
@@ -1,12 +1,12 @@
1
1
  __init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  yellowdog_client/__init__.py,sha256=xHGTw5UbjkeEl_hC8_gJCacfji6462qJWD1nvJdFssE,13162
3
- yellowdog_client/_version.py,sha256=Q1W7qBxYiF57UPtabTKa4otneRr6siOb7KLAwx8Gwqc,34
3
+ yellowdog_client/_version.py,sha256=woGvMtZ-ofaD-N6s1ryptCE1U1EIkVb1-beyfatJhrk,35
4
4
  yellowdog_client/client_collection.py,sha256=VSEzjf6iR1qCQ0YGLyDq_Kgvw8r832QDwTp6-MLB4Vs,388
5
5
  yellowdog_client/platform_client.py,sha256=yCzKsOQKllnfzwP9bG-JGtvOdvY7EaEQzFsgX3ERzVY,7476
6
6
  yellowdog_client/account/__init__.py,sha256=DiLL3uSMyVlAKWsncX0k5Ioc2hw87HQoEkSYO0ro0fg,456
7
- yellowdog_client/account/account_client.py,sha256=TRuWPcY4pyk78WXiLU_GOLTSHDhQcpppAGmzFlIPEXw,3398
8
- yellowdog_client/account/account_client_impl.py,sha256=DUtybxZJpWkS8iyzidJ-veYb9V0iNmEKzB47TcrzzIc,6021
9
- yellowdog_client/account/account_service_proxy.py,sha256=fO1XImrdEhY_uxSQWR8Y7T7z7TQkyfne-RESWy3CuC0,5396
7
+ yellowdog_client/account/account_client.py,sha256=VhF22v5kRZ1OjWc9bwG8Ra4bWxMgKxOD6Yf3eQVEv70,3427
8
+ yellowdog_client/account/account_client_impl.py,sha256=AK49lLrB0uJetJdyQCP3mfPRhwTdRMc_ZlB6Fb_5Bcc,6057
9
+ yellowdog_client/account/account_service_proxy.py,sha256=BfJqnKKBJNCjt__LPSN0ZvPNnOViTi0gvzRzulIwwdc,5437
10
10
  yellowdog_client/account/keyring_client.py,sha256=IFogh3LNNtL0cSbvbaEuhJ41UhtJbItyxm0AEnAaFMk,1125
11
11
  yellowdog_client/account/keyring_client_impl.py,sha256=s_IltFtozR7lYdR9XNEZVj885pgJ0DoInv0B24GtblI,1665
12
12
  yellowdog_client/account/keyring_service_proxy.py,sha256=8oK6lK3FxHOIbq--qcKSAd5bqkPGMN023CrX_Q8RKeI,1220
@@ -28,7 +28,7 @@ yellowdog_client/common/credentials/__init__.py,sha256=_KvuZpIO_TSSrJd6v1UrCtXOz
28
28
  yellowdog_client/common/credentials/api_key_authentication_headers_provider.py,sha256=Spt8kYEW8_qy7RMLfIqjArntBcYhhZX9cxcjJbdcKfw,843
29
29
  yellowdog_client/common/decorators/__init__.py,sha256=_Agup5QZbT3nnwNKBD38MaxRPXU58kaHrrFhrWOUGXw,76
30
30
  yellowdog_client/common/decorators/dispatcher.py,sha256=NMGWHLAbm4gCjWoiQ6M6Nj78O3PlSKXpGUylmPhtf0s,244
31
- yellowdog_client/common/json/__init__.py,sha256=xAc_LukSrQ7kM73iQWa8q6HuU3KbFy8uR9otHvyaTto,6345
31
+ yellowdog_client/common/json/__init__.py,sha256=Ki_aSlal5RRfCLP3i-05n9y-CQVhlg5XY2zyKUD6_H8,6601
32
32
  yellowdog_client/common/server_sent_events/__init__.py,sha256=4N8p9TNiCV1qyHqKML84BuHugIOmRYldzQPB4mHkO7o,507
33
33
  yellowdog_client/common/server_sent_events/delegated_subscription_event_listener.py,sha256=6KKNE89fSG4cvpFza_X3416AJWh6eJj_lLmWy2GbALQ,1278
34
34
  yellowdog_client/common/server_sent_events/subscription.py,sha256=eUfjQr88sY7TvLwbDyhBm3C9KOu9KmkCixhmt69OSyo,2980
@@ -53,8 +53,8 @@ yellowdog_client/images/images_service_proxy.py,sha256=eyP4u6FoIH1WJvNM_m8tacTCs
53
53
  yellowdog_client/images/page.py,sha256=UIvlxvzdcfnKvbcq2Cn6IB7ZtQMc3dzcBTUfElvVPwQ,391
54
54
  yellowdog_client/images/pageable.py,sha256=msD8uGGJ2F5jEqTNDYaFrh6z6drlxOXZ1AmB0T3edM0,296
55
55
  yellowdog_client/images/sort.py,sha256=YS05DlIRg1Cm3QLBi6KFjFdB3g-b3WrqFFitlMJUEMM,167
56
- yellowdog_client/model/__init__.py,sha256=fyaODrUKYeKsX0-ZBnq1-gBNMgRFjqzYmrHjl0QJ8Oc,26403
57
- yellowdog_client/model/access_delegate.py,sha256=gtJ8xfmHgnCv4WFeiqb7EMjTH9S-4hWA_G0Oco2ZpPc,570
56
+ yellowdog_client/model/__init__.py,sha256=ZrVH4oipGF9oqkoqgoZ3YHxKDj9Tq3tmR_BteiNoAIs,26172
57
+ yellowdog_client/model/access_delegate.py,sha256=jIW5P9jWG0LUirmci-rnHW_Lytv7dfKRJjAKwaLwvrU,575
58
58
  yellowdog_client/model/account.py,sha256=r_-7J-JjjMcQPZzaQ4_o9y6XY7-GMPRLWt9mGOucYU0,394
59
59
  yellowdog_client/model/account_allowance.py,sha256=c-MkSSRLB5Y5TMDZl5h5fipj4vzLLlO_AQXPeRJ0AYw,1021
60
60
  yellowdog_client/model/account_authentication_properties.py,sha256=PAfH0b_u16tDabnmt9QqDratjzQCLdAcmuSM6WD0CxI,421
@@ -67,13 +67,6 @@ yellowdog_client/model/add_group_request.py,sha256=9HV_ygW9GNqY25MZcbJJj59iWcV8v
67
67
  yellowdog_client/model/add_node_actions_request.py,sha256=2jIZay71NiCnm7uyZxHDigdhb-wGulifD1qRKux5JOQ,247
68
68
  yellowdog_client/model/add_user_request.py,sha256=xTaZpQ4RhX0iJWXCHPRPnDAXwnOB44Ii8A8rOAf12iY,116
69
69
  yellowdog_client/model/add_user_response.py,sha256=_Bh_ria9w24vasFVbOxUEgbsd09u4tGb4mhON2qx6mo,154
70
- yellowdog_client/model/alibaba_compute_source.py,sha256=rfu1XfwbTuJh-cjDTRDxwbpjuHhfH9ZUGQfmqYZahSk,348
71
- yellowdog_client/model/alibaba_credential.py,sha256=I9tE0VPU03I5UDX5lGWDvMWBETNdY1pQg5DYBUTntyY,553
72
- yellowdog_client/model/alibaba_instance.py,sha256=_hX8nbMetWeq4u9QuIliv8OlaINbZ7agQpzuiObYwso,1773
73
- yellowdog_client/model/alibaba_instance_charge_type.py,sha256=KwKCNj4IXn8cQGTrhbGjyiHualS6kJpDvw0ObLgZkW0,342
74
- yellowdog_client/model/alibaba_instances_compute_source.py,sha256=3mQG6wFitEtLMckzRQ0uBKDlBMdqqHAzumtqbWomWRs,3584
75
- yellowdog_client/model/alibaba_namespace_storage_configuration.py,sha256=fSps3B7IUcm0G4C_fc7dR-Uy0xbJhRux1EmD7QtzG6k,392
76
- yellowdog_client/model/alibaba_spot_strategy.py,sha256=_zZx01-CWKlb-enNnTE7cjf1yL8OtwuGde2B53qyQks,426
77
70
  yellowdog_client/model/allowance.py,sha256=9BMKrxuT4UKTgvLhYnlyiXI2wkfcO9GYElbKLuYubcU,167
78
71
  yellowdog_client/model/allowance_exhausted_notification.py,sha256=l38uP4l0CmC6v1qsPksCA-go-00Kt1Ec1t_RrhD1fKo,255
79
72
  yellowdog_client/model/allowance_limit_enforcement.py,sha256=uvU86l0iY3-lcb3i0YHN3EVF6dxbWOM7ATYGgEPh0XE,436
@@ -128,11 +121,11 @@ yellowdog_client/model/best_compute_source_report_source_attribute.py,sha256=Yk7
128
121
  yellowdog_client/model/best_compute_source_report_string_constraint.py,sha256=Yfcm4JasSoi3z2Dx56U8QgunLhNq5gibJEgVkw3WoQ0,477
129
122
  yellowdog_client/model/change_password_request.py,sha256=0_pKunaeN94NHEW5zilHntfY7_XX1ken50_UMmQCr14,118
130
123
  yellowdog_client/model/check_credentials_result.py,sha256=x_ornFEoN1SIaiyJoX2xL01uFim6it760kklsRqYRPA,554
131
- yellowdog_client/model/cloud_provider.py,sha256=OXQJco__ZJk-a9lr13BB54AmiTdg64ot8vArS_dG_rY,748
124
+ yellowdog_client/model/cloud_provider.py,sha256=KwzhrA2XpI5ua4eSFLxHeLdcNMRXajT2Ee8tzFC1Dmk,689
132
125
  yellowdog_client/model/compute_namespace_filter.py,sha256=ZDq9TrtAtjoW9io8eL2Oe9e6EaQ1SgM4hsHfYu_vDXw,256
133
126
  yellowdog_client/model/compute_provision_strategy.py,sha256=AAhCn3zehsvJH9SRr5yJOLtsl_hkhgiD0PRS7MDeQJM,388
134
127
  yellowdog_client/model/compute_requirement.py,sha256=j3KLMJF6Fi6RoNHvKyV_wHUAjgJAnYWFk2M6ijqMPFI,2937
135
- yellowdog_client/model/compute_requirement_dynamic_template.py,sha256=qFJPDREt5H39i74Wi4piSKVEEbDXwQI17bvNBY1Y2TA,1073
128
+ yellowdog_client/model/compute_requirement_dynamic_template.py,sha256=tu7t-etOkwZehBGJRVA3jSnqY5ADp0hOP_hCkCQ3-HU,1122
136
129
  yellowdog_client/model/compute_requirement_dynamic_template_test_result.py,sha256=8n0F2rY5_KwBy_09T3txyRNQDpXuk1GU6Qua9fnIy5c,623
137
130
  yellowdog_client/model/compute_requirement_search.py,sha256=0Eb9I_9N141FscOT9kUQSwj4X1wplmZsdAOGorUU9iA,553
138
131
  yellowdog_client/model/compute_requirement_static_template.py,sha256=mBlu2CxRte4kDn55_OKd4nIbc1F9XbV_4O3Xalkjg3Y,715
@@ -194,8 +187,10 @@ yellowdog_client/model/gcs_namespace_storage_configuration.py,sha256=EqOV-0coFLg
194
187
  yellowdog_client/model/google_cloud_credential.py,sha256=07zKLvBRwYQOUqIQXRaTDJhOJ6ktvGw8dCF0LpXvtMI,408
195
188
  yellowdog_client/model/grant_application_access_request.py,sha256=d4FFwXw1rPSKBuoHhjrEcUV1rHOi35ZuRCV9HQ3LqFg,143
196
189
  yellowdog_client/model/grant_user_access_request.py,sha256=p-z4aMPVuAcJMs-rkK25ZkgcZ4lxyklhazfJ2v2o7bI,99
190
+ yellowdog_client/model/granted_permission_scope.py,sha256=ISUvN4_Pq6Wd_s5FXvFqKWWhpPRrPlvWVaTQgfn4oOE,230
191
+ yellowdog_client/model/granted_permissions.py,sha256=b-hS_i_Y67zFjamYv4mxqJN1X6sM6F8uYrOBmWF8aWs,279
197
192
  yellowdog_client/model/group.py,sha256=3x1XSB7jYo5mgJvTICAkJVcRSd3GDbHRWfzQkRIj7N0,364
198
- yellowdog_client/model/group_role.py,sha256=KL7e6iasV-YIlr95zIkZWswGoRbOKukYAoKd4QGxyLs,125
193
+ yellowdog_client/model/group_role.py,sha256=x3uqdr7hlrRqr9b7w9Di2-YRoeuLMyzgu1rUg6JzVog,220
199
194
  yellowdog_client/model/group_search.py,sha256=KHr1_5AQQC39LZz503r_mf5i0BKB652hUnM5xbtlV3I,254
200
195
  yellowdog_client/model/group_summary.py,sha256=QQgyJ6fqfNnBsFJEjAoGajQxZ1fKIcP8KmM1VR2CcbA,270
201
196
  yellowdog_client/model/identified.py,sha256=bnH2hghJLlDBOJKKSozqmc5QRzQGDwFL2dlmkdL9zJA,182
@@ -242,6 +237,7 @@ yellowdog_client/model/namespace_autoscaling_capacity_response.py,sha256=p1Z0OUY
242
237
  yellowdog_client/model/namespace_objects_response.py,sha256=icPFUDS5AaTGd0eJK1uRKt4cBHNE-TDFQVRIuH_ykh4,189
243
238
  yellowdog_client/model/namespace_policy.py,sha256=90j_9G5xjMRLzdfjq3BeDOyxOiCECrRRvVoRkx2CEAU,163
244
239
  yellowdog_client/model/namespace_policy_search.py,sha256=6RFeLBTccVMKzINijN3tuXEYulHPYkdb2-JSXRZOE2A,318
240
+ yellowdog_client/model/namespace_ref.py,sha256=4JDCK7DHNyx1b7b2kgu-QU6lUxvPQhEkaiPQz_qbSsI,98
245
241
  yellowdog_client/model/namespace_search.py,sha256=aMv44U_Op74dItLv5q1YwMqQF_IKd5S7YWFogAbSWGY,349
246
242
  yellowdog_client/model/namespace_storage_configuration.py,sha256=6JSDmRbrsWhJqOeqz3skdR8t2hlP40kvPoW0CV4hYbc,139
247
243
  yellowdog_client/model/new_password_request.py,sha256=7zJkK_3GJde6QQidaxFaj49DKIQg52FTJrbmgdfTxrE,91
@@ -285,8 +281,9 @@ yellowdog_client/model/oci_instances_compute_source.py,sha256=p94ErZj4SKyWjs19Ne
285
281
  yellowdog_client/model/oci_namespace_storage_configuration.py,sha256=YsbDhzC_FT1rQMeHEuYFpfZJSuiQKOwdGs72ksdF69g,408
286
282
  yellowdog_client/model/okta_account_authentication_properties.py,sha256=geKiNqQfYaW__U10FjNeNS83Ro54ZdBxo15qj0yWqyw,328
287
283
  yellowdog_client/model/operating_system_licence.py,sha256=nYL3U4d8pE1qtQlBrBPxJx7fUq6FWMAj--9lbya-Srs,347
288
- yellowdog_client/model/permission.py,sha256=BjN8P63RFq4iG6TeYJFLPeB4_Wg1-BFBhei8d-Pd_FY,4400
289
- yellowdog_client/model/permission_detail.py,sha256=ukTbqQgmU782PZJ7i0H2KAojgmRG4flzwR2ywZICOOQ,207
284
+ yellowdog_client/model/permission.py,sha256=IctnnmKiIzd846ZQNl2UTVkhRcfDPHjhR0pcPOehYkI,5891
285
+ yellowdog_client/model/permission_detail.py,sha256=5X8bDfPJCKler68wyRAIcLkkAvhu_899CV7Xa3DfJ50,298
286
+ yellowdog_client/model/permission_scope.py,sha256=PoRpCEQ233Xqgyf55JJNXtghQeefVhX47uPpGG8GmMg,191
290
287
  yellowdog_client/model/price.py,sha256=kPZw5VGPg5vKRXL5brX8eZrH_GePvlBhdfMsm5fF6Dc,194
291
288
  yellowdog_client/model/processor_architecture.py,sha256=hkbyplz2R5SeVtINaB3CcU86yR64elm5qi9W48LHVms,157
292
289
  yellowdog_client/model/provider_node_summary.py,sha256=maYsTKxTR7jNjZDr_BNs23rV91k_WL44Q3BVXGdKFSk,307
@@ -301,6 +298,8 @@ yellowdog_client/model/requirement_allowance.py,sha256=ovCvZlKFeosV3kNxtJyGD4W7N
301
298
  yellowdog_client/model/requirements_allowance.py,sha256=qp6MVWChl_RzrzslVrf2bOfUoSNsA3I4jlM0DLnlnJk,1197
302
299
  yellowdog_client/model/retry_properties.py,sha256=cccJRb-r1PkUixb-V26GIGf1iOXBnnhl1HGLy_Yr-Q8,559
303
300
  yellowdog_client/model/role.py,sha256=EK87THjFL4wYnPlFcV2ind7motMefsDm9aAL9B2PrMI,325
301
+ yellowdog_client/model/role_scope.py,sha256=381xdwSarxxOKR8SkQzTKL6DZk8fOa5whVk3VSon_TA,165
302
+ yellowdog_client/model/role_scope_validator.py,sha256=2u66BxCWJNX3k4DEUm5ixOtoOFupT2d7qsxi9U5k_ow,82
304
303
  yellowdog_client/model/role_search.py,sha256=SL8rngS-BWoqaZ4WtwiScS12Y7JOpfG-itbpPk7qxBc,332
305
304
  yellowdog_client/model/role_summary.py,sha256=fkyZ_pLapNbQM67bSgX60kt20WN7hYCWA0j-1zwzIPc,202
306
305
  yellowdog_client/model/run_specification.py,sha256=btk53yhHWKvTXxhbzTDS0NjXBf25fqjxPwkc303I15M,2711
@@ -352,7 +351,7 @@ yellowdog_client/model/update_user_request.py,sha256=RpJRi6efqrX1ZE6pRLRC5J6fcNy
352
351
  yellowdog_client/model/usage_type.py,sha256=vZKtclWVaGLeiHS-CYeDRAIj4hAt_gM-JyXzk8C484w,340
353
352
  yellowdog_client/model/user.py,sha256=sS16xGlDC3BsFeCfWRhYUv9Wp3Do8unZMT_VLr1MEd8,253
354
353
  yellowdog_client/model/user_login_request.py,sha256=dkDB05LDmX17eglFQu1LMD6LodI9t21OkUw8L_v-K-U,128
355
- yellowdog_client/model/user_portal_context.py,sha256=ad0GuMXA9hKobFXf4in91xcXkiPUtgq2d0RQJytCPIc,443
354
+ yellowdog_client/model/user_portal_context.py,sha256=VDkkSm1FpE6_IT0tDvYUy1RYYayg0zsp4B_czOoQ3bw,534
356
355
  yellowdog_client/model/user_search.py,sha256=XHEx0_yIqZnvi5A0zgvAnEbZ3oBASjqcWgM9GroVZn0,285
357
356
  yellowdog_client/model/waterfall_provision_strategy.py,sha256=1mAIACbWcVrsy3Bjulgh3TaPx83WoqRM443-jQ9FgaQ,727
358
357
  yellowdog_client/model/work_requirement.py,sha256=4-kqhjS33HEjf62Z_GjcgVxHZ4Xa5c54TR1DIDgYPuY,1714
@@ -466,8 +465,8 @@ yellowdog_client/usage/__init__.py,sha256=XQwRJqTdxKZa1QUTsxBEL0TqQJeQHGyPklFeqc
466
465
  yellowdog_client/usage/allowances_client.py,sha256=H6n63jXjT4OwuWJgFUXSjSmvGTZz9uspy3kj3upinaA,1337
467
466
  yellowdog_client/usage/allowances_client_impl.py,sha256=nQPnSzJKhL3WvyCn5fmiDkwE84xZryH9YvV5Z1GjU4M,2061
468
467
  yellowdog_client/usage/allowances_service_proxy.py,sha256=uO6LWnpjIzUcZTGdOxPXn7SyYX7NMRqO5KUiHUGr490,1320
469
- yellowdog_sdk-9.6.0.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
470
- yellowdog_sdk-9.6.0.dist-info/METADATA,sha256=YEy9ZAP42lEqbH8Tbg5PQpUawE1UXzi-AnE7o3V7FMY,3238
471
- yellowdog_sdk-9.6.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
472
- yellowdog_sdk-9.6.0.dist-info/top_level.txt,sha256=6PH16DcoqpYHhQ5A0UJOjf0tg-1rTrNC9C2CLqCMuFo,26
473
- yellowdog_sdk-9.6.0.dist-info/RECORD,,
468
+ yellowdog_sdk-11.0.0.dist-info/licenses/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
469
+ yellowdog_sdk-11.0.0.dist-info/METADATA,sha256=eDQ38MQIrcLFsPdkPV5K9Be6zADXT728yEJdD7dIe2c,3239
470
+ yellowdog_sdk-11.0.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
471
+ yellowdog_sdk-11.0.0.dist-info/top_level.txt,sha256=6PH16DcoqpYHhQ5A0UJOjf0tg-1rTrNC9C2CLqCMuFo,26
472
+ yellowdog_sdk-11.0.0.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- from dataclasses import dataclass, field
2
-
3
- from .compute_source import ComputeSource
4
-
5
-
6
- @dataclass
7
- class AlibabaComputeSource(ComputeSource):
8
- """Derives from ComputeSource to provide the interface for all Alibaba Cloud compute source model objects."""
9
- type: str = field(default="co.yellowdog.platform.model.AlibabaComputeSource", init=False)
@@ -1,16 +0,0 @@
1
- from dataclasses import dataclass, field
2
- from typing import Optional
3
-
4
- from .credential import Credential
5
-
6
-
7
- @dataclass
8
- class AlibabaCredential(Credential):
9
- """Holds the Access Key ID and Secret Access Key which form a set of credentials for Alibaba Cloud."""
10
- type: str = field(default="co.yellowdog.platform.account.credentials.AlibabaCredential", init=False)
11
- name: str
12
- accessKeyId: str
13
- """The Alibaba Cloud Access Key ID"""
14
- secretAccessKey: str
15
- """The Alibaba Cloud Secret Access Key"""
16
- description: Optional[str] = None
@@ -1,40 +0,0 @@
1
- from dataclasses import dataclass, field
2
- from datetime import datetime
3
- from typing import Optional
4
-
5
- from .cloud_provider import CloudProvider
6
- from .instance import Instance
7
- from .instance_id import InstanceId
8
- from .instance_status import InstanceStatus
9
-
10
-
11
- @dataclass
12
- class AlibabaInstance(Instance):
13
- """Extends Instance to add fields specific to the Alibaba Cloud compute sources."""
14
- type: str = field(default="co.yellowdog.platform.model.AlibabaInstance", init=False)
15
- id: Optional[InstanceId] = None
16
- """The unique identifier for this instance formed from the YellowDog Compute Source ID and the provider supplied instance ID"""
17
- createdTime: Optional[datetime] = None
18
- """The date and time when this instance was first created."""
19
- provider: Optional[CloudProvider] = None
20
- """The cloud provider that supplies this instance."""
21
- instanceType: Optional[str] = None
22
- """The machine type of this instance."""
23
- region: Optional[str] = None
24
- """The region where this instance is provisioned."""
25
- subregion: Optional[str] = None
26
- """The subregion where this instance is provisioned."""
27
- imageId: Optional[str] = None
28
- """The machine image ID used for this instance."""
29
- hostname: Optional[str] = None
30
- """The hostname of this instance."""
31
- privateIpAddress: Optional[str] = None
32
- """The private IP address of this instance."""
33
- publicIpAddress: Optional[str] = None
34
- """The public IP address of this instance."""
35
- spot: bool = False
36
- """Indicates if this instance was provisioned via spot pricing vs on-demand."""
37
- status: Optional[InstanceStatus] = None
38
- """The status of this instance."""
39
- statusChangedTime: Optional[datetime] = None
40
- """The date and time when the status last changed"""
@@ -1,15 +0,0 @@
1
- from enum import Enum
2
-
3
-
4
- class AlibabaInstanceChargeType(Enum):
5
- PRE_PAID = "PRE_PAID", "PrePaid"
6
- POST_PAID = "POST_PAID", "PostPaid"
7
-
8
- def __new__(cls, value, code: str):
9
- obj = object.__new__(cls)
10
- obj._value_ = value
11
- obj.code = code
12
- return obj
13
-
14
- def __str__(self) -> str:
15
- return self.name
@@ -1,64 +0,0 @@
1
- from dataclasses import dataclass, field
2
- from typing import Dict, Optional, Set
3
-
4
- from .alibaba_compute_source import AlibabaComputeSource
5
- from .alibaba_instance_charge_type import AlibabaInstanceChargeType
6
- from .alibaba_spot_strategy import AlibabaSpotStrategy
7
- from .compute_source_exhaustion import ComputeSourceExhaustion
8
- from .compute_source_status import ComputeSourceStatus
9
- from .compute_source_traits import ComputeSourceTraits
10
- from .instance_pricing import InstancePricing
11
- from .instance_summary import InstanceSummary
12
-
13
-
14
- @dataclass
15
- class AlibabaInstancesComputeSource(AlibabaComputeSource):
16
- """Defines a source of compute composed of Alibaba Cloud ECS instances."""
17
- type: str = field(default="co.yellowdog.platform.model.AlibabaInstancesComputeSource", init=False)
18
- traits: Optional[ComputeSourceTraits] = field(default=None, init=False)
19
- instancePricing: Optional[InstancePricing] = field(default=None, init=False)
20
- credentials: Optional[Set[str]] = field(default=None, init=False)
21
- supportingResourceCreated: Optional[bool] = field(default=None, init=False)
22
- id: Optional[str] = field(default=None, init=False)
23
- createdFromId: Optional[str] = field(default=None, init=False)
24
- instanceSummary: Optional[InstanceSummary] = field(default=None, init=False)
25
- status: Optional[ComputeSourceStatus] = field(default=None, init=False)
26
- statusMessage: Optional[str] = field(default=None, init=False)
27
- exhaustion: Optional[ComputeSourceExhaustion] = field(default=None, init=False)
28
- name: str
29
- """The name of the compute source. This must be unique within a compute requirement."""
30
- credential: str
31
- region: str
32
- """The Alibaba Cloud region where instances will be provisioned."""
33
- vSwitchId: str
34
- """The ID of the virtual switch to use for the provisioned instances."""
35
- securityGroupId: str
36
- """The ID of the Alibaba Cloud Security Group for the provisioned instances."""
37
- instanceType: str
38
- """The Alibaba Cloud instance type for the provisioned instances."""
39
- imageId: str
40
- """The region-specific Alibaba Cloud ID for the image to use for the provisioned instances."""
41
- availabilityZone: Optional[str] = None
42
- """The Alibaba Cloud availability zone within the region where instances will be provisioned."""
43
- userData: Optional[str] = None
44
- instanceTags: Optional[Dict[str, str]] = None
45
- ramRoleName: Optional[str] = None
46
- """The name of the RAM Role to use for the provisioned instances."""
47
- keyName: Optional[str] = None
48
- """The name of the Alibaba Cloud key pair to use when logging into any instances provisioned from this source."""
49
- instanceChargeType: Optional[AlibabaInstanceChargeType] = None
50
- """The Alibaba Cloud charge type to use for the provisioned instances."""
51
- assignPublicIp: bool = False
52
- """Indicates if provisioned instances should be assigned public IP addresses."""
53
- spotStrategy: Optional[AlibabaSpotStrategy] = None
54
- """The Alibaba Cloud spot strategy to use when provisioning instances."""
55
- spotPriceLimit: Optional[float] = None
56
- """The Alibaba Cloud spot price limit to use with SPOT_WITH_PRICE_LIMIT spot strategy."""
57
- limit: int = 0
58
- specifyMinimum: bool = False
59
- """
60
- Indicates if YellowDog Compute should specify the minimum when requesting instances from Alibaba Cloud.
61
- If true, then no instances are provisioned unless all requested instances are available;
62
- otherwise, if false, YellowDog Compute will provision as many instances as possible up to the number requested from this compute source.
63
- """
64
-
@@ -1,12 +0,0 @@
1
- from dataclasses import dataclass, field
2
-
3
- from .namespace_storage_configuration import NamespaceStorageConfiguration
4
-
5
-
6
- @dataclass
7
- class AlibabaNamespaceStorageConfiguration(NamespaceStorageConfiguration):
8
- type: str = field(default="co.yellowdog.platform.model.AlibabaNamespaceStorageConfiguration", init=False)
9
- namespace: str
10
- endpoint: str
11
- bucketName: str
12
- credential: str
@@ -1,16 +0,0 @@
1
- from enum import Enum
2
-
3
-
4
- class AlibabaSpotStrategy(Enum):
5
- NO_SPOT = "NO_SPOT", "NoSpot"
6
- SPOT_WITH_PRICE_LIMIT = "SPOT_WITH_PRICE_LIMIT", "SpotWithPriceLimit"
7
- SPOT_AS_PRICE_GO = "SPOT_AS_PRICE_GO", "SpotAsPriceGo"
8
-
9
- def __new__(cls, value, code: str):
10
- obj = object.__new__(cls)
11
- obj._value_ = value
12
- obj.code = code
13
- return obj
14
-
15
- def __str__(self) -> str:
16
- return self.name