diff --git a/scaleway-async/scaleway_async/iam/v1alpha1/api.py b/scaleway-async/scaleway_async/iam/v1alpha1/api.py index 797ea7ef..9d47e95a 100644 --- a/scaleway-async/scaleway_async/iam/v1alpha1/api.py +++ b/scaleway-async/scaleway_async/iam/v1alpha1/api.py @@ -2920,6 +2920,7 @@ async def update_organization_security_settings( grace_period_duration: Optional[str] = None, login_attempts_before_locked: Optional[int] = None, max_login_session_duration: Optional[str] = None, + max_api_key_expiration_duration: Optional[str] = None, ) -> OrganizationSecuritySettings: """ Update the security settings of an Organization. @@ -2928,6 +2929,7 @@ async def update_organization_security_settings( :param grace_period_duration: Duration of the grace period to renew password or enable MFA. :param login_attempts_before_locked: Number of login attempts before the account is locked. :param max_login_session_duration: Maximum duration a login session will stay active before needing to relogin. + :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. :return: :class:`OrganizationSecuritySettings ` Usage: @@ -2950,6 +2952,7 @@ async def update_organization_security_settings( grace_period_duration=grace_period_duration, login_attempts_before_locked=login_attempts_before_locked, max_login_session_duration=max_login_session_duration, + max_api_key_expiration_duration=max_api_key_expiration_duration, ), self.client, ), diff --git a/scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py b/scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py index bd96fceb..9146f4b0 100644 --- a/scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py +++ b/scaleway-async/scaleway_async/iam/v1alpha1/marshalling.py @@ -1603,6 +1603,12 @@ def unmarshal_OrganizationSecuritySettings(data: Any) -> OrganizationSecuritySet else: args["max_login_session_duration"] = None + field = data.get("max_api_key_expiration_duration", None) + if field is not None: + args["max_api_key_expiration_duration"] = field + else: + args["max_api_key_expiration_duration"] = None + return OrganizationSecuritySettings(**args) @@ -2233,6 +2239,11 @@ def marshal_UpdateOrganizationSecuritySettingsRequest( if request.max_login_session_duration is not None: output["max_login_session_duration"] = request.max_login_session_duration + if request.max_api_key_expiration_duration is not None: + output["max_api_key_expiration_duration"] = ( + request.max_api_key_expiration_duration + ) + return output diff --git a/scaleway-async/scaleway_async/iam/v1alpha1/types.py b/scaleway-async/scaleway_async/iam/v1alpha1/types.py index 8a94fea2..81c6644b 100644 --- a/scaleway-async/scaleway_async/iam/v1alpha1/types.py +++ b/scaleway-async/scaleway_async/iam/v1alpha1/types.py @@ -2139,6 +2139,23 @@ class OrganizationSecuritySettings: Maximum duration a login session will stay active before needing to relogin. """ + max_api_key_expiration_duration: Optional[str] = None + """ + Maximum duration the `expires_at` field of an API key can represent. A value of 0 means there is no maximum duration. + """ + + +@dataclass +class ParseSamlMetadataRequest: + file: ScwFile + + +@dataclass +class ParseSamlMetadataResponse: + single_sign_on_url: str + entity_id: str + signing_certificates: list[str] + @dataclass class ParseSamlMetadataRequest: @@ -2373,6 +2390,11 @@ class UpdateOrganizationSecuritySettingsRequest: Maximum duration a login session will stay active before needing to relogin. """ + max_api_key_expiration_duration: Optional[str] = None + """ + Maximum duration the `expires_at` field of an API key can represent. A value of 0 means there is no maximum duration. + """ + @dataclass class UpdatePolicyRequest: diff --git a/scaleway/scaleway/iam/v1alpha1/api.py b/scaleway/scaleway/iam/v1alpha1/api.py index fa30d80c..e765fc73 100644 --- a/scaleway/scaleway/iam/v1alpha1/api.py +++ b/scaleway/scaleway/iam/v1alpha1/api.py @@ -2920,6 +2920,7 @@ def update_organization_security_settings( grace_period_duration: Optional[str] = None, login_attempts_before_locked: Optional[int] = None, max_login_session_duration: Optional[str] = None, + max_api_key_expiration_duration: Optional[str] = None, ) -> OrganizationSecuritySettings: """ Update the security settings of an Organization. @@ -2928,6 +2929,7 @@ def update_organization_security_settings( :param grace_period_duration: Duration of the grace period to renew password or enable MFA. :param login_attempts_before_locked: Number of login attempts before the account is locked. :param max_login_session_duration: Maximum duration a login session will stay active before needing to relogin. + :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. :return: :class:`OrganizationSecuritySettings ` Usage: @@ -2950,6 +2952,7 @@ def update_organization_security_settings( grace_period_duration=grace_period_duration, login_attempts_before_locked=login_attempts_before_locked, max_login_session_duration=max_login_session_duration, + max_api_key_expiration_duration=max_api_key_expiration_duration, ), self.client, ), diff --git a/scaleway/scaleway/iam/v1alpha1/marshalling.py b/scaleway/scaleway/iam/v1alpha1/marshalling.py index bd96fceb..9146f4b0 100644 --- a/scaleway/scaleway/iam/v1alpha1/marshalling.py +++ b/scaleway/scaleway/iam/v1alpha1/marshalling.py @@ -1603,6 +1603,12 @@ def unmarshal_OrganizationSecuritySettings(data: Any) -> OrganizationSecuritySet else: args["max_login_session_duration"] = None + field = data.get("max_api_key_expiration_duration", None) + if field is not None: + args["max_api_key_expiration_duration"] = field + else: + args["max_api_key_expiration_duration"] = None + return OrganizationSecuritySettings(**args) @@ -2233,6 +2239,11 @@ def marshal_UpdateOrganizationSecuritySettingsRequest( if request.max_login_session_duration is not None: output["max_login_session_duration"] = request.max_login_session_duration + if request.max_api_key_expiration_duration is not None: + output["max_api_key_expiration_duration"] = ( + request.max_api_key_expiration_duration + ) + return output diff --git a/scaleway/scaleway/iam/v1alpha1/types.py b/scaleway/scaleway/iam/v1alpha1/types.py index 8a94fea2..81c6644b 100644 --- a/scaleway/scaleway/iam/v1alpha1/types.py +++ b/scaleway/scaleway/iam/v1alpha1/types.py @@ -2139,6 +2139,23 @@ class OrganizationSecuritySettings: Maximum duration a login session will stay active before needing to relogin. """ + max_api_key_expiration_duration: Optional[str] = None + """ + Maximum duration the `expires_at` field of an API key can represent. A value of 0 means there is no maximum duration. + """ + + +@dataclass +class ParseSamlMetadataRequest: + file: ScwFile + + +@dataclass +class ParseSamlMetadataResponse: + single_sign_on_url: str + entity_id: str + signing_certificates: list[str] + @dataclass class ParseSamlMetadataRequest: @@ -2373,6 +2390,11 @@ class UpdateOrganizationSecuritySettingsRequest: Maximum duration a login session will stay active before needing to relogin. """ + max_api_key_expiration_duration: Optional[str] = None + """ + Maximum duration the `expires_at` field of an API key can represent. A value of 0 means there is no maximum duration. + """ + @dataclass class UpdatePolicyRequest: