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
20 changes: 20 additions & 0 deletions scaleway-async/scaleway_async/iam/v1alpha1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
from .types import ListPoliciesRequestOrderBy
from .types import ListQuotaRequestOrderBy
from .types import ListSSHKeysRequestOrderBy
from .types import ListScimTokensRequestOrderBy
from .types import ListUsersRequestOrderBy
from .types import LocalityType
from .types import LogAction
Expand All @@ -26,6 +27,7 @@
from .types import QuotumLimit
from .types import JWT
from .types import RuleSpecs
from .types import ScimToken
from .types import CreateUserRequestMember
from .types import Connection
from .types import APIKey
Expand All @@ -51,6 +53,8 @@
from .types import CreateJWTRequest
from .types import CreatePolicyRequest
from .types import CreateSSHKeyRequest
from .types import CreateScimTokenRequest
from .types import CreateScimTokenResponse
from .types import CreateUserMFAOTPRequest
from .types import CreateUserRequest
from .types import DeleteAPIKeyRequest
Expand All @@ -61,9 +65,12 @@
from .types import DeleteSSHKeyRequest
from .types import DeleteSamlCertificateRequest
from .types import DeleteSamlRequest
from .types import DeleteScimRequest
from .types import DeleteScimTokenRequest
from .types import DeleteUserMFAOTPRequest
from .types import DeleteUserRequest
from .types import EnableOrganizationSamlRequest
from .types import EnableOrganizationScimRequest
from .types import EncodedJWT
from .types import GetAPIKeyRequest
from .types import GetApplicationRequest
Expand Down Expand Up @@ -106,6 +113,8 @@
from .types import ListSSHKeysResponse
from .types import ListSamlCertificatesRequest
from .types import ListSamlCertificatesResponse
from .types import ListScimTokensRequest
from .types import ListScimTokensResponse
from .types import ListUsersRequest
from .types import ListUsersResponse
from .types import LockUserRequest
Expand All @@ -117,6 +126,7 @@
from .types import RemoveGroupMemberRequest
from .types import RemoveUserConnectionRequest
from .types import Saml
from .types import Scim
from .types import SetGroupMembersRequest
from .types import SetOrganizationAliasRequest
from .types import SetRulesRequest
Expand Down Expand Up @@ -149,6 +159,7 @@
"ListPoliciesRequestOrderBy",
"ListQuotaRequestOrderBy",
"ListSSHKeysRequestOrderBy",
"ListScimTokensRequestOrderBy",
"ListUsersRequestOrderBy",
"LocalityType",
"LogAction",
Expand All @@ -164,6 +175,7 @@
"QuotumLimit",
"JWT",
"RuleSpecs",
"ScimToken",
"CreateUserRequestMember",
"Connection",
"APIKey",
Expand All @@ -189,6 +201,8 @@
"CreateJWTRequest",
"CreatePolicyRequest",
"CreateSSHKeyRequest",
"CreateScimTokenRequest",
"CreateScimTokenResponse",
"CreateUserMFAOTPRequest",
"CreateUserRequest",
"DeleteAPIKeyRequest",
Expand All @@ -199,9 +213,12 @@
"DeleteSSHKeyRequest",
"DeleteSamlCertificateRequest",
"DeleteSamlRequest",
"DeleteScimRequest",
"DeleteScimTokenRequest",
"DeleteUserMFAOTPRequest",
"DeleteUserRequest",
"EnableOrganizationSamlRequest",
"EnableOrganizationScimRequest",
"EncodedJWT",
"GetAPIKeyRequest",
"GetApplicationRequest",
Expand Down Expand Up @@ -244,6 +261,8 @@
"ListSSHKeysResponse",
"ListSamlCertificatesRequest",
"ListSamlCertificatesResponse",
"ListScimTokensRequest",
"ListScimTokensResponse",
"ListUsersRequest",
"ListUsersResponse",
"LockUserRequest",
Expand All @@ -255,6 +274,7 @@
"RemoveGroupMemberRequest",
"RemoveUserConnectionRequest",
"Saml",
"Scim",
"SetGroupMembersRequest",
"SetOrganizationAliasRequest",
"SetRulesRequest",
Expand Down
186 changes: 186 additions & 0 deletions scaleway-async/scaleway_async/iam/v1alpha1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
ListPoliciesRequestOrderBy,
ListQuotaRequestOrderBy,
ListSSHKeysRequestOrderBy,
ListScimTokensRequestOrderBy,
ListUsersRequestOrderBy,
LogAction,
LogResourceType,
Expand All @@ -42,6 +43,7 @@
CreateJWTRequest,
CreatePolicyRequest,
CreateSSHKeyRequest,
CreateScimTokenResponse,
CreateUserRequest,
CreateUserRequestMember,
EncodedJWT,
Expand All @@ -62,6 +64,7 @@
ListRulesResponse,
ListSSHKeysResponse,
ListSamlCertificatesResponse,
ListScimTokensResponse,
ListUsersResponse,
Log,
MFAOTP,
Expand All @@ -79,6 +82,8 @@
SSHKey,
Saml,
SamlCertificate,
Scim,
ScimToken,
SetGroupMembersRequest,
SetOrganizationAliasRequest,
SetRulesRequest,
Expand Down Expand Up @@ -109,6 +114,7 @@
unmarshal_SSHKey,
unmarshal_SamlCertificate,
unmarshal_User,
unmarshal_CreateScimTokenResponse,
unmarshal_EncodedJWT,
unmarshal_GetUserConnectionsResponse,
unmarshal_InitiateUserConnectionResponse,
Expand All @@ -124,12 +130,14 @@
unmarshal_ListRulesResponse,
unmarshal_ListSSHKeysResponse,
unmarshal_ListSamlCertificatesResponse,
unmarshal_ListScimTokensResponse,
unmarshal_ListUsersResponse,
unmarshal_MFAOTP,
unmarshal_Organization,
unmarshal_OrganizationSecuritySettings,
unmarshal_ParseSamlMetadataResponse,
unmarshal_Saml,
unmarshal_Scim,
unmarshal_SetRulesResponse,
unmarshal_ValidateUserMFAOTPResponse,
marshal_AddGroupMemberRequest,
Expand Down Expand Up @@ -3328,3 +3336,181 @@ async def delete_saml_certificate(
)

