diff --git a/scaleway-async/scaleway_async/iam/v1alpha1/__init__.py b/scaleway-async/scaleway_async/iam/v1alpha1/__init__.py index 052ad9df3..d4a0d8366 100644 --- a/scaleway-async/scaleway_async/iam/v1alpha1/__init__.py +++ b/scaleway-async/scaleway_async/iam/v1alpha1/__init__.py @@ -90,6 +90,7 @@ from .types import GetQuotumRequest from .types import GetSSHKeyRequest from .types import GetSamlCertificateRequest +from .types import GetScimTokenRequest from .types import GetUserConnectionsRequest from .types import GetUserConnectionsResponse from .types import GetUserRequest @@ -250,6 +251,7 @@ "GetQuotumRequest", "GetSSHKeyRequest", "GetSamlCertificateRequest", + "GetScimTokenRequest", "GetUserConnectionsRequest", "GetUserConnectionsResponse", "GetUserRequest", diff --git a/scaleway-async/scaleway_async/iam/v1alpha1/api.py b/scaleway-async/scaleway_async/iam/v1alpha1/api.py index e4ec08bb4..f4b284e40 100644 --- a/scaleway-async/scaleway_async/iam/v1alpha1/api.py +++ b/scaleway-async/scaleway_async/iam/v1alpha1/api.py @@ -112,6 +112,7 @@ ) from .marshalling import ( unmarshal_JWT, + unmarshal_ScimToken, unmarshal_APIKey, unmarshal_Application, unmarshal_Group, @@ -3590,6 +3591,33 @@ async def delete_scim_token( self._throw_on_error(res) + async def get_scim_token( + self, + *, + scim_token_id: str, + ) -> ScimToken: + """ + :param scim_token_id: + :return: :class:`ScimToken ` + + Usage: + :: + + result = await api.get_scim_token( + scim_token_id="example", + ) + """ + + param_scim_token_id = validate_path_param("scim_token_id", scim_token_id) + + res = self._request( + "GET", + f"/iam/v1alpha1/scim-tokens/{param_scim_token_id}", + ) + + self._throw_on_error(res) + return unmarshal_ScimToken(res.json()) + async def start_user_web_authn_registration( self, *, diff --git a/scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py b/scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py index 530ac4f4d..e30b457cd 100644 --- a/scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py +++ b/scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py @@ -23,6 +23,7 @@ SamlStatus, UserType, JWT, + ScimToken, APIKey, Application, Group, @@ -34,7 +35,6 @@ SamlCertificate, WebAuthnAuthenticator, User, - ScimToken, CreateScimTokenResponse, EncodedJWT, FinishUserWebAuthnRegistrationResponse, @@ -172,6 +172,41 @@ def unmarshal_JWT(data: Any) -> JWT: return JWT(**args) +def unmarshal_ScimToken(data: Any) -> ScimToken: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ScimToken' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("id", None) + if field is not None: + args["id"] = field + else: + args["id"] = None + + field = data.get("scim_id", None) + if field is not None: + args["scim_id"] = field + else: + args["scim_id"] = None + + field = data.get("created_at", None) + if field is not None: + args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field + else: + args["created_at"] = None + + field = data.get("expires_at", None) + if field is not None: + args["expires_at"] = parser.isoparse(field) if isinstance(field, str) else field + else: + args["expires_at"] = None + + return ScimToken(**args) + + def unmarshal_APIKey(data: Any) -> APIKey: if not isinstance(data, dict): raise TypeError( @@ -1037,41 +1072,6 @@ def unmarshal_User(data: Any) -> User: return User(**args) -def unmarshal_ScimToken(data: Any) -> ScimToken: - if not isinstance(data, dict): - raise TypeError( - "Unmarshalling the type 'ScimToken' failed as data isn't a dictionary." - ) - - args: dict[str, Any] = {} - - field = data.get("id", None) - if field is not None: - args["id"] = field - else: - args["id"] = None - - field = data.get("scim_id", None) - if field is not None: - args["scim_id"] = field - else: - args["scim_id"] = None - - field = data.get("created_at", None) - if field is not None: - args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field - else: - args["created_at"] = None - - field = data.get("expires_at", None) - if field is not None: - args["expires_at"] = parser.isoparse(field) if isinstance(field, str) else field - else: - args["expires_at"] = None - - return ScimToken(**args) - - def unmarshal_CreateScimTokenResponse(data: Any) -> CreateScimTokenResponse: if not isinstance(data, dict): raise TypeError( diff --git a/scaleway-async/scaleway_async/iam/v1alpha1/types.py b/scaleway-async/scaleway_async/iam/v1alpha1/types.py index 40b182a46..1dcfa55dc 100644 --- a/scaleway-async/scaleway_async/iam/v1alpha1/types.py +++ b/scaleway-async/scaleway_async/iam/v1alpha1/types.py @@ -1627,6 +1627,11 @@ class GetSamlCertificateRequest: """ +@dataclass +class GetScimTokenRequest: + scim_token_id: str + + @dataclass class GetUserConnectionsRequest: user_id: str diff --git a/scaleway/scaleway/iam/v1alpha1/__init__.py b/scaleway/scaleway/iam/v1alpha1/__init__.py index 052ad9df3..d4a0d8366 100644 --- a/scaleway/scaleway/iam/v1alpha1/__init__.py +++ b/scaleway/scaleway/iam/v1alpha1/__init__.py @@ -90,6 +90,7 @@ from .types import GetQuotumRequest from .types import GetSSHKeyRequest from .types import GetSamlCertificateRequest +from .types import GetScimTokenRequest from .types import GetUserConnectionsRequest from .types import GetUserConnectionsResponse from .types import GetUserRequest @@ -250,6 +251,7 @@ "GetQuotumRequest", "GetSSHKeyRequest", "GetSamlCertificateRequest", + "GetScimTokenRequest", "GetUserConnectionsRequest", "GetUserConnectionsResponse", "GetUserRequest", diff --git a/scaleway/scaleway/iam/v1alpha1/api.py b/scaleway/scaleway/iam/v1alpha1/api.py index daf1e4910..8c8614fe7 100644 --- a/scaleway/scaleway/iam/v1alpha1/api.py +++ b/scaleway/scaleway/iam/v1alpha1/api.py @@ -112,6 +112,7 @@ ) from .marshalling import ( unmarshal_JWT, + unmarshal_ScimToken, unmarshal_APIKey, unmarshal_Application, unmarshal_Group, @@ -3590,6 +3591,33 @@ def delete_scim_token( self._throw_on_error(res) + def get_scim_token( + self, + *, + scim_token_id: str, + ) -> ScimToken: + """ + :param scim_token_id: + :return: :class:`ScimToken ` + + Usage: + :: + + result = api.get_scim_token( + scim_token_id="example", + ) + """ + + param_scim_token_id = validate_path_param("scim_token_id", scim_token_id) + + res = self._request( + "GET", + f"/iam/v1alpha1/scim-tokens/{param_scim_token_id}", + ) + + self._throw_on_error(res) + return unmarshal_ScimToken(res.json()) + def start_user_web_authn_registration( self, *, diff --git a/scaleway/scaleway/iam/v1alpha1/marshalling.py b/scaleway/scaleway/iam/v1alpha1/marshalling.py index 530ac4f4d..e30b457cd 100644 --- a/scaleway/scaleway/iam/v1alpha1/marshalling.py +++ b/scaleway/scaleway/iam/v1alpha1/marshalling.py @@ -23,6 +23,7 @@ SamlStatus, UserType, JWT, + ScimToken, APIKey, Application, Group, @@ -34,7 +35,6 @@ SamlCertificate, WebAuthnAuthenticator, User, - ScimToken, CreateScimTokenResponse, EncodedJWT, FinishUserWebAuthnRegistrationResponse, @@ -172,6 +172,41 @@ def unmarshal_JWT(data: Any) -> JWT: return JWT(**args) +def unmarshal_ScimToken(data: Any) -> ScimToken: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ScimToken' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("id", None) + if field is not None: + args["id"] = field + else: + args["id"] = None + + field = data.get("scim_id", None) + if field is not None: + args["scim_id"] = field + else: + args["scim_id"] = None + + field = data.get("created_at", None) + if field is not None: + args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field + else: + args["created_at"] = None + + field = data.get("expires_at", None) + if field is not None: + args["expires_at"] = parser.isoparse(field) if isinstance(field, str) else field + else: + args["expires_at"] = None + + return ScimToken(**args) + + def unmarshal_APIKey(data: Any) -> APIKey: if not isinstance(data, dict): raise TypeError( @@ -1037,41 +1072,6 @@ def unmarshal_User(data: Any) -> User: return User(**args) -def unmarshal_ScimToken(data: Any) -> ScimToken: - if not isinstance(data, dict): - raise TypeError( - "Unmarshalling the type 'ScimToken' failed as data isn't a dictionary." - ) - - args: dict[str, Any] = {} - - field = data.get("id", None) - if field is not None: - args["id"] = field - else: - args["id"] = None - - field = data.get("scim_id", None) - if field is not None: - args["scim_id"] = field - else: - args["scim_id"] = None - - field = data.get("created_at", None) - if field is not None: - args["created_at"] = parser.isoparse(field) if isinstance(field, str) else field - else: - args["created_at"] = None - - field = data.get("expires_at", None) - if field is not None: - args["expires_at"] = parser.isoparse(field) if isinstance(field, str) else field - else: - args["expires_at"] = None - - return ScimToken(**args) - - def unmarshal_CreateScimTokenResponse(data: Any) -> CreateScimTokenResponse: if not isinstance(data, dict): raise TypeError( diff --git a/scaleway/scaleway/iam/v1alpha1/types.py b/scaleway/scaleway/iam/v1alpha1/types.py index 40b182a46..1dcfa55dc 100644 --- a/scaleway/scaleway/iam/v1alpha1/types.py +++ b/scaleway/scaleway/iam/v1alpha1/types.py @@ -1627,6 +1627,11 @@ class GetSamlCertificateRequest: """ +@dataclass +class GetScimTokenRequest: + scim_token_id: str + + @dataclass class GetUserConnectionsRequest: user_id: str