Skip to content

Commit f2985d4

Browse files
feat(iam): add LockUser and UnlockUser method (scaleway#728)
Co-authored-by: Laure-di <62625835+Laure-di@users.noreply.github.com>
1 parent f305550 commit f2985d4

File tree

6 files changed

+146
-0
lines changed

6 files changed

+146
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,12 @@
7878
from .types import ListSSHKeysResponse
7979
from .types import ListUsersRequest
8080
from .types import ListUsersResponse
81+
from .types import LockUserRequest
8182
from .types import RemoveGroupMemberRequest
8283
from .types import SetGroupMembersRequest
8384
from .types import SetRulesRequest
8485
from .types import SetRulesResponse
86+
from .types import UnlockUserRequest
8587
from .types import UpdateAPIKeyRequest
8688
from .types import UpdateApplicationRequest
8789
from .types import UpdateGroupRequest
@@ -170,10 +172,12 @@
170172
"ListSSHKeysResponse",
171173
"ListUsersRequest",
172174
"ListUsersResponse",
175+
"LockUserRequest",
173176
"RemoveGroupMemberRequest",
174177
"SetGroupMembersRequest",
175178
"SetRulesRequest",
176179
"SetRulesResponse",
180+
"UnlockUserRequest",
177181
"UpdateAPIKeyRequest",
178182
"UpdateApplicationRequest",
179183
"UpdateGroupRequest",

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

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,65 @@ async def update_user_password(
617617
self._throw_on_error(res)
618618
return unmarshal_User(res.json())
619619

620+
async def lock_user(
621+
self,
622+
*,
623+
user_id: str,
624+
) -> User:
625+
"""
626+
Lock a user.
627+
Lock a user. Note that a locked user cannot log in or use API keys until the locked status is removed.
628+
:param user_id:
629+
:return: :class:`User <User>`
630+
631+
Usage:
632+
::
633+
634+
result = await api.lock_user(
635+
user_id="example",
636+
)
637+
"""
638+
639+
param_user_id = validate_path_param("user_id", user_id)
640+
641+
res = self._request(
642+
"POST",
643+
f"/iam/v1alpha1/users/{param_user_id}/lock",
644+
body={},
645+
)
646+
647+
self._throw_on_error(res)
648+
return unmarshal_User(res.json())
649+
650+
async def unlock_user(
651+
self,
652+
*,
653+
user_id: str,
654+
) -> User:
655+
"""
656+
Unlock a user.
657+
:param user_id:
658+
:return: :class:`User <User>`
659+
660+
Usage:
661+
::
662+
663+
result = await api.unlock_user(
664+
user_id="example",
665+
)
666+
"""
667+
668+
param_user_id = validate_path_param("user_id", user_id)
669+
670+
res = self._request(
671+
"POST",
672+
f"/iam/v1alpha1/users/{param_user_id}/unlock",
673+
body={},
674+
)
675+
676+
self._throw_on_error(res)
677+
return unmarshal_User(res.json())
678+
620679
async def list_applications(
621680
self,
622681
*,

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1691,6 +1691,11 @@ class ListUsersResponse:
16911691
"""
16921692

16931693

1694+
@dataclass
1695+
class LockUserRequest:
1696+
user_id: str
1697+
1698+
16941699
@dataclass
16951700
class RemoveGroupMemberRequest:
16961701
group_id: str
@@ -1733,6 +1738,11 @@ class SetRulesResponse:
17331738
"""
17341739

17351740

1741+
@dataclass
1742+
class UnlockUserRequest:
1743+
user_id: str
1744+
1745+
17361746
@dataclass
17371747
class UpdateAPIKeyRequest:
17381748
access_key: str

scaleway/scaleway/iam/v1alpha1/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,12 @@
7878
from .types import ListSSHKeysResponse
7979
from .types import ListUsersRequest
8080
from .types import ListUsersResponse
81+
from .types import LockUserRequest
8182
from .types import RemoveGroupMemberRequest
8283
from .types import SetGroupMembersRequest
8384
from .types import SetRulesRequest
8485
from .types import SetRulesResponse
86+
from .types import UnlockUserRequest
8587
from .types import UpdateAPIKeyRequest
8688
from .types import UpdateApplicationRequest
8789
from .types import UpdateGroupRequest
@@ -170,10 +172,12 @@
170172
"ListSSHKeysResponse",
171173
"ListUsersRequest",
172174
"ListUsersResponse",
175+
"LockUserRequest",
173176
"RemoveGroupMemberRequest",
174177
"SetGroupMembersRequest",
175178
"SetRulesRequest",
176179
"SetRulesResponse",
180+
"UnlockUserRequest",
177181
"UpdateAPIKeyRequest",
178182
"UpdateApplicationRequest",
179183
"UpdateGroupRequest",

scaleway/scaleway/iam/v1alpha1/api.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -617,6 +617,65 @@ def update_user_password(
617617
self._throw_on_error(res)
618618
return unmarshal_User(res.json())
619619

620+
def lock_user(
621+
self,
622+
*,
623+
user_id: str,
624+
) -> User:
625+
"""
626+
Lock a user.
627+
Lock a user. Note that a locked user cannot log in or use API keys until the locked status is removed.
628+
:param user_id:
629+
:return: :class:`User <User>`
630+
631+
Usage:
632+
::
633+
634+
result = api.lock_user(
635+
user_id="example",
636+
)
637+
"""
638+
639+
param_user_id = validate_path_param("user_id", user_id)
640+
641+
res = self._request(
642+
"POST",
643+
f"/iam/v1alpha1/users/{param_user_id}/lock",
644+
body={},
645+
)
646+
647+
self._throw_on_error(res)
648+
return unmarshal_User(res.json())
649+
650+
def unlock_user(
651+
self,
652+
*,
653+
user_id: str,
654+
) -> User:
655+
"""
656+
Unlock a user.
657+
:param user_id:
658+
:return: :class:`User <User>`
659+
660+
Usage:
661+
::
662+
663+
result = api.unlock_user(
664+
user_id="example",
665+
)
666+
"""
667+
668+
param_user_id = validate_path_param("user_id", user_id)
669+
670+
res = self._request(
671+
"POST",
672+
f"/iam/v1alpha1/users/{param_user_id}/unlock",
673+
body={},
674+
)
675+
676+
self._throw_on_error(res)
677+
return unmarshal_User(res.json())
678+
620679
def list_applications(
621680
self,
622681
*,

scaleway/scaleway/iam/v1alpha1/types.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1691,6 +1691,11 @@ class ListUsersResponse:
16911691
"""
16921692

16931693

1694+
@dataclass
1695+
class LockUserRequest:
1696+
user_id: str
1697+
1698+
16941699
@dataclass
16951700
class RemoveGroupMemberRequest:
16961701
group_id: str
@@ -1733,6 +1738,11 @@ class SetRulesResponse:
17331738
"""
17341739

17351740

1741+
@dataclass
1742+
class UnlockUserRequest:
1743+
user_id: str
1744+
1745+
17361746
@dataclass
17371747
class UpdateAPIKeyRequest:
17381748
access_key: str

0 commit comments

Comments
 (0)