in pkg/gcptarget/gcptarget.go [223:240]
func (g *GCPTarget) handleAsset(asset *validator.Asset) (bool, interface{}, error) {
if asset.Resource == nil {
return false, nil, fmt.Errorf("CAI asset's resource field is nil %s", asset)
}
asset2.CleanStructValue(asset.Resource.Data)
m := &protojson.MarshalOptions{
UseProtoNames: true,
}
buf, err := m.Marshal(asset)
if err != nil {
return false, nil, fmt.Errorf("marshalling to json with asset %s: %v. %w", asset.Name, asset, err)
}
var f interface{}
if err := json.Unmarshal(buf, &f); err != nil {
return false, nil, fmt.Errorf("marshalling from json with asset %s: %v. %w", asset.Name, asset, err)
}
return true, f, nil
}