Quando aggiornano le risorse (richieste PATCH), le API Cloud de Confiance by S3NS spesso utilizzano una
maschera di aggiornamento (com.google.protobuf.FieldMask). In questo modo, il server sa
esattamente quali campi intendi aggiornare, evitando sovrascritture accidentali di
altri campi.
Se non fornisci una maschera, alcune API aggiornano tutti i campi, reimpostando quelli mancanti sui valori predefiniti.
Costruire una maschera del campo
import com.google.cloud.secretmanager.v1.Secret;
import com.google.cloud.secretmanager.v1.SecretManagerServiceClient;
import com.google.cloud.secretmanager.v1.UpdateSecretRequest;
import com.google.protobuf.FieldMask;
try (SecretManagerServiceClient client = SecretManagerServiceClient.create()) {
// Prepare the resource with NEW values
Secret secret = Secret.newBuilder()
.setName("projects/my-project/secrets/my-secret")
.putLabels("env", "production") // We only want to update this field
.build();
// Create the FieldMask
// Paths MUST match the protobuf field names (snake_case)
FieldMask updateMask = FieldMask.newBuilder()
.addPaths("labels")
.build();
// Prepare the Request object
UpdateSecretRequest request = UpdateSecretRequest.newBuilder()
.setSecret(secret)
.setUpdateMask(updateMask)
.build();
// Call the API
client.updateSecret(request);
}