in pkg/cloud/rgraph/rnode/generic_funcs.go [68:104]
func (f *GetFuncs[GA, Alpha, Beta]) Do(
ctx context.Context,
ver meta.Version,
id *cloud.ResourceID,
tt api.TypeTrait[GA, Alpha, Beta],
) (api.Resource[GA, Alpha, Beta], error) {
current := api.NewResource(id, tt)
switch ver {
case meta.VersionGA:
raw, err := f.GA.Do(ctx, id.Key, cloud.ForceProjectID(id.ProjectID))
if err != nil {
return nil, err
}
if err := current.Set(raw); err != nil {
return nil, err
}
case meta.VersionAlpha:
raw, err := f.Alpha.Do(ctx, id.Key, cloud.ForceProjectID(id.ProjectID))
if err != nil {
return nil, err
}
if err := current.SetAlpha(raw); err != nil {
return nil, err
}
case meta.VersionBeta:
raw, err := f.Beta.Do(ctx, id.Key, cloud.ForceProjectID(id.ProjectID))
if err != nil {
return nil, err
}
if err := current.SetBeta(raw); err != nil {
return nil, err
}
default:
return nil, fmt.Errorf("getFuncs.do unsupported version %q", ver)
}
return current.Freeze()
}