Saat memperbarui resource (permintaan PATCH), Google Cloud API sering menggunakan
Mask Update (com.google.protobuf.FieldMask). Hal ini memberi tahu server
dengan tepat kolom mana yang ingin Anda perbarui, sehingga mencegah penimpaan yang tidak disengaja pada
kolom lain.
Jika Anda tidak memberikan mask, beberapa API akan memperbarui semua kolom, dan mereset kolom yang tidak ada ke nilai default.
Membangun 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);
}