Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions scaleway-async/scaleway_async/iam/v1alpha1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@
from .types import GetUserConnectionsRequest
from .types import GetUserConnectionsResponse
from .types import GetUserRequest
from .types import InitiateUserConnectionRequest
from .types import InitiateUserConnectionResponse
from .types import JoinUserConnectionRequest
from .types import ListAPIKeysRequest
from .types import ListAPIKeysResponse
from .types import ListApplicationsRequest
Expand Down Expand Up @@ -97,6 +100,7 @@
from .types import MigrateOrganizationGuestsRequest
from .types import OrganizationSecuritySettings
from .types import RemoveGroupMemberRequest
from .types import RemoveUserConnectionRequest
from .types import SetGroupMembersRequest
from .types import SetRulesRequest
from .types import SetRulesResponse
Expand Down Expand Up @@ -183,6 +187,9 @@
"GetUserConnectionsRequest",
"GetUserConnectionsResponse",
"GetUserRequest",
"InitiateUserConnectionRequest",
"InitiateUserConnectionResponse",
"JoinUserConnectionRequest",
"ListAPIKeysRequest",
"ListAPIKeysResponse",
"ListApplicationsRequest",
Expand Down Expand Up @@ -212,6 +219,7 @@
"MigrateOrganizationGuestsRequest",
"OrganizationSecuritySettings",
"RemoveGroupMemberRequest",
"RemoveUserConnectionRequest",
"SetGroupMembersRequest",
"SetRulesRequest",
"SetRulesResponse",
Expand Down
104 changes: 104 additions & 0 deletions scaleway-async/scaleway_async/iam/v1alpha1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@
EncodedJWT,
GetUserConnectionsResponse,
Group,
InitiateUserConnectionResponse,
JWT,
JoinUserConnectionRequest,
ListAPIKeysResponse,
ListApplicationsResponse,
ListGracePeriodsResponse,
Expand All @@ -62,6 +64,7 @@
Policy,
Quotum,
RemoveGroupMemberRequest,
RemoveUserConnectionRequest,
Rule,
RuleSpecs,
SSHKey,
Expand Down Expand Up @@ -93,6 +96,7 @@
unmarshal_User,
unmarshal_EncodedJWT,
unmarshal_GetUserConnectionsResponse,
unmarshal_InitiateUserConnectionResponse,
unmarshal_ListAPIKeysResponse,
unmarshal_ListApplicationsResponse,
unmarshal_ListGracePeriodsResponse,
Expand All @@ -118,7 +122,9 @@
marshal_CreatePolicyRequest,
marshal_CreateSSHKeyRequest,
marshal_CreateUserRequest,
marshal_JoinUserConnectionRequest,
marshal_RemoveGroupMemberRequest,
marshal_RemoveUserConnectionRequest,
marshal_SetGroupMembersRequest,
marshal_SetRulesRequest,
marshal_UpdateAPIKeyRequest,
Expand Down Expand Up @@ -898,6 +904,104 @@ async def get_user_connections(
self._throw_on_error(res)
return unmarshal_GetUserConnectionsResponse(res.json())

async def initiate_user_connection(
self,
*,
user_id: str,
) -> InitiateUserConnectionResponse:
"""
:param user_id: ID of the user that will be added to your connection.
:return: :class:`InitiateUserConnectionResponse <InitiateUserConnectionResponse>`

Usage:
::

result = await api.initiate_user_connection(
user_id="example",
)
"""

param_user_id = validate_path_param("user_id", user_id)

res = self._request(
"POST",
f"/iam/v1alpha1/users/{param_user_id}/initiate-connection",
body={},
)

self._throw_on_error(res)
return unmarshal_InitiateUserConnectionResponse(res.json())

async def join_user_connection(
self,
*,
user_id: str,
token: str,
) -> None:
"""
:param user_id: User ID.
:param token: A token returned by InitiateUserConnection.

Usage:
::

result = await api.join_user_connection(
user_id="example",
token="example",
)
"""

param_user_id = validate_path_param("user_id", user_id)

res = self._request(
"POST",
f"/iam/v1alpha1/users/{param_user_id}/join-connection",
body=marshal_JoinUserConnectionRequest(
JoinUserConnectionRequest(
user_id=user_id,
token=token,
),
self.client,
),
)

self._throw_on_error(res)

async def remove_user_connection(
self,
*,
user_id: str,
target_user_id: str,
) -> None:
"""
:param user_id: ID of the user you want to manage the connection for.
:param target_user_id: ID of the user you want to remove from your connection.

Usage:
::

result = await api.remove_user_connection(
user_id="example",
target_user_id="example",
)
"""

param_user_id = validate_path_param("user_id", user_id)

res = self._request(
"POST",
f"/iam/v1alpha1/users/{param_user_id}/remove-connection",
body=marshal_RemoveUserConnectionRequest(
RemoveUserConnectionRequest(
user_id=user_id,
target_user_id=target_user_id,
),
self.client,
),
)

self._throw_on_error(res)

async def list_applications(
self,
*,
Expand Down
44 changes: 44 additions & 0 deletions scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
ConnectionConnectedUser,
Connection,
GetUserConnectionsResponse,
InitiateUserConnectionResponse,
ListAPIKeysResponse,
ListApplicationsResponse,
GracePeriod,
Expand Down Expand Up @@ -55,7 +56,9 @@
CreateSSHKeyRequest,
CreateUserRequestMember,
CreateUserRequest,
JoinUserConnectionRequest,
RemoveGroupMemberRequest,
RemoveUserConnectionRequest,
SetGroupMembersRequest,
SetRulesRequest,
UpdateAPIKeyRequest,
Expand Down Expand Up @@ -808,6 +811,23 @@ def unmarshal_GetUserConnectionsResponse(data: Any) -> GetUserConnectionsRespons
return GetUserConnectionsResponse(**args)


def unmarshal_InitiateUserConnectionResponse(
data: Any,
) -> InitiateUserConnectionResponse:
if not isinstance(data, dict):
raise TypeError(
"Unmarshalling the type 'InitiateUserConnectionResponse' failed as data isn't a dictionary."
)

args: Dict[str, Any] = {}

field = data.get("token", None)
if field is not None:
args["token"] = field

return InitiateUserConnectionResponse(**args)


def unmarshal_ListAPIKeysResponse(data: Any) -> ListAPIKeysResponse:
if not isinstance(data, dict):
raise TypeError(
Expand Down Expand Up @@ -1492,6 +1512,18 @@ def marshal_CreateUserRequest(
return output


def marshal_JoinUserConnectionRequest(
request: JoinUserConnectionRequest,
defaults: ProfileDefaults,
) -> Dict[str, Any]:
output: Dict[str, Any] = {}

if request.token is not None:
output["token"] = request.token

return output


def marshal_RemoveGroupMemberRequest(
request: RemoveGroupMemberRequest,
defaults: ProfileDefaults,
Expand All @@ -1509,6 +1541,18 @@ def marshal_RemoveGroupMemberRequest(
return output


def marshal_RemoveUserConnectionRequest(
request: RemoveUserConnectionRequest,
defaults: ProfileDefaults,
) -> Dict[str, Any]:
output: Dict[str, Any] = {}

if request.target_user_id is not None:
output["target_user_id"] = request.target_user_id

return output


def marshal_SetGroupMembersRequest(
request: SetGroupMembersRequest,
defaults: ProfileDefaults,
Expand Down
42 changes: 42 additions & 0 deletions scaleway-async/scaleway_async/iam/v1alpha1/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -1298,6 +1298,35 @@ class GetUserRequest:
"""


@dataclass
class InitiateUserConnectionRequest:
user_id: str
"""
ID of the user that will be added to your connection.
"""


@dataclass
class InitiateUserConnectionResponse:
token: str
"""
Token to be used in JoinUserConnection.
"""


@dataclass
class JoinUserConnectionRequest:
user_id: str
"""
User ID.
"""

token: str
"""
A token returned by InitiateUserConnection.
"""


@dataclass
class ListAPIKeysRequest:
order_by: Optional[ListAPIKeysRequestOrderBy]
Expand Down Expand Up @@ -1944,6 +1973,19 @@ class RemoveGroupMemberRequest:
application_id: Optional[str]


@dataclass
class RemoveUserConnectionRequest:
user_id: str
"""
ID of the user you want to manage the connection for.
"""

target_user_id: str
"""
ID of the user you want to remove from your connection.
"""


@dataclass
class SetGroupMembersRequest:
group_id: str
Expand Down
8 changes: 8 additions & 0 deletions scaleway/scaleway/iam/v1alpha1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@
from .types import GetUserConnectionsRequest
from .types import GetUserConnectionsResponse
from .types import GetUserRequest
from .types import InitiateUserConnectionRequest
from .types import InitiateUserConnectionResponse
from .types import JoinUserConnectionRequest
from .types import ListAPIKeysRequest
from .types import ListAPIKeysResponse
from .types import ListApplicationsRequest
Expand Down Expand Up @@ -97,6 +100,7 @@
from .types import MigrateOrganizationGuestsRequest
from .types import OrganizationSecuritySettings
from .types import RemoveGroupMemberRequest
from .types import RemoveUserConnectionRequest
from .types import SetGroupMembersRequest
from .types import SetRulesRequest
from .types import SetRulesResponse
Expand Down Expand Up @@ -183,6 +187,9 @@
"GetUserConnectionsRequest",
"GetUserConnectionsResponse",
"GetUserRequest",
"InitiateUserConnectionRequest",
"InitiateUserConnectionResponse",
"JoinUserConnectionRequest",
"ListAPIKeysRequest",
"ListAPIKeysResponse",
"ListApplicationsRequest",
Expand Down Expand Up @@ -212,6 +219,7 @@
"MigrateOrganizationGuestsRequest",
"OrganizationSecuritySettings",
"RemoveGroupMemberRequest",
"RemoveUserConnectionRequest",
"SetGroupMembersRequest",
"SetRulesRequest",
"SetRulesResponse",
Expand Down
Loading