code: func (c *adminClient) CanUpsertSchema(ctx context.Context, namePrefix string) (*SchemaStatus, error) {
  	defs, err := c.GetSchema()
  	if err != nil {
  		return nil, errors.Wrapf(err, "GetSchema failed")
  	}
  	version, err := c.connector.CanUpsertSchema(ctx, c.scope, namePrefix, defs)
  	if err != nil {
  		return nil, errors.Wrapf(err, "CheckSchema failed, directories: %s, excludes: %s, scope: %s", c.dirs, c.excludes, c.scope)
  	}
  	return &SchemaStatus{
  		Version: version,
  		Status:  "OK",
  	}, nil
  }
docs: // CanUpsertSchema first searches for entity definitions within configured
  // directories before checking the compatibility of each entity for the givena
  // the namePrefix. The client's scope and search directories should be
  // configured on initialization and be non-empty when CheckSchema is called.
  // An error is returned if client is misconfigured (eg. invalid scope) or if
  // any of the entities found are incompatible, not found or not uniquely named.
  // The definition of "incompatible" and "not found" may vary but is ultimately
  // defined by the client connector implementation.