in fakekms/crypto_key_version_rpcs.go [149:184]
func (f *fakeKMS) UpdateCryptoKeyVersion(ctx context.Context, req *kmspb.UpdateCryptoKeyVersionRequest) (*kmspb.CryptoKeyVersion, error) {
if err := allowlist("crypto_key_version", "update_mask").check(req); err != nil {
return nil, err
}
if len(req.UpdateMask.GetPaths()) == 0 {
return nil, errInvalidArgument("no fields selected for update")
}
name, err := parseCryptoKeyVersionName(req.CryptoKeyVersion.GetName())
if err != nil {
return nil, err
}
ckv, err := f.cryptoKeyVersion(name)
if err != nil {
return nil, err
}
for _, p := range req.UpdateMask.Paths {
switch p {
case "state":
switch req.CryptoKeyVersion.State {
case kmspb.CryptoKeyVersion_ENABLED, kmspb.CryptoKeyVersion_DISABLED:
ckv.pb.State = req.CryptoKeyVersion.State
default:
return nil, errInvalidArgument("unsupported state in update call: %s",
nameForValue(kmspb.CryptoKeyVersion_CryptoKeyVersionState_name, int32(req.CryptoKeyVersion.State)))
}
default:
return nil, errInvalidArgument("unsupported update path: %s", p)
}
}
return ckv.pb, nil
}