Create policy tag

Create a new policy tag.

Code sample

Go

Before trying this sample, follow the Go setup instructions in the Data Catalog quickstart using client libraries. For more information, see the Data Catalog Go API reference documentation.

import (
	"context"
	"fmt"
	"io"

	datacatalog "cloud.google.com/go/datacatalog/apiv1beta1"
	datacatalogpb "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1"
)

// createPolicyTag creates a policy tag resource under a given parent taxonomy.
//
// It optionally accepts a parent ID, which can be used to create a hierarchical
// relationship between tags.
func createPolicyTag(w io.Writer, parent, displayName, parentPolicyTag string) (string, error) {
	// parent := "projects/myproject/locations/us/taxonomies/1234"
	// displayName := "Example Policy Tag"
	// parentPolicyTag := "projects/myproject/locations/us/taxonomies/1234/policyTags/5678"
	ctx := context.Background()
	policyClient, err := datacatalog.NewPolicyTagManagerClient(ctx)
	if err != nil {
		return "", fmt.Errorf("datacatalog.NewPolicyTagManagerClient: %v", err)
	}
	defer policyClient.Close()

	req := &datacatalogpb.CreatePolicyTagRequest{
		Parent: parent,
		PolicyTag: &datacatalogpb.PolicyTag{
			DisplayName: displayName,
			Description: "Example description for the policy tag",
		},
	}
	if parentPolicyTag != "" {
		req.PolicyTag.ParentPolicyTag = parentPolicyTag
	}
	resp, err := policyClient.CreatePolicyTag(ctx, req)
	if err != nil {
		return "", fmt.Errorf("CreatePolicyTag: %v", err)
	}

	fmt.Fprintf(w, "PolicyTag %s was created.\n", resp.Name)
	return resp.Name, nil
}

Node.js

Before trying this sample, follow the Node.js setup instructions in the Data Catalog quickstart using client libraries. For more information, see the Data Catalog Node.js API reference documentation.

// Create a policy tag resource under a given parent taxonomy.

// Import the Google Cloud client library.
const {PolicyTagManagerClient} = require('@google-cloud/datacatalog').v1;
const policyClient = new PolicyTagManagerClient();

async function createPolicyTag() {
  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const projectId = 'my_project'; // Google Cloud Platform project
  // const location = 'us';
  // const taxonomy = 'my_existing_taxonomy';
  // const parent = `projects/${projectId}/locations/${location}/taxonomies/${taxonomy}`;

  const request = {
    parent,
    policyTag: {
      displayName: 'nodejs_samples_tag',
      //   // It optionally accepts a parent ID, which can be used to create a hierarchical
      //   // relationship between tags.
      //   parentPolicyTag: `projects/${projectId}/locations/${location}/taxonomies/${taxonomy}/policyTags/my_existing_policy_tag`
    },
  };

  try {
    const [metadata] = await policyClient.createPolicyTag(request);
    console.log(`Created policy tag: ${metadata.name}`);
  } catch (e) {
    console.error(e);
    process.exitCode = 1;
  }
}

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.