diff --git a/packages/google-cloud-secret-manager/samples/snippets/snippets_test.py b/packages/google-cloud-secret-manager/samples/snippets/snippets_test.py index 71243991ed6b..297aded9ca85 100644 --- a/packages/google-cloud-secret-manager/samples/snippets/snippets_test.py +++ b/packages/google-cloud-secret-manager/samples/snippets/snippets_test.py @@ -41,6 +41,7 @@ from list_secrets_with_filter import list_secrets_with_filter from quickstart import quickstart from update_secret import update_secret +from update_secret_with_alias import update_secret_with_alias from update_secret_with_etag import update_secret_with_etag @@ -290,3 +291,9 @@ def test_update_secret_with_etag(secret): project_id, secret_id, etag = secret secret = update_secret_with_etag(project_id, secret_id, etag) assert secret.labels["secretmanager"] == "rocks" + + +def test_update_secret_with_alias(secret_version): + project_id, secret_id, version_id, _ = secret_version + secret = update_secret_with_alias(project_id, secret_id) + assert secret.version_aliases["test"] == 1 diff --git a/packages/google-cloud-secret-manager/samples/snippets/update_secret_with_alias.py b/packages/google-cloud-secret-manager/samples/snippets/update_secret_with_alias.py new file mode 100644 index 000000000000..e0344942e289 --- /dev/null +++ b/packages/google-cloud-secret-manager/samples/snippets/update_secret_with_alias.py @@ -0,0 +1,56 @@ +#!/usr/bin/env python + +# Copyright 2022 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and + +import argparse + + +# [START secretmanager_update_secret_with_alias] +def update_secret_with_alias(project_id, secret_id): + """ + Update the metadata about an existing secret. + """ + + # Import the Secret Manager client library. + from google.cloud import secretmanager + + # Create the Secret Manager client. + client = secretmanager.SecretManagerServiceClient() + + # Build the resource name of the secret. + name = client.secret_path(project_id, secret_id) + + # Update the secret. + secret = {"name": name, "version_aliases": {"test": 1}} + update_mask = {"paths": ["version_aliases"]} + response = client.update_secret( + request={"secret": secret, "update_mask": update_mask} + ) + + # Print the new secret name. + print("Updated secret: {}".format(response.name)) + # [END secretmanager_update_secret_with_alias] + + return response + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter + ) + parser.add_argument("project_id", help="id of the GCP project") + parser.add_argument("--secret-id", required=True) + args = parser.parse_args() + + update_secret_with_alias(args.project_id, args.secret_id)