88 Region ,
99)
1010from scaleway_core .utils import (
11+ OneOfPossibility ,
1112 fetch_all_pages_async ,
13+ resolve_one_of ,
1214 validate_path_param ,
1315)
1416from .types import (
@@ -93,19 +95,23 @@ async def create_secret(
9395 async def get_secret (
9496 self ,
9597 * ,
96- secret_id : str ,
9798 region : Optional [Region ] = None ,
99+ secret_id : Optional [str ] = None ,
100+ secret_name : Optional [str ] = None ,
98101 ) -> Secret :
99102 """
100103 Get metadata of a Secret
101104 :param region: Region to target. If none is passed will use default region from the config
102105 :param secret_id: ID of the Secret
106+ :param secret_name: Name of the Secret (alternative to secret_id).
107+
108+ One-of ('secret_ref'): at most one of 'secret_name' could be set.
103109 :return: :class:`Secret <Secret>`
104110
105111 Usage:
106112 ::
107113
108- result = await api.get_secret(secret_id="example" )
114+ result = await api.get_secret()
109115 """
110116
111117 param_region = validate_path_param (
@@ -116,6 +122,13 @@ async def get_secret(
116122 res = self ._request (
117123 "GET" ,
118124 f"/secret-manager/v1alpha1/regions/{ param_region } /secrets/{ param_secret_id } " ,
125+ params = {
126+ ** resolve_one_of (
127+ [
128+ OneOfPossibility ("secret_name" , secret_name ),
129+ ]
130+ ),
131+ },
119132 )
120133
121134 self ._throw_on_error (res )
@@ -175,6 +188,7 @@ async def list_secrets(
175188 organization_id : Optional [str ] = None ,
176189 project_id : Optional [str ] = None ,
177190 tags : Optional [List [str ]] = None ,
191+ name : Optional [str ] = None ,
178192 order_by : ListSecretsRequestOrderBy = ListSecretsRequestOrderBy .NAME_ASC ,
179193 page : Optional [int ] = None ,
180194 page_size : Optional [int ] = None ,
@@ -185,6 +199,7 @@ async def list_secrets(
185199 :param organization_id: ID of an organization to filter on (optional)
186200 :param project_id: ID of a project to filter on (optional)
187201 :param tags: List of tags to filter on (optional)
202+ :param name: Name of the secrets (optional)
188203 :param order_by:
189204 :param page:
190205 :param page_size:
@@ -204,6 +219,7 @@ async def list_secrets(
204219 "GET" ,
205220 f"/secret-manager/v1alpha1/regions/{ param_region } /secrets" ,
206221 params = {
222+ "name" : name ,
207223 "order_by" : order_by ,
208224 "organization_id" : organization_id
209225 or self .client .default_organization_id ,
@@ -224,6 +240,7 @@ async def list_secrets_all(
224240 organization_id : Optional [str ] = None ,
225241 project_id : Optional [str ] = None ,
226242 tags : Optional [List [str ]] = None ,
243+ name : Optional [str ] = None ,
227244 order_by : Optional [ListSecretsRequestOrderBy ] = None ,
228245 page : Optional [int ] = None ,
229246 page_size : Optional [int ] = None ,
@@ -234,6 +251,7 @@ async def list_secrets_all(
234251 :param organization_id: ID of an organization to filter on (optional)
235252 :param project_id: ID of a project to filter on (optional)
236253 :param tags: List of tags to filter on (optional)
254+ :param name: Name of the secrets (optional)
237255 :param order_by:
238256 :param page:
239257 :param page_size:
@@ -254,6 +272,7 @@ async def list_secrets_all(
254272 "organization_id" : organization_id ,
255273 "project_id" : project_id ,
256274 "tags" : tags ,
275+ "name" : name ,
257276 "order_by" : order_by ,
258277 "page" : page ,
259278 "page_size" : page_size ,
@@ -340,24 +359,25 @@ async def create_secret_version(
340359 async def get_secret_version (
341360 self ,
342361 * ,
343- secret_id : str ,
344362 revision : str ,
345363 region : Optional [Region ] = None ,
364+ secret_id : Optional [str ] = None ,
365+ secret_name : Optional [str ] = None ,
346366 ) -> SecretVersion :
347367 """
348368 Get metadata of a SecretVersion
349369 :param region: Region to target. If none is passed will use default region from the config
350370 :param secret_id: ID of the Secret
351371 :param revision: Revision of the SecretVersion (may be a number or "latest")
372+ :param secret_name: Name of the Secret (alternative to secret_id).
373+
374+ One-of ('secret_ref'): at most one of 'secret_name' could be set.
352375 :return: :class:`SecretVersion <SecretVersion>`
353376
354377 Usage:
355378 ::
356379
357- result = await api.get_secret_version(
358- secret_id="example",
359- revision="example",
360- )
380+ result = await api.get_secret_version(revision="example")
361381 """
362382
363383 param_region = validate_path_param (
@@ -369,6 +389,13 @@ async def get_secret_version(
369389 res = self ._request (
370390 "GET" ,
371391 f"/secret-manager/v1alpha1/regions/{ param_region } /secrets/{ param_secret_id } /versions/{ param_revision } " ,
392+ params = {
393+ ** resolve_one_of (
394+ [
395+ OneOfPossibility ("secret_name" , secret_name ),
396+ ]
397+ ),
398+ },
372399 )
373400
374401 self ._throw_on_error (res )
@@ -425,8 +452,9 @@ async def update_secret_version(
425452 async def list_secret_versions (
426453 self ,
427454 * ,
428- secret_id : str ,
429455 region : Optional [Region ] = None ,
456+ secret_id : Optional [str ] = None ,
457+ secret_name : Optional [str ] = None ,
430458 page : Optional [int ] = None ,
431459 page_size : Optional [int ] = None ,
432460 status : Optional [List [SecretVersionStatus ]] = None ,
@@ -435,6 +463,9 @@ async def list_secret_versions(
435463 List versions of a secret, not returning any sensitive data
436464 :param region: Region to target. If none is passed will use default region from the config
437465 :param secret_id: ID of the Secret
466+ :param secret_name: Name of the Secret (alternative to secret_id).
467+
468+ One-of ('secret_ref'): at most one of 'secret_name' could be set.
438469 :param page:
439470 :param page_size:
440471 :param status: Filter results by status
@@ -443,7 +474,7 @@ async def list_secret_versions(
443474 Usage:
444475 ::
445476
446- result = await api.list_secret_versions(secret_id="example" )
477+ result = await api.list_secret_versions()
447478 """
448479
449480 param_region = validate_path_param (
@@ -458,6 +489,11 @@ async def list_secret_versions(
458489 "page" : page ,
459490 "page_size" : page_size or self .client .default_page_size ,
460491 "status" : status ,
492+ ** resolve_one_of (
493+ [
494+ OneOfPossibility ("secret_name" , secret_name ),
495+ ]
496+ ),
461497 },
462498 )
463499
@@ -467,8 +503,9 @@ async def list_secret_versions(
467503 async def list_secret_versions_all (
468504 self ,
469505 * ,
470- secret_id : str ,
471506 region : Optional [Region ] = None ,
507+ secret_id : Optional [str ] = None ,
508+ secret_name : Optional [str ] = None ,
472509 page : Optional [int ] = None ,
473510 page_size : Optional [int ] = None ,
474511 status : Optional [List [SecretVersionStatus ]] = None ,
@@ -477,6 +514,9 @@ async def list_secret_versions_all(
477514 List versions of a secret, not returning any sensitive data
478515 :param region: Region to target. If none is passed will use default region from the config
479516 :param secret_id: ID of the Secret
517+ :param secret_name: Name of the Secret (alternative to secret_id).
518+
519+ One-of ('secret_ref'): at most one of 'secret_name' could be set.
480520 :param page:
481521 :param page_size:
482522 :param status: Filter results by status
@@ -485,16 +525,17 @@ async def list_secret_versions_all(
485525 Usage:
486526 ::
487527
488- result = await api.list_secret_versions_all(secret_id="example" )
528+ result = await api.list_secret_versions_all()
489529 """
490530
491531 return await fetch_all_pages_async (
492532 type = ListSecretVersionsResponse ,
493533 key = "versions" ,
494534 fetcher = self .list_secret_versions ,
495535 args = {
496- "secret_id" : secret_id ,
497536 "region" : region ,
537+ "secret_id" : secret_id ,
538+ "secret_name" : secret_name ,
498539 "page" : page ,
499540 "page_size" : page_size ,
500541 "status" : status ,
@@ -615,24 +656,25 @@ async def disable_secret_version(
615656 async def access_secret_version (
616657 self ,
617658 * ,
618- secret_id : str ,
619659 revision : str ,
620660 region : Optional [Region ] = None ,
661+ secret_id : Optional [str ] = None ,
662+ secret_name : Optional [str ] = None ,
621663 ) -> AccessSecretVersionResponse :
622664 """
623665 Access a SecretVersion, returning the sensitive data
624666 :param region: Region to target. If none is passed will use default region from the config
625667 :param secret_id: ID of the Secret
626- :param revision: Revision of the SecretVersion (may be a number or "latest")
668+ :param revision: Revision of the SecretVersion (may be a number, "latest" or "latest_enabled")
669+ :param secret_name: Name of the Secret (alternative to secret_id).
670+
671+ One-of ('secret_ref'): at most one of 'secret_name' could be set.
627672 :return: :class:`AccessSecretVersionResponse <AccessSecretVersionResponse>`
628673
629674 Usage:
630675 ::
631676
632- result = await api.access_secret_version(
633- secret_id="example",
634- revision="example",
635- )
677+ result = await api.access_secret_version(revision="example")
636678 """
637679
638680 param_region = validate_path_param (
@@ -644,6 +686,13 @@ async def access_secret_version(
644686 res = self ._request (
645687 "GET" ,
646688 f"/secret-manager/v1alpha1/regions/{ param_region } /secrets/{ param_secret_id } /versions/{ param_revision } /access" ,
689+ params = {
690+ ** resolve_one_of (
691+ [
692+ OneOfPossibility ("secret_name" , secret_name ),
693+ ]
694+ ),
695+ },
647696 )
648697
649698 self ._throw_on_error (res )
0 commit comments