Skip to content

Commit c26f586

Browse files
committed
feat: update generated APIs
1 parent 08df96a commit c26f586

File tree

8 files changed

+252
-0
lines changed

8 files changed

+252
-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
@@ -112,6 +112,8 @@
112112
from .types import MFAOTP
113113
from .types import Organization
114114
from .types import OrganizationSecuritySettings
115+
from .types import ParseSamlMetadataRequest
116+
from .types import ParseSamlMetadataResponse
115117
from .types import RemoveGroupMemberRequest
116118
from .types import RemoveUserConnectionRequest
117119
from .types import Saml
@@ -248,6 +250,8 @@
248250
"MFAOTP",
249251
"Organization",
250252
"OrganizationSecuritySettings",
253+
"ParseSamlMetadataRequest",
254+
"ParseSamlMetadataResponse",
251255
"RemoveGroupMemberRequest",
252256
"RemoveUserConnectionRequest",
253257
"Saml",

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

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
from typing import Optional
66

77
from scaleway_core.api import API
8+
from scaleway_core.bridge import (
9+
ScwFile,
10+
)
811
from scaleway_core.utils import (
912
OneOfPossibility,
1013
random_name,
@@ -64,6 +67,8 @@
6467
MFAOTP,
6568
Organization,
6669
OrganizationSecuritySettings,
70+
ParseSamlMetadataRequest,
71+
ParseSamlMetadataResponse,
6772
PermissionSet,
6873
Policy,
6974
Quotum,
@@ -123,6 +128,7 @@
123128
unmarshal_MFAOTP,
124129
unmarshal_Organization,
125130
unmarshal_OrganizationSecuritySettings,
131+
unmarshal_ParseSamlMetadataResponse,
126132
unmarshal_Saml,
127133
unmarshal_SetRulesResponse,
128134
unmarshal_ValidateUserMFAOTPResponse,
@@ -137,6 +143,7 @@
137143
marshal_CreateSSHKeyRequest,
138144
marshal_CreateUserRequest,
139145
marshal_JoinUserConnectionRequest,
146+
marshal_ParseSamlMetadataRequest,
140147
marshal_RemoveGroupMemberRequest,
141148
marshal_RemoveUserConnectionRequest,
142149
marshal_SetGroupMembersRequest,
@@ -2913,6 +2920,7 @@ async def update_organization_security_settings(
29132920
grace_period_duration: Optional[str] = None,
29142921
login_attempts_before_locked: Optional[int] = None,
29152922
max_login_session_duration: Optional[str] = None,
2923+
max_api_key_expiration_duration: Optional[str] = None,
29162924
) -> OrganizationSecuritySettings:
29172925
"""
29182926
Update the security settings of an Organization.
@@ -2921,6 +2929,7 @@ async def update_organization_security_settings(
29212929
:param grace_period_duration: Duration of the grace period to renew password or enable MFA.
29222930
:param login_attempts_before_locked: Number of login attempts before the account is locked.
29232931
:param max_login_session_duration: Maximum duration a login session will stay active before needing to relogin.
2932+
:param max_api_key_expiration_duration: Maximum duration the `expires_at` field of an API key can represent. A value of 0 means there is no maximum duration.
29242933
:return: :class:`OrganizationSecuritySettings <OrganizationSecuritySettings>`
29252934
29262935
Usage:
@@ -2943,6 +2952,7 @@ async def update_organization_security_settings(
29432952
grace_period_duration=grace_period_duration,
29442953
login_attempts_before_locked=login_attempts_before_locked,
29452954
max_login_session_duration=max_login_session_duration,
2955+
max_api_key_expiration_duration=max_api_key_expiration_duration,
29462956
),
29472957
self.client,
29482958
),
@@ -3188,6 +3198,38 @@ async def delete_saml(
31883198

31893199
self._throw_on_error(res)
31903200

3201+
async def parse_saml_metadata(
3202+
self,
3203+
*,
3204+
file: ScwFile,
3205+
) -> ParseSamlMetadataResponse:
3206+
"""
3207+
Parse SAML xml metadata file.
3208+
:param file:
3209+
:return: :class:`ParseSamlMetadataResponse <ParseSamlMetadataResponse>`
3210+
3211+
Usage:
3212+
::
3213+
3214+
result = await api.parse_saml_metadata(
3215+
file=,
3216+
)
3217+
"""
3218+
3219+
res = self._request(
3220+
"POST",
3221+
"/iam/v1alpha1/parse-saml-metadata",
3222+
body=marshal_ParseSamlMetadataRequest(
3223+
ParseSamlMetadataRequest(
3224+
file=file,
3225+
),
3226+
self.client,
3227+
),
3228+
)
3229+
3230+
self._throw_on_error(res)
3231+
return unmarshal_ParseSamlMetadataResponse(res.json())
3232+
31913233
async def list_saml_certificates(
31923234
self,
31933235
*,

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

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
from dateutil import parser
66

77
from scaleway_core.profile import ProfileDefaults
8+
from scaleway_core.bridge import (
9+
marshal_ScwFile,
10+
)
811
from scaleway_core.utils import (
912
OneOfPossibility,
1013
resolve_one_of,
@@ -56,6 +59,7 @@
5659
MFAOTP,
5760
Organization,
5861
OrganizationSecuritySettings,
62+
ParseSamlMetadataResponse,
5963
SamlServiceProvider,
6064
Saml,
6165
SetRulesResponse,
@@ -73,6 +77,7 @@
7377
CreateUserRequestMember,
7478
CreateUserRequest,
7579
JoinUserConnectionRequest,
80+
ParseSamlMetadataRequest,
7681
RemoveGroupMemberRequest,
7782
RemoveUserConnectionRequest,
7883
SetGroupMembersRequest,
@@ -1598,9 +1603,44 @@ def unmarshal_OrganizationSecuritySettings(data: Any) -> OrganizationSecuritySet
15981603
else:
15991604
args["max_login_session_duration"] = None
16001605

1606+
field = data.get("max_api_key_expiration_duration", None)
1607+
if field is not None:
1608+
args["max_api_key_expiration_duration"] = field
1609+
else:
1610+
args["max_api_key_expiration_duration"] = None
1611+
16011612
return OrganizationSecuritySettings(**args)
16021613

16031614

1615+
def unmarshal_ParseSamlMetadataResponse(data: Any) -> ParseSamlMetadataResponse:
1616+
if not isinstance(data, dict):
1617+
raise TypeError(
1618+
"Unmarshalling the type 'ParseSamlMetadataResponse' failed as data isn't a dictionary."
1619+
)
1620+
1621+
args: dict[str, Any] = {}
1622+
1623+
field = data.get("single_sign_on_url", None)
1624+
if field is not None:
1625+
args["single_sign_on_url"] = field
1626+
else:
1627+
args["single_sign_on_url"] = None
1628+
1629+
field = data.get("entity_id", None)
1630+
if field is not None:
1631+
args["entity_id"] = field
1632+
else:
1633+
args["entity_id"] = None
1634+
1635+
field = data.get("signing_certificates", None)
1636+
if field is not None:
1637+
args["signing_certificates"] = field
1638+
else:
1639+
args["signing_certificates"] = None
1640+
1641+
return ParseSamlMetadataResponse(**args)
1642+
1643+
16041644
def unmarshal_SamlServiceProvider(data: Any) -> SamlServiceProvider:
16051645
if not isinstance(data, dict):
16061646
raise TypeError(
@@ -2020,6 +2060,18 @@ def marshal_JoinUserConnectionRequest(
20202060
return output
20212061

20222062

2063+
def marshal_ParseSamlMetadataRequest(
2064+
request: ParseSamlMetadataRequest,
2065+
defaults: ProfileDefaults,
2066+
) -> dict[str, Any]:
2067+
output: dict[str, Any] = {}
2068+
2069+
if request.file is not None:
2070+
output["file"] = marshal_ScwFile(request.file, defaults)
2071+
2072+
return output
2073+
2074+
20232075
def marshal_RemoveGroupMemberRequest(
20242076
request: RemoveGroupMemberRequest,
20252077
defaults: ProfileDefaults,
@@ -2187,6 +2239,11 @@ def marshal_UpdateOrganizationSecuritySettingsRequest(
21872239
if request.max_login_session_duration is not None:
21882240
output["max_login_session_duration"] = request.max_login_session_duration
21892241

2242+
if request.max_api_key_expiration_duration is not None:
2243+
output["max_api_key_expiration_duration"] = (
2244+
request.max_api_key_expiration_duration
2245+
)
2246+
21902247
return output
21912248

21922249

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
from scaleway_core.bridge import (
1111
Region as ScwRegion,
12+
ScwFile,
1213
Zone as ScwZone,
1314
)
1415
from scaleway_core.utils import (
@@ -2138,6 +2139,23 @@ class OrganizationSecuritySettings:
21382139
Maximum duration a login session will stay active before needing to relogin.
21392140
"""
21402141

2142+
max_api_key_expiration_duration: Optional[str] = None
2143+
"""
2144+
Maximum duration the `expires_at` field of an API key can represent. A value of 0 means there is no maximum duration.
2145+
"""
2146+
2147+
2148+
@dataclass
2149+
class ParseSamlMetadataRequest:
2150+
file: ScwFile
2151+
2152+
2153+
@dataclass
2154+
class ParseSamlMetadataResponse:
2155+
single_sign_on_url: str
2156+
entity_id: str
2157+
signing_certificates: list[str]
2158+
21412159

21422160
@dataclass
21432161
class RemoveGroupMemberRequest:
@@ -2360,6 +2378,11 @@ class UpdateOrganizationSecuritySettingsRequest:
23602378
Maximum duration a login session will stay active before needing to relogin.
23612379
"""
23622380

2381+
max_api_key_expiration_duration: Optional[str] = None
2382+
"""
2383+
Maximum duration the `expires_at` field of an API key can represent. A value of 0 means there is no maximum duration.
2384+
"""
2385+
23632386

23642387
@dataclass
23652388
class UpdatePolicyRequest:

scaleway/scaleway/iam/v1alpha1/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@
112112
from .types import MFAOTP
113113
from .types import Organization
114114
from .types import OrganizationSecuritySettings
115+
from .types import ParseSamlMetadataRequest
116+
from .types import ParseSamlMetadataResponse
115117
from .types import RemoveGroupMemberRequest
116118
from .types import RemoveUserConnectionRequest
117119
from .types import Saml
@@ -248,6 +250,8 @@
248250
"MFAOTP",
249251
"Organization",
250252
"OrganizationSecuritySettings",
253+
"ParseSamlMetadataRequest",
254+
"ParseSamlMetadataResponse",
251255
"RemoveGroupMemberRequest",
252256
"RemoveUserConnectionRequest",
253257
"Saml",

scaleway/scaleway/iam/v1alpha1/api.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
from typing import Optional
66

77
from scaleway_core.api import API
8+
from scaleway_core.bridge import (
9+
ScwFile,
10+
)
811
from scaleway_core.utils import (
912
OneOfPossibility,
1013
random_name,
@@ -64,6 +67,8 @@
6467
MFAOTP,
6568
Organization,
6669
OrganizationSecuritySettings,
70+
ParseSamlMetadataRequest,
71+
ParseSamlMetadataResponse,
6772
PermissionSet,
6873
Policy,
6974
Quotum,
@@ -123,6 +128,7 @@
123128
unmarshal_MFAOTP,
124129
unmarshal_Organization,
125130
unmarshal_OrganizationSecuritySettings,
131+
unmarshal_ParseSamlMetadataResponse,
126132
unmarshal_Saml,
127133
unmarshal_SetRulesResponse,
128134
unmarshal_ValidateUserMFAOTPResponse,
@@ -137,6 +143,7 @@
137143
marshal_CreateSSHKeyRequest,
138144
marshal_CreateUserRequest,
139145
marshal_JoinUserConnectionRequest,
146+
marshal_ParseSamlMetadataRequest,
140147
marshal_RemoveGroupMemberRequest,
141148
marshal_RemoveUserConnectionRequest,
142149
marshal_SetGroupMembersRequest,
@@ -2913,6 +2920,7 @@ def update_organization_security_settings(
29132920
grace_period_duration: Optional[str] = None,
29142921
login_attempts_before_locked: Optional[int] = None,
29152922
max_login_session_duration: Optional[str] = None,
2923+
max_api_key_expiration_duration: Optional[str] = None,
29162924
) -> OrganizationSecuritySettings:
29172925
"""
29182926
Update the security settings of an Organization.
@@ -2921,6 +2929,7 @@ def update_organization_security_settings(
29212929
:param grace_period_duration: Duration of the grace period to renew password or enable MFA.
29222930
:param login_attempts_before_locked: Number of login attempts before the account is locked.
29232931
:param max_login_session_duration: Maximum duration a login session will stay active before needing to relogin.
2932+
:param max_api_key_expiration_duration: Maximum duration the `expires_at` field of an API key can represent. A value of 0 means there is no maximum duration.
29242933
:return: :class:`OrganizationSecuritySettings <OrganizationSecuritySettings>`
29252934
29262935
Usage:
@@ -2943,6 +2952,7 @@ def update_organization_security_settings(
29432952
grace_period_duration=grace_period_duration,
29442953
login_attempts_before_locked=login_attempts_before_locked,
29452954
max_login_session_duration=max_login_session_duration,
2955+
max_api_key_expiration_duration=max_api_key_expiration_duration,
29462956
),
29472957
self.client,
29482958
),
@@ -3188,6 +3198,38 @@ def delete_saml(
31883198

31893199
self._throw_on_error(res)
31903200

3201+
def parse_saml_metadata(
3202+
self,
3203+
*,
3204+
file: ScwFile,
3205+
) -> ParseSamlMetadataResponse:
3206+
"""
3207+
Parse SAML xml metadata file.
3208+
:param file:
3209+
:return: :class:`ParseSamlMetadataResponse <ParseSamlMetadataResponse>`
3210+
3211+
Usage:
3212+
::
3213+
3214+
result = api.parse_saml_metadata(
3215+
file=,
3216+
)
3217+
"""
3218+
3219+
res = self._request(
3220+
"POST",
3221+
"/iam/v1alpha1/parse-saml-metadata",
3222+
body=marshal_ParseSamlMetadataRequest(
3223+
ParseSamlMetadataRequest(
3224+
file=file,
3225+
),
3226+
self.client,
3227+
),
3228+
)
3229+
3230+
self._throw_on_error(res)
3231+
return unmarshal_ParseSamlMetadataResponse(res.json())
3232+
31913233
def list_saml_certificates(
31923234
self,
31933235
*,

0 commit comments

Comments
 (0)