@@ -1130,3 +1130,77 @@ async def list_secret_types_all(
11301130 "page_size" : page_size ,
11311131 },
11321132 )
1133+
1134+ async def restore_secret_version (
1135+ self ,
1136+ * ,
1137+ secret_id : str ,
1138+ revision : str ,
1139+ region : Optional [ScwRegion ] = None ,
1140+ ) -> SecretVersion :
1141+ """
1142+ Restore a version.
1143+ Restore a secret's version specified by the `region`, `secret_id` and `revision` parameters.
1144+ :param secret_id:
1145+ :param revision:
1146+ :param region: Region to target. If none is passed will use default region from the config.
1147+ :return: :class:`SecretVersion <SecretVersion>`
1148+
1149+ Usage:
1150+ ::
1151+
1152+ result = await api.restore_secret_version(
1153+ secret_id="example",
1154+ revision="example",
1155+ )
1156+ """
1157+
1158+ param_region = validate_path_param (
1159+ "region" , region or self .client .default_region
1160+ )
1161+ param_secret_id = validate_path_param ("secret_id" , secret_id )
1162+ param_revision = validate_path_param ("revision" , revision )
1163+
1164+ res = self ._request (
1165+ "POST" ,
1166+ f"/secret-manager/v1beta1/regions/{ param_region } /secrets/{ param_secret_id } /versions/{ param_revision } /restore" ,
1167+ body = {},
1168+ )
1169+
1170+ self ._throw_on_error (res )
1171+ return unmarshal_SecretVersion (res .json ())
1172+
1173+ async def restore_secret (
1174+ self ,
1175+ * ,
1176+ secret_id : str ,
1177+ region : Optional [ScwRegion ] = None ,
1178+ ) -> Secret :
1179+ """
1180+ Restore a secret.
1181+ Restore a secret and all its versions scheduled for deletion specified by the `region` and `secret_id` parameters.
1182+ :param secret_id:
1183+ :param region: Region to target. If none is passed will use default region from the config.
1184+ :return: :class:`Secret <Secret>`
1185+
1186+ Usage:
1187+ ::
1188+
1189+ result = await api.restore_secret(
1190+ secret_id="example",
1191+ )
1192+ """
1193+
1194+ param_region = validate_path_param (
1195+ "region" , region or self .client .default_region
1196+ )
1197+ param_secret_id = validate_path_param ("secret_id" , secret_id )
1198+
1199+ res = self ._request (
1200+ "POST" ,
1201+ f"/secret-manager/v1beta1/regions/{ param_region } /secrets/{ param_secret_id } /restore" ,
1202+ body = {},
1203+ )
1204+
1205+ self ._throw_on_error (res )
1206+ return unmarshal_Secret (res .json ())
0 commit comments