Skip to content

Commit 6d5900d

Browse files
authored
feat(iam): add GetOrganization and SetOrganizationAlias (#1025)
1 parent f4239d9 commit 6d5900d

File tree

8 files changed

+308
-0
lines changed

8 files changed

+308
-0
lines changed

scaleway-async/scaleway_async/iam/v1alpha1/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
from .types import GetGroupRequest
6262
from .types import GetJWTRequest
6363
from .types import GetLogRequest
64+
from .types import GetOrganizationRequest
6465
from .types import GetOrganizationSecuritySettingsRequest
6566
from .types import GetPolicyRequest
6667
from .types import GetQuotumRequest
@@ -98,10 +99,12 @@
9899
from .types import LockUserRequest
99100
from .types import MFAOTP
100101
from .types import MigrateOrganizationGuestsRequest
102+
from .types import Organization
101103
from .types import OrganizationSecuritySettings
102104
from .types import RemoveGroupMemberRequest
103105
from .types import RemoveUserConnectionRequest
104106
from .types import SetGroupMembersRequest
107+
from .types import SetOrganizationAliasRequest
105108
from .types import SetRulesRequest
106109
from .types import SetRulesResponse
107110
from .types import UnlockUserRequest
@@ -180,6 +183,7 @@
180183
"GetGroupRequest",
181184
"GetJWTRequest",
182185
"GetLogRequest",
186+
"GetOrganizationRequest",
183187
"GetOrganizationSecuritySettingsRequest",
184188
"GetPolicyRequest",
185189
"GetQuotumRequest",
@@ -217,10 +221,12 @@
217221
"LockUserRequest",
218222
"MFAOTP",
219223
"MigrateOrganizationGuestsRequest",
224+
"Organization",
220225
"OrganizationSecuritySettings",
221226
"RemoveGroupMemberRequest",
222227
"RemoveUserConnectionRequest",
223228
"SetGroupMembersRequest",
229+
"SetOrganizationAliasRequest",
224230
"SetRulesRequest",
225231
"SetRulesResponse",
226232
"UnlockUserRequest",

scaleway-async/scaleway_async/iam/v1alpha1/api.py

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
ListUsersResponse,
6060
Log,
6161
MFAOTP,
62+
Organization,
6263
OrganizationSecuritySettings,
6364
PermissionSet,
6465
Policy,
@@ -69,6 +70,7 @@
6970
RuleSpecs,
7071
SSHKey,
7172
SetGroupMembersRequest,
73+
SetOrganizationAliasRequest,
7274
SetRulesRequest,
7375
SetRulesResponse,
7476
UpdateAPIKeyRequest,
@@ -110,6 +112,7 @@
110112
unmarshal_ListSSHKeysResponse,
111113
unmarshal_ListUsersResponse,
112114
unmarshal_MFAOTP,
115+
unmarshal_Organization,
113116
unmarshal_OrganizationSecuritySettings,
114117
unmarshal_SetRulesResponse,
115118
unmarshal_ValidateUserMFAOTPResponse,
@@ -126,6 +129,7 @@
126129
marshal_RemoveGroupMemberRequest,
127130
marshal_RemoveUserConnectionRequest,
128131
marshal_SetGroupMembersRequest,
132+
marshal_SetOrganizationAliasRequest,
129133
marshal_SetRulesRequest,
130134
marshal_UpdateAPIKeyRequest,
131135
marshal_UpdateApplicationRequest,
@@ -2931,6 +2935,74 @@ async def update_organization_security_settings(
29312935
self._throw_on_error(res)
29322936
return unmarshal_OrganizationSecuritySettings(res.json())
29332937

2938+
async def set_organization_alias(
2939+
self,
2940+
*,
2941+
alias: str,
2942+
organization_id: Optional[str] = None,
2943+
) -> Organization:
2944+
"""
2945+
Set your Organization's alias.
2946+
This will fail if an alias has already been defined. Please contact support if you need to change your Organization's alias.
2947+
:param alias: Alias of the Organization.
2948+
:param organization_id: ID of the Organization.
2949+
:return: :class:`Organization <Organization>`
2950+
2951+
Usage:
2952+
::
2953+
2954+
result = await api.set_organization_alias(
2955+
alias="example",
2956+
)
2957+
"""
2958+
2959+
param_organization_id = validate_path_param(
2960+
"organization_id", organization_id or self.client.default_organization_id
2961+
)
2962+
2963+
res = self._request(
2964+
"PUT",
2965+
f"/iam/v1alpha1/organizations/{param_organization_id}/alias",
2966+
body=marshal_SetOrganizationAliasRequest(
2967+
SetOrganizationAliasRequest(
2968+
alias=alias,
2969+
organization_id=organization_id,
2970+
),
2971+
self.client,
2972+
),
2973+
)
2974+
2975+
self._throw_on_error(res)
2976+
return unmarshal_Organization(res.json())
2977+
2978+
async def get_organization(
2979+
self,
2980+
*,
2981+
organization_id: Optional[str] = None,
2982+
) -> Organization:
2983+
"""
2984+
Get your Organization's IAM information.
2985+
:param organization_id: ID of the Organization.
2986+
:return: :class:`Organization <Organization>`
2987+
2988+
Usage:
2989+
::
2990+
2991+
result = await api.get_organization()
2992+
"""
2993+
2994+
param_organization_id = validate_path_param(
2995+
"organization_id", organization_id or self.client.default_organization_id
2996+
)
2997+
2998+
res = self._request(
2999+
"GET",
3000+
f"/iam/v1alpha1/organizations/{param_organization_id}",
3001+
)
3002+
3003+
self._throw_on_error(res)
3004+
return unmarshal_Organization(res.json())
3005+
29343006
async def migrate_organization_guests(
29353007
self,
29363008
*,

scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
ListSSHKeysResponse,
4343
ListUsersResponse,
4444
MFAOTP,
45+
Organization,
4546
OrganizationSecuritySettings,
4647
SetRulesResponse,
4748
ValidateUserMFAOTPResponse,
@@ -60,6 +61,7 @@
6061
RemoveGroupMemberRequest,
6162
RemoveUserConnectionRequest,
6263
SetGroupMembersRequest,
64+
SetOrganizationAliasRequest,
6365
SetRulesRequest,
6466
UpdateAPIKeyRequest,
6567
UpdateApplicationRequest,
@@ -1194,6 +1196,29 @@ def unmarshal_MFAOTP(data: Any) -> MFAOTP:
11941196
return MFAOTP(**args)
11951197

11961198

1199+
def unmarshal_Organization(data: Any) -> Organization:
1200+
if not isinstance(data, dict):
1201+
raise TypeError(
1202+
"Unmarshalling the type 'Organization' failed as data isn't a dictionary."
1203+
)
1204+
1205+
args: Dict[str, Any] = {}
1206+
1207+
field = data.get("id", None)
1208+
if field is not None:
1209+
args["id"] = field
1210+
1211+
field = data.get("name", None)
1212+
if field is not None:
1213+
args["name"] = field
1214+
1215+
field = data.get("alias", None)
1216+
if field is not None:
1217+
args["alias"] = field
1218+
1219+
return Organization(**args)
1220+
1221+
11971222
def unmarshal_OrganizationSecuritySettings(data: Any) -> OrganizationSecuritySettings:
11981223
if not isinstance(data, dict):
11991224
raise TypeError(
@@ -1568,6 +1593,18 @@ def marshal_SetGroupMembersRequest(
15681593
return output
15691594

15701595

1596+
def marshal_SetOrganizationAliasRequest(
1597+
request: SetOrganizationAliasRequest,
1598+
defaults: ProfileDefaults,
1599+
) -> Dict[str, Any]:
1600+
output: Dict[str, Any] = {}
1601+
1602+
if request.alias is not None:
1603+
output["alias"] = request.alias
1604+
1605+
return output
1606+
1607+
15711608
def marshal_SetRulesRequest(
15721609
request: SetRulesRequest,
15731610
defaults: ProfileDefaults,

scaleway-async/scaleway_async/iam/v1alpha1/types.py

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1237,6 +1237,14 @@ class GetLogRequest:
12371237
"""
12381238

12391239

1240+
@dataclass
1241+
class GetOrganizationRequest:
1242+
organization_id: Optional[str]
1243+
"""
1244+
ID of the Organization.
1245+
"""
1246+
1247+
12401248
@dataclass
12411249
class GetOrganizationSecuritySettingsRequest:
12421250
organization_id: Optional[str]
@@ -1943,6 +1951,24 @@ class MigrateOrganizationGuestsRequest:
19431951
"""
19441952

19451953

1954+
@dataclass
1955+
class Organization:
1956+
id: str
1957+
"""
1958+
ID of the Organization.
1959+
"""
1960+
1961+
name: str
1962+
"""
1963+
Name of the Organization.
1964+
"""
1965+
1966+
alias: str
1967+
"""
1968+
Alias of the Organization.
1969+
"""
1970+
1971+
19461972
@dataclass
19471973
class OrganizationSecuritySettings:
19481974
enforce_password_renewal: bool
@@ -1995,6 +2021,19 @@ class SetGroupMembersRequest:
19952021
application_ids: List[str]
19962022

19972023

2024+
@dataclass
2025+
class SetOrganizationAliasRequest:
2026+
alias: str
2027+
"""
2028+
Alias of the Organization.
2029+
"""
2030+
2031+
organization_id: Optional[str]
2032+
"""
2033+
ID of the Organization.
2034+
"""
2035+
2036+
19982037
@dataclass
19992038
class SetRulesRequest:
20002039
policy_id: str

scaleway/scaleway/iam/v1alpha1/__init__.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
from .types import GetGroupRequest
6262
from .types import GetJWTRequest
6363
from .types import GetLogRequest
64+
from .types import GetOrganizationRequest
6465
from .types import GetOrganizationSecuritySettingsRequest
6566
from .types import GetPolicyRequest
6667
from .types import GetQuotumRequest
@@ -98,10 +99,12 @@
9899
from .types import LockUserRequest
99100
from .types import MFAOTP
100101
from .types import MigrateOrganizationGuestsRequest
102+
from .types import Organization
101103
from .types import OrganizationSecuritySettings
102104
from .types import RemoveGroupMemberRequest
103105
from .types import RemoveUserConnectionRequest
104106
from .types import SetGroupMembersRequest
107+
from .types import SetOrganizationAliasRequest
105108
from .types import SetRulesRequest
106109
from .types import SetRulesResponse
107110
from .types import UnlockUserRequest
@@ -180,6 +183,7 @@
180183
"GetGroupRequest",
181184
"GetJWTRequest",
182185
"GetLogRequest",
186+
"GetOrganizationRequest",
183187
"GetOrganizationSecuritySettingsRequest",
184188
"GetPolicyRequest",
185189
"GetQuotumRequest",
@@ -217,10 +221,12 @@
217221
"LockUserRequest",
218222
"MFAOTP",
219223
"MigrateOrganizationGuestsRequest",
224+
"Organization",
220225
"OrganizationSecuritySettings",
221226
"RemoveGroupMemberRequest",
222227
"RemoveUserConnectionRequest",
223228
"SetGroupMembersRequest",
229+
"SetOrganizationAliasRequest",
224230
"SetRulesRequest",
225231
"SetRulesResponse",
226232
"UnlockUserRequest",

0 commit comments

Comments
 (0)