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
4 changes: 4 additions & 0 deletions scaleway-async/scaleway_async/iam/v1alpha1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@
from .types import MFAOTP
from .types import Organization
from .types import OrganizationSecuritySettings
from .types import ParseSamlMetadataRequest
from .types import ParseSamlMetadataResponse
from .types import RemoveGroupMemberRequest
from .types import RemoveUserConnectionRequest
from .types import Saml
Expand Down Expand Up @@ -248,6 +250,8 @@
"MFAOTP",
"Organization",
"OrganizationSecuritySettings",
"ParseSamlMetadataRequest",
"ParseSamlMetadataResponse",
"RemoveGroupMemberRequest",
"RemoveUserConnectionRequest",
"Saml",
Expand Down
39 changes: 39 additions & 0 deletions scaleway-async/scaleway_async/iam/v1alpha1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
from typing import Optional

from scaleway_core.api import API
from scaleway_core.bridge import (
ScwFile,
)
from scaleway_core.utils import (
OneOfPossibility,
random_name,
Expand Down Expand Up @@ -64,6 +67,8 @@
MFAOTP,
Organization,
OrganizationSecuritySettings,
ParseSamlMetadataRequest,
ParseSamlMetadataResponse,
PermissionSet,
Policy,
Quotum,
Expand Down Expand Up @@ -123,6 +128,7 @@
unmarshal_MFAOTP,
unmarshal_Organization,
unmarshal_OrganizationSecuritySettings,
unmarshal_ParseSamlMetadataResponse,
unmarshal_Saml,
unmarshal_SetRulesResponse,
unmarshal_ValidateUserMFAOTPResponse,
Expand All @@ -137,6 +143,7 @@
marshal_CreateSSHKeyRequest,
marshal_CreateUserRequest,
marshal_JoinUserConnectionRequest,
marshal_ParseSamlMetadataRequest,
marshal_RemoveGroupMemberRequest,
marshal_RemoveUserConnectionRequest,
marshal_SetGroupMembersRequest,
Expand Down Expand Up @@ -3188,6 +3195,38 @@ async def delete_saml(

self._throw_on_error(res)

async def parse_saml_metadata(
self,
*,
file: ScwFile,
) -> ParseSamlMetadataResponse:
"""
Parse SAML xml metadata file.
:param file:
:return: :class:`ParseSamlMetadataResponse <ParseSamlMetadataResponse>`

Usage:
::

result = await api.parse_saml_metadata(
file=,
)
"""

res = self._request(
"POST",
"/iam/v1alpha1/parse-saml-metadata",
body=marshal_ParseSamlMetadataRequest(
ParseSamlMetadataRequest(
file=file,
),
self.client,
),
)

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

async def list_saml_certificates(
self,
*,
Expand Down
46 changes: 46 additions & 0 deletions scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
from dateutil import parser

from scaleway_core.profile import ProfileDefaults
from scaleway_core.bridge import (
marshal_ScwFile,
)
from scaleway_core.utils import (
OneOfPossibility,
resolve_one_of,
Expand Down Expand Up @@ -56,6 +59,7 @@
MFAOTP,
Organization,
OrganizationSecuritySettings,
ParseSamlMetadataResponse,
SamlServiceProvider,
Saml,
SetRulesResponse,
Expand All @@ -73,6 +77,7 @@
CreateUserRequestMember,
CreateUserRequest,
JoinUserConnectionRequest,
ParseSamlMetadataRequest,
RemoveGroupMemberRequest,
RemoveUserConnectionRequest,
SetGroupMembersRequest,
Expand Down Expand Up @@ -1601,6 +1606,35 @@ def unmarshal_OrganizationSecuritySettings(data: Any) -> OrganizationSecuritySet
return OrganizationSecuritySettings(**args)


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

args: dict[str, Any] = {}

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

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

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

return ParseSamlMetadataResponse(**args)


def unmarshal_SamlServiceProvider(data: Any) -> SamlServiceProvider:
if not isinstance(data, dict):
raise TypeError(
Expand Down Expand Up @@ -2020,6 +2054,18 @@ def marshal_JoinUserConnectionRequest(
return output


def marshal_ParseSamlMetadataRequest(
request: ParseSamlMetadataRequest,
defaults: ProfileDefaults,
) -> dict[str, Any]:
output: dict[str, Any] = {}

if request.file is not None:
output["file"] = marshal_ScwFile(request.file, defaults)

return output


def marshal_RemoveGroupMemberRequest(
request: RemoveGroupMemberRequest,
defaults: ProfileDefaults,
Expand Down
13 changes: 13 additions & 0 deletions scaleway-async/scaleway_async/iam/v1alpha1/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

from scaleway_core.bridge import (
Region as ScwRegion,
ScwFile,
Zone as ScwZone,
)
from scaleway_core.utils import (
Expand Down Expand Up @@ -2139,6 +2140,18 @@ class OrganizationSecuritySettings:
"""


@dataclass
class ParseSamlMetadataRequest:
file: ScwFile


@dataclass
class ParseSamlMetadataResponse:
single_sign_on_url: str
entity_id: str
signing_certificates: list[str]


@dataclass
class RemoveGroupMemberRequest:
group_id: str
Expand Down
4 changes: 4 additions & 0 deletions scaleway/scaleway/iam/v1alpha1/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@
from .types import MFAOTP
from .types import Organization
from .types import OrganizationSecuritySettings
from .types import ParseSamlMetadataRequest
from .types import ParseSamlMetadataResponse
from .types import RemoveGroupMemberRequest
from .types import RemoveUserConnectionRequest
from .types import Saml
Expand Down Expand Up @@ -248,6 +250,8 @@
"MFAOTP",
"Organization",
"OrganizationSecuritySettings",
"ParseSamlMetadataRequest",
"ParseSamlMetadataResponse",
"RemoveGroupMemberRequest",
"RemoveUserConnectionRequest",
"Saml",
Expand Down
39 changes: 39 additions & 0 deletions scaleway/scaleway/iam/v1alpha1/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
from typing import Optional

from scaleway_core.api import API
from scaleway_core.bridge import (
ScwFile,
)
from scaleway_core.utils import (
OneOfPossibility,
random_name,
Expand Down Expand Up @@ -64,6 +67,8 @@
MFAOTP,
Organization,
OrganizationSecuritySettings,
ParseSamlMetadataRequest,
ParseSamlMetadataResponse,
PermissionSet,
Policy,
Quotum,
Expand Down Expand Up @@ -123,6 +128,7 @@
unmarshal_MFAOTP,
unmarshal_Organization,
unmarshal_OrganizationSecuritySettings,
unmarshal_ParseSamlMetadataResponse,
unmarshal_Saml,
unmarshal_SetRulesResponse,
unmarshal_ValidateUserMFAOTPResponse,
Expand All @@ -137,6 +143,7 @@
marshal_CreateSSHKeyRequest,
marshal_CreateUserRequest,
marshal_JoinUserConnectionRequest,
marshal_ParseSamlMetadataRequest,
marshal_RemoveGroupMemberRequest,
marshal_RemoveUserConnectionRequest,
marshal_SetGroupMembersRequest,
Expand Down Expand Up @@ -3188,6 +3195,38 @@ def delete_saml(

self._throw_on_error(res)

def parse_saml_metadata(
self,
*,
file: ScwFile,
) -> ParseSamlMetadataResponse:
"""
Parse SAML xml metadata file.
:param file:
:return: :class:`ParseSamlMetadataResponse <ParseSamlMetadataResponse>`

Usage:
::

result = api.parse_saml_metadata(
file=,
)
"""

res = self._request(
"POST",
"/iam/v1alpha1/parse-saml-metadata",
body=marshal_ParseSamlMetadataRequest(
ParseSamlMetadataRequest(
file=file,
),
self.client,
),
)

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

def list_saml_certificates(
self,
*,
Expand Down
46 changes: 46 additions & 0 deletions scaleway/scaleway/iam/v1alpha1/marshalling.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
from dateutil import parser

from scaleway_core.profile import ProfileDefaults
from scaleway_core.bridge import (
marshal_ScwFile,
)
from scaleway_core.utils import (
OneOfPossibility,
resolve_one_of,
Expand Down Expand Up @@ -56,6 +59,7 @@
MFAOTP,
Organization,
OrganizationSecuritySettings,
ParseSamlMetadataResponse,
SamlServiceProvider,
Saml,
SetRulesResponse,
Expand All @@ -73,6 +77,7 @@
CreateUserRequestMember,
CreateUserRequest,
JoinUserConnectionRequest,
ParseSamlMetadataRequest,
RemoveGroupMemberRequest,
RemoveUserConnectionRequest,
SetGroupMembersRequest,
Expand Down Expand Up @@ -1601,6 +1606,35 @@ def unmarshal_OrganizationSecuritySettings(data: Any) -> OrganizationSecuritySet
return OrganizationSecuritySettings(**args)


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

args: dict[str, Any] = {}

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

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

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

return ParseSamlMetadataResponse(**args)


def unmarshal_SamlServiceProvider(data: Any) -> SamlServiceProvider:
if not isinstance(data, dict):
raise TypeError(
Expand Down Expand Up @@ -2020,6 +2054,18 @@ def marshal_JoinUserConnectionRequest(
return output


def marshal_ParseSamlMetadataRequest(
request: ParseSamlMetadataRequest,
defaults: ProfileDefaults,
) -> dict[str, Any]:
output: dict[str, Any] = {}

if request.file is not None:
output["file"] = marshal_ScwFile(request.file, defaults)

return output


def marshal_RemoveGroupMemberRequest(
request: RemoveGroupMemberRequest,
defaults: ProfileDefaults,
Expand Down
13 changes: 13 additions & 0 deletions scaleway/scaleway/iam/v1alpha1/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@

from scaleway_core.bridge import (
Region as ScwRegion,
ScwFile,
Zone as ScwZone,
)
from scaleway_core.utils import (
Expand Down Expand Up @@ -2139,6 +2140,18 @@ class OrganizationSecuritySettings:
"""


@dataclass
class ParseSamlMetadataRequest:
file: ScwFile


@dataclass
class ParseSamlMetadataResponse:
single_sign_on_url: str
entity_id: str
signing_certificates: list[str]


@dataclass
class RemoveGroupMemberRequest:
group_id: str
Expand Down