in pkg/cloud/rgraph/rnode/generic_funcs.go [132:172]
func (f *CreateFuncs[GA, Alpha, Beta]) Do(
ctx context.Context,
id *cloud.ResourceID,
r api.Resource[GA, Alpha, Beta],
) error {
// TODO: Context logging
// TODO: span
switch r.Version() {
case meta.VersionGA:
raw, err := r.ToGA()
if err != nil {
return err
}
err = f.GA.Do(ctx, id.Key, raw, cloud.ForceProjectID(id.ProjectID))
if err != nil {
return err
}
return nil
case meta.VersionAlpha:
raw, err := r.ToAlpha()
if err != nil {
return err
}
err = f.Alpha.Do(ctx, id.Key, raw, cloud.ForceProjectID(id.ProjectID))
if err != nil {
return err
}
return nil
case meta.VersionBeta:
raw, err := r.ToBeta()
if err != nil {
return err
}
err = f.Beta.Do(ctx, id.Key, raw, cloud.ForceProjectID(id.ProjectID))
if err != nil {
return err
}
return nil
}
return fmt.Errorf("createFuncs.do unsupported version %q", r.Version())
}