Ao atualizar recursos (solicitações PATCH),as APIs Google Cloud geralmente usam uma
máscara de atualização (com.google.protobuf.FieldMask). Isso informa ao servidor
exatamente quais campos você pretende atualizar, evitando substituições acidentais de
outros campos.
Se você não fornecer uma máscara, algumas APIs vão atualizar todos os campos, redefinindo os ausentes para os valores padrão.
Construir um FieldMask
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);
}