Skip to content

Commit 5c83bb9

Browse files
feat(iam): add max_api_key_expiration_duration to OrganizationSecuritySettings (#1323)
Co-authored-by: Laure-di <62625835+Laure-di@users.noreply.github.com>
1 parent 39d9dc8 commit 5c83bb9

File tree

6 files changed

+72
-0
lines changed

6 files changed

+72
-0
lines changed

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2920,6 +2920,7 @@ async def update_organization_security_settings(
29202920
grace_period_duration: Optional[str] = None,
29212921
login_attempts_before_locked: Optional[int] = None,
29222922
max_login_session_duration: Optional[str] = None,
2923+
max_api_key_expiration_duration: Optional[str] = None,
29232924
) -> OrganizationSecuritySettings:
29242925
"""
29252926
Update the security settings of an Organization.
@@ -2928,6 +2929,7 @@ async def update_organization_security_settings(
29282929
:param grace_period_duration: Duration of the grace period to renew password or enable MFA.
29292930
:param login_attempts_before_locked: Number of login attempts before the account is locked.
29302931
: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.
29312933
:return: :class:`OrganizationSecuritySettings <OrganizationSecuritySettings>`
29322934
29332935
Usage:
@@ -2950,6 +2952,7 @@ async def update_organization_security_settings(
29502952
grace_period_duration=grace_period_duration,
29512953
login_attempts_before_locked=login_attempts_before_locked,
29522954
max_login_session_duration=max_login_session_duration,
2955+
max_api_key_expiration_duration=max_api_key_expiration_duration,
29532956
),
29542957
self.client,
29552958
),

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1603,6 +1603,12 @@ def unmarshal_OrganizationSecuritySettings(data: Any) -> OrganizationSecuritySet
16031603
else:
16041604
args["max_login_session_duration"] = None
16051605

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+
16061612
return OrganizationSecuritySettings(**args)
16071613

16081614

@@ -2233,6 +2239,11 @@ def marshal_UpdateOrganizationSecuritySettingsRequest(
22332239
if request.max_login_session_duration is not None:
22342240
output["max_login_session_duration"] = request.max_login_session_duration
22352241

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+
22362247
return output
22372248

22382249

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

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2139,6 +2139,23 @@ class OrganizationSecuritySettings:
21392139
Maximum duration a login session will stay active before needing to relogin.
21402140
"""
21412141

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+
21422159

21432160
@dataclass
21442161
class ParseSamlMetadataRequest:
@@ -2373,6 +2390,11 @@ class UpdateOrganizationSecuritySettingsRequest:
23732390
Maximum duration a login session will stay active before needing to relogin.
23742391
"""
23752392

2393+
max_api_key_expiration_duration: Optional[str] = None
2394+
"""
2395+
Maximum duration the `expires_at` field of an API key can represent. A value of 0 means there is no maximum duration.
2396+
"""
2397+
23762398

23772399
@dataclass
23782400
class UpdatePolicyRequest:

scaleway/scaleway/iam/v1alpha1/api.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2920,6 +2920,7 @@ def update_organization_security_settings(
29202920
grace_period_duration: Optional[str] = None,
29212921
login_attempts_before_locked: Optional[int] = None,
29222922
max_login_session_duration: Optional[str] = None,
2923+
max_api_key_expiration_duration: Optional[str] = None,
29232924
) -> OrganizationSecuritySettings:
29242925
"""
29252926
Update the security settings of an Organization.
@@ -2928,6 +2929,7 @@ def update_organization_security_settings(
29282929
:param grace_period_duration: Duration of the grace period to renew password or enable MFA.
29292930
:param login_attempts_before_locked: Number of login attempts before the account is locked.
29302931
: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.
29312933
:return: :class:`OrganizationSecuritySettings <OrganizationSecuritySettings>`
29322934
29332935
Usage:
@@ -2950,6 +2952,7 @@ def update_organization_security_settings(
29502952
grace_period_duration=grace_period_duration,
29512953
login_attempts_before_locked=login_attempts_before_locked,
29522954
max_login_session_duration=max_login_session_duration,
2955+
max_api_key_expiration_duration=max_api_key_expiration_duration,
29532956
),
29542957
self.client,
29552958
),

scaleway/scaleway/iam/v1alpha1/marshalling.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1603,6 +1603,12 @@ def unmarshal_OrganizationSecuritySettings(data: Any) -> OrganizationSecuritySet
16031603
else:
16041604
args["max_login_session_duration"] = None
16051605

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+
16061612
return OrganizationSecuritySettings(**args)
16071613

16081614

@@ -2233,6 +2239,11 @@ def marshal_UpdateOrganizationSecuritySettingsRequest(
22332239
if request.max_login_session_duration is not None:
22342240
output["max_login_session_duration"] = request.max_login_session_duration
22352241

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+
22362247
return output
22372248

22382249

scaleway/scaleway/iam/v1alpha1/types.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2139,6 +2139,23 @@ class OrganizationSecuritySettings:
21392139
Maximum duration a login session will stay active before needing to relogin.
21402140
"""
21412141

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+
21422159

21432160
@dataclass
21442161
class ParseSamlMetadataRequest:
@@ -2373,6 +2390,11 @@ class UpdateOrganizationSecuritySettingsRequest:
23732390
Maximum duration a login session will stay active before needing to relogin.
23742391
"""
23752392

2393+
max_api_key_expiration_duration: Optional[str] = None
2394+
"""
2395+
Maximum duration the `expires_at` field of an API key can represent. A value of 0 means there is no maximum duration.
2396+
"""
2397+
23762398

23772399
@dataclass
23782400
class UpdatePolicyRequest:

0 commit comments

Comments
 (0)