List secret versions containing a filter
Stay organized with collections
Save and categorize content based on your preferences.
Shows how to list all secret versions and metadata for a secret with a specified filter.
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[],[],null,["# List secret versions containing a filter\n\nShows how to list all secret versions and metadata for a secret with a specified filter.\n\nCode sample\n-----------\n\n### Go\n\n\nTo learn how to install and use the client library for Secret Manager, see\n[Secret Manager client libraries](/secret-manager/docs/reference/libraries).\n\n\nTo authenticate to Secret Manager, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n import (\n \t\"context\"\n \t\"fmt\"\n \t\"io\"\n\n \tsecretmanager \"cloud.google.com/go/secretmanager/apiv1\"\n \t\"cloud.google.com/go/secretmanager/apiv1/secretmanagerpb\"\n \t\"google.golang.org/api/iterator\"\n )\n\n // listSecretVersionsWithFilter lists all filter-matching secret versions in the given\n // secret and their metadata.\n func listSecretVersionsWithFilter(w io.Writer, parent string, filter string) error {\n \t// parent := \"projects/my-project/secrets/my-secret\"\n \t// Follow https://cloud.google.com/secret-manager/docs/filtering\n \t// for filter syntax and examples.\n \t// filter := \"create_time\u003e2021-01-01T00:00:00Z\"\n\n \t// Create the client.\n \tctx := context.Background()\n \tclient, err := secretmanager.https://cloud.google.com/go/docs/reference/cloud.google.com/go/secretmanager/latest/apiv1.html#cloud_google_com_go_secretmanager_apiv1_Client_NewClient(ctx)\n \tif err != nil {\n \t\treturn fmt.Errorf(\"failed to create secretmanager client: %w\", err)\n \t}\n \tdefer client.https://cloud.google.com/go/docs/reference/cloud.google.com/go/secretmanager/latest/apiv1.html#cloud_google_com_go_secretmanager_apiv1_Client_Close()\n\n \t// Build the request.\n \treq := &secretmanagerpb.ListSecretVersionsRequest{\n \t\tParent: parent,\n \t\tFilter: filter,\n \t}\n\n \t// Call the API.\n \tit := client.ListSecretVersions(ctx, req)\n \tfor {\n \t\tresp, err := it.Next()\n \t\tif err == iterator.Done {\n \t\t\tbreak\n \t\t}\n\n \t\tif err != nil {\n \t\t\treturn fmt.Errorf(\"failed to list secret versions: %w\", err)\n \t\t}\n\n \t\tfmt.Fprintf(w, \"Found secret version %s with state %s\\n\",\n \t\t\tresp.Name, resp.State)\n \t}\n\n \treturn nil\n }\n\n### Java\n\n\nTo learn how to install and use the client library for Secret Manager, see\n[Secret Manager client libraries](/secret-manager/docs/reference/libraries).\n\n\nTo authenticate to Secret Manager, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n import com.google.cloud.secretmanager.v1.https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.ListSecretVersionsRequest.html;\n import com.google.cloud.secretmanager.v1.https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.SecretManagerServiceClient.html;\n import com.google.cloud.secretmanager.v1.https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.SecretManagerServiceClient.html.https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.SecretManagerServiceClient.ListSecretVersionsPagedResponse.html;\n import com.google.cloud.secretmanager.v1.https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.SecretName.html;\n import java.io.IOException;\n\n public class ListSecretVersionsWithFilter {\n\n public static void listSecretVersions() throws IOException {\n // TODO(developer): Replace these variables before running the sample.\n String projectId = \"your-project-id\";\n String secretId = \"your-secret-id\";\n // Follow https://cloud.google.com/secret-manager/docs/filtering\n // for filter syntax and examples.\n String filter = \"create_time\u003e2021-01-01T00:00:00Z\";\n listSecretVersions(projectId, secretId, filter);\n }\n\n // List all secret versions for a secret.\n public static void listSecretVersions(String projectId, String secretId, String filter)\n throws IOException {\n // Initialize client that will be used to send requests. This client only needs to be created\n // once, and can be reused for multiple requests. After completing all of your requests, call\n // the \"close\" method on the client to safely clean up any remaining background resources.\n try (https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.SecretManagerServiceClient.html client = https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.SecretManagerServiceClient.html.create()) {\n // Build the parent name.\n https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.SecretName.html secretName = https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.SecretName.html.of(projectId, secretId);\n\n // Get filtered versions.\n https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.ListSecretVersionsRequest.html request =\n https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.ListSecretVersionsRequest.html.newBuilder()\n .setParent(secretName.https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.SecretName.html#com_google_cloud_secretmanager_v1_SecretName_toString__())\n .setFilter(filter)\n .build();\n\n https://cloud.google.com/java/docs/reference/google-cloud-secretmanager/latest/com.google.cloud.secretmanager.v1.SecretManagerServiceClient.ListSecretVersionsPagedResponse.html pagedResponse = client.listSecretVersions(request);\n\n // List all versions and their state.\n pagedResponse\n .iterateAll()\n .forEach(\n version -\u003e {\n System.out.printf(\"Secret version %s, %s\\n\", version.getName(), version.getState());\n });\n }\n }\n }\n\n### Python\n\n\nTo learn how to install and use the client library for Secret Manager, see\n[Secret Manager client libraries](/secret-manager/docs/reference/libraries).\n\n\nTo authenticate to Secret Manager, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n def list_secret_versions_with_filter(\n project_id: str, secret_id: str, filter_str: str = \"state:ENABLED\"\n ) -\u003e None:\n \"\"\"\n List all secret versions in the given secret and their metadata.\n\n Args:\n project_id: Parent project id\n secret_id: Parent secret id\n filter_str: Secret version filter, constructing according to\n https://cloud.google.com/secret-manager/docs/filtering\n \"\"\"\n\n # Import the Secret Manager client library.\n from google.cloud import secretmanager\n\n # Create the Secret Manager client.\n client = secretmanager.https://cloud.google.com/python/docs/reference/secretmanager/latest/google.cloud.secretmanager_v1.services.secret_manager_service.SecretManagerServiceClient.html()\n\n # Build the resource name of the parent secret.\n parent = client.https://cloud.google.com/python/docs/reference/secretmanager/latest/google.cloud.secretmanager_v1.services.secret_manager_service.SecretManagerServiceClient.html#google_cloud_secretmanager_v1_services_secret_manager_service_SecretManagerServiceClient_secret_path(project_id, secret_id)\n\n # List all secret versions.\n for version in client.https://cloud.google.com/python/docs/reference/secretmanager/latest/google.cloud.secretmanager_v1.services.secret_manager_service.SecretManagerServiceClient.html#google_cloud_secretmanager_v1_services_secret_manager_service_SecretManagerServiceClient_list_secret_versions(\n request={\"parent\": parent, \"filter\": filter_str}\n ):\n print(f\"Found secret version: {version.name}\")\n\nWhat's next\n-----------\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=secretmanager)."]]