@@ -121,6 +121,37 @@ async def get_secret(
121121 self ._throw_on_error (res )
122122 return unmarshal_Secret (res .json ())
123123
124+ async def get_secret_by_name (
125+ self ,
126+ * ,
127+ secret_name : str ,
128+ region : Optional [Region ] = None ,
129+ ) -> Secret :
130+ """
131+ Get metadata of a Secret
132+ :param region: Region to target. If none is passed will use default region from the config
133+ :param secret_name: Name of the Secret
134+ :return: :class:`Secret <Secret>`
135+
136+ Usage:
137+ ::
138+
139+ result = await api.get_secret_by_name(secret_name="example")
140+ """
141+
142+ param_region = validate_path_param (
143+ "region" , region or self .client .default_region
144+ )
145+ param_secret_name = validate_path_param ("secret_name" , secret_name )
146+
147+ res = self ._request (
148+ "GET" ,
149+ f"/secret-manager/v1alpha1/regions/{ param_region } /secrets-by-name/{ param_secret_name } " ,
150+ )
151+
152+ self ._throw_on_error (res )
153+ return unmarshal_Secret (res .json ())
154+
124155 async def update_secret (
125156 self ,
126157 * ,
@@ -174,6 +205,7 @@ async def list_secrets(
174205 region : Optional [Region ] = None ,
175206 organization_id : Optional [str ] = None ,
176207 project_id : Optional [str ] = None ,
208+ name : Optional [str ] = None ,
177209 tags : Optional [List [str ]] = None ,
178210 order_by : ListSecretsRequestOrderBy = ListSecretsRequestOrderBy .NAME_ASC ,
179211 page : Optional [int ] = None ,
@@ -184,6 +216,7 @@ async def list_secrets(
184216 :param region: Region to target. If none is passed will use default region from the config
185217 :param organization_id: ID of an organization to filter on (optional)
186218 :param project_id: ID of a project to filter on (optional)
219+ :param name: Secret name to filter on (optional)
187220 :param tags: List of tags to filter on (optional)
188221 :param order_by:
189222 :param page:
@@ -204,6 +237,7 @@ async def list_secrets(
204237 "GET" ,
205238 f"/secret-manager/v1alpha1/regions/{ param_region } /secrets" ,
206239 params = {
240+ "name" : name ,
207241 "order_by" : order_by ,
208242 "organization_id" : organization_id
209243 or self .client .default_organization_id ,
@@ -223,6 +257,7 @@ async def list_secrets_all(
223257 region : Optional [Region ] = None ,
224258 organization_id : Optional [str ] = None ,
225259 project_id : Optional [str ] = None ,
260+ name : Optional [str ] = None ,
226261 tags : Optional [List [str ]] = None ,
227262 order_by : Optional [ListSecretsRequestOrderBy ] = None ,
228263 page : Optional [int ] = None ,
@@ -233,6 +268,7 @@ async def list_secrets_all(
233268 :param region: Region to target. If none is passed will use default region from the config
234269 :param organization_id: ID of an organization to filter on (optional)
235270 :param project_id: ID of a project to filter on (optional)
271+ :param name: Secret name to filter on (optional)
236272 :param tags: List of tags to filter on (optional)
237273 :param order_by:
238274 :param page:
@@ -253,6 +289,7 @@ async def list_secrets_all(
253289 "region" : region ,
254290 "organization_id" : organization_id ,
255291 "project_id" : project_id ,
292+ "name" : name ,
256293 "tags" : tags ,
257294 "order_by" : order_by ,
258295 "page" : page ,
@@ -374,6 +411,43 @@ async def get_secret_version(
374411 self ._throw_on_error (res )
375412 return unmarshal_SecretVersion (res .json ())
376413
414+ async def get_secret_version_by_name (
415+ self ,
416+ * ,
417+ secret_name : str ,
418+ revision : str ,
419+ region : Optional [Region ] = None ,
420+ ) -> SecretVersion :
421+ """
422+ Get metadata of a SecretVersion
423+ :param region: Region to target. If none is passed will use default region from the config
424+ :param secret_name: Name of the Secret
425+ :param revision: Revision of the SecretVersion (may be a number or "latest")
426+ :return: :class:`SecretVersion <SecretVersion>`
427+
428+ Usage:
429+ ::
430+
431+ result = await api.get_secret_version_by_name(
432+ secret_name="example",
433+ revision="example",
434+ )
435+ """
436+
437+ param_region = validate_path_param (
438+ "region" , region or self .client .default_region
439+ )
440+ param_secret_name = validate_path_param ("secret_name" , secret_name )
441+ param_revision = validate_path_param ("revision" , revision )
442+
443+ res = self ._request (
444+ "GET" ,
445+ f"/secret-manager/v1alpha1/regions/{ param_region } /secrets-by-name/{ param_secret_name } /versions/{ param_revision } " ,
446+ )
447+
448+ self ._throw_on_error (res )
449+ return unmarshal_SecretVersion (res .json ())
450+
377451 async def update_secret_version (
378452 self ,
379453 * ,
@@ -501,6 +575,85 @@ async def list_secret_versions_all(
501575 },
502576 )
503577
578+ async def list_secret_versions_by_name (
579+ self ,
580+ * ,
581+ secret_name : str ,
582+ region : Optional [Region ] = None ,
583+ page : Optional [int ] = None ,
584+ page_size : Optional [int ] = None ,
585+ status : Optional [List [SecretVersionStatus ]] = None ,
586+ ) -> ListSecretVersionsResponse :
587+ """
588+ List versions of a secret, not returning any sensitive data
589+ :param region: Region to target. If none is passed will use default region from the config
590+ :param secret_name: Name of the Secret
591+ :param page:
592+ :param page_size:
593+ :param status: Filter results by status
594+ :return: :class:`ListSecretVersionsResponse <ListSecretVersionsResponse>`
595+
596+ Usage:
597+ ::
598+
599+ result = await api.list_secret_versions_by_name(secret_name="example")
600+ """
601+
602+ param_region = validate_path_param (
603+ "region" , region or self .client .default_region
604+ )
605+ param_secret_name = validate_path_param ("secret_name" , secret_name )
606+
607+ res = self ._request (
608+ "GET" ,
609+ f"/secret-manager/v1alpha1/regions/{ param_region } /secrets-by-name/{ param_secret_name } /versions" ,
610+ params = {
611+ "page" : page ,
612+ "page_size" : page_size or self .client .default_page_size ,
613+ "status" : status ,
614+ },
615+ )
616+
617+ self ._throw_on_error (res )
618+ return unmarshal_ListSecretVersionsResponse (res .json ())
619+
620+ async def list_secret_versions_by_name_all (
621+ self ,
622+ * ,
623+ secret_name : str ,
624+ region : Optional [Region ] = None ,
625+ page : Optional [int ] = None ,
626+ page_size : Optional [int ] = None ,
627+ status : Optional [List [SecretVersionStatus ]] = None ,
628+ ) -> List [SecretVersion ]:
629+ """
630+ List versions of a secret, not returning any sensitive data
631+ :param region: Region to target. If none is passed will use default region from the config
632+ :param secret_name: Name of the Secret
633+ :param page:
634+ :param page_size:
635+ :param status: Filter results by status
636+ :return: :class:`List[ListSecretVersionsResponse] <List[ListSecretVersionsResponse]>`
637+
638+ Usage:
639+ ::
640+
641+ result = await api.list_secret_versions_by_name_all(secret_name="example")
642+ """
643+
644+ return await fetch_all_pages_async (
645+ type = ListSecretVersionsResponse ,
646+ key = "versions" ,
647+ fetcher = self .list_secret_versions_by_name ,
648+ args = {
649+ "secret_name" : secret_name ,
650+ "region" : region ,
651+ "page" : page ,
652+ "page_size" : page_size ,
653+ "status" : status ,
654+ },
655+ )
656+
504657 async def destroy_secret_version (
505658 self ,
506659 * ,
@@ -648,3 +801,40 @@ async def access_secret_version(
648801
649802 self ._throw_on_error (res )
650803 return unmarshal_AccessSecretVersionResponse (res .json ())
804+
805+ async def access_secret_version_by_name (
806+ self ,
807+ * ,
808+ secret_name : str ,
809+ revision : str ,
810+ region : Optional [Region ] = None ,
811+ ) -> AccessSecretVersionResponse :
812+ """
813+ Access a SecretVersion, returning the sensitive data
814+ :param region: Region to target. If none is passed will use default region from the config
815+ :param secret_name: Name of the Secret
816+ :param revision: Revision of the SecretVersion (may be a number or "latest")
817+ :return: :class:`AccessSecretVersionResponse <AccessSecretVersionResponse>`
818+
819+ Usage:
820+ ::
821+
822+ result = await api.access_secret_version_by_name(
823+ secret_name="example",
824+ revision="example",
825+ )
826+ """
827+
828+ param_region = validate_path_param (
829+ "region" , region or self .client .default_region
830+ )
831+ param_secret_name = validate_path_param ("secret_name" , secret_name )
832+ param_revision = validate_path_param ("revision" , revision )
833+
834+ res = self ._request (
835+ "GET" ,
836+ f"/secret-manager/v1alpha1/regions/{ param_region } /secrets-by-name/{ param_secret_name } /versions/{ param_revision } /access" ,
837+ )
838+
839+ self ._throw_on_error (res )
840+ return unmarshal_AccessSecretVersionResponse (res .json ())
0 commit comments