code: func (g *Cloud) CreateTPU(ctx context.Context, name, zone string, node *tpuapi.Node) (*tpuapi.Node, error) {
  	var err error
  	mc := newTPUMetricContext("create", zone)
  	defer mc.Observe(err)
  
  	var op *tpuapi.Operation
  	parent := getTPUParentName(g.projectID, zone)
  	op, err = g.tpuService.projects.Locations.Nodes.Create(parent, node).NodeId(name).Do()
  	if err != nil {
  		return nil, err
  	}
  	klog.V(2).Infof("Creating Cloud TPU %q in zone %q with operation %q", name, zone, op.Name)
  
  	op, err = g.waitForTPUOp(ctx, op)
  	if err != nil {
  		return nil, err
  	}
  	err = getErrorFromTPUOp(op)
  	if err != nil {
  		return nil, err
  	}
  
  	output := new(tpuapi.Node)
  	err = json.Unmarshal(op.Response, output)
  	if err != nil {
  		err = fmt.Errorf("failed to unmarshal response from operation %q: response = %v, err = %v", op.Name, op.Response, err)
  		return nil, err
  	}
  	return output, nil
  }
docs: // CreateTPU creates the Cloud TPU node with the specified name in the
  // specified zone.