self._throw_on_error(res)

async def enable_organization_scim(
self,
*,
organization_id: Optional[str] = None,
) -> Scim:
"""
:param organization_id: ID of the Organization.
:return: :class:`Scim <Scim>`

Usage:
::

result = await api.enable_organization_scim()
"""

param_organization_id = validate_path_param(
"organization_id", organization_id or self.client.default_organization_id
)

res = self._request(
"POST",
f"/iam/v1alpha1/organizations/{param_organization_id}/scim",
body={},
)

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

async def delete_scim(
self,
*,
scim_id: str,
) -> None:
"""
:param scim_id: ID of the SCIM configuration.

Usage:
::

result = await api.delete_scim(
scim_id="example",
)
"""

param_scim_id = validate_path_param("scim_id", scim_id)

res = self._request(
"DELETE",
f"/iam/v1alpha1/scim/{param_scim_id}",
)

self._throw_on_error(res)

async def list_scim_tokens(
self,
*,
scim_id: str,
order_by: Optional[ListScimTokensRequestOrderBy] = None,
page: Optional[int] = None,
page_size: Optional[int] = None,
) -> ListScimTokensResponse:
"""
:param scim_id: ID of the SCIM configuration.
:param order_by: Sort order of SCIM tokens.
:param page: Requested page number. Value must be greater or equal to 1.
:param page_size: Number of items per page. Value must be between 1 and 100.
:return: :class:`ListScimTokensResponse <ListScimTokensResponse>`

Usage:
::

result = await api.list_scim_tokens(
scim_id="example",
)
"""

param_scim_id = validate_path_param("scim_id", scim_id)

res = self._request(
"GET",
f"/iam/v1alpha1/scim/{param_scim_id}/tokens",
params={
"order_by": order_by,
"page": page,
"page_size": page_size or self.client.default_page_size,
},
)

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

async def list_scim_tokens_all(
self,
*,
scim_id: str,
order_by: Optional[ListScimTokensRequestOrderBy] = None,
page: Optional[int] = None,
page_size: Optional[int] = None,
) -> list[ScimToken]:
"""
:param scim_id: ID of the SCIM configuration.
:param order_by: Sort order of SCIM tokens.
:param page: Requested page number. Value must be greater or equal to 1.
:param page_size: Number of items per page. Value must be between 1 and 100.
:return: :class:`list[ScimToken] <list[ScimToken]>`

Usage:
::

result = await api.list_scim_tokens_all(
scim_id="example",
)
"""

return await fetch_all_pages_async(
type=ListScimTokensResponse,
key="scim_tokens",
fetcher=self.list_scim_tokens,
args={
"scim_id": scim_id,
"order_by": order_by,
"page": page,
"page_size": page_size,
},
)

async def create_scim_token(
self,
*,
scim_id: str,
) -> CreateScimTokenResponse:
"""
:param scim_id: ID of the SCIM configuration.
:return: :class:`CreateScimTokenResponse <CreateScimTokenResponse>`

Usage:
::

result = await api.create_scim_token(
scim_id="example",
)
"""

param_scim_id = validate_path_param("scim_id", scim_id)

res = self._request(
"POST",
f"/iam/v1alpha1/scim/{param_scim_id}/tokens",
)

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

async def delete_scim_token(
self,
*,
token_id: str,
) -> None:
"""
:param token_id: The SCIM token ID.

Usage:
::

result = await api.delete_scim_token(
token_id="example",
)
"""

param_token_id = validate_path_param("token_id", token_id)

res = self._request(
"DELETE",
f"/iam/v1alpha1/scim-tokens/{param_token_id}",
)

self._throw_on_error(res)
Loading