Administra las máscaras de actualización

Cuando se actualizan recursos (solicitudes PATCH),las APIs de Google Cloud suelen usar una máscara de actualización (com.google.protobuf.FieldMask). Esto le indica al servidor exactamente qué campos deseas actualizar, lo que evita que se sobrescriban accidentalmente otros campos.

Si no proporcionas una máscara, algunas APIs actualizan todos los campos y restablecen los que faltan a sus valores predeterminados.

Cómo construir un 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);
}