public async Task <Backup> CreateBackupWithEncryptionKeyAsync(string projectId, string instanceId, string databaseId, string backupId, CryptoKeyName kmsKeyName) { // Create a DatabaseAdminClient instance. DatabaseAdminClient databaseAdminClient = DatabaseAdminClient.Create(); // Create the CreateBackupRequest with encryption configuration. CreateBackupRequest request = new CreateBackupRequest { ParentAsInstanceName = InstanceName.FromProjectInstance(projectId, instanceId), BackupId = backupId, Backup = new Backup { DatabaseAsDatabaseName = DatabaseName.FromProjectInstanceDatabase(projectId, instanceId, databaseId), ExpireTime = DateTime.UtcNow.AddDays(14).ToTimestamp(), }, EncryptionConfig = new CreateBackupEncryptionConfig { EncryptionType = CreateBackupEncryptionConfig.Types.EncryptionType.CustomerManagedEncryption, KmsKeyNameAsCryptoKeyName = kmsKeyName, }, }; // Execute the CreateBackup request. var operation = await databaseAdminClient.CreateBackupAsync(request); Console.WriteLine("Waiting for the operation to finish."); // Poll until the returned long-running operation is complete. var completedResponse = await operation.PollUntilCompletedAsync(); if (completedResponse.IsFaulted) { Console.WriteLine($"Error while creating backup: {completedResponse.Exception}"); throw completedResponse.Exception; } var backup = completedResponse.Result; Console.WriteLine($"Backup {backup.Name} of size {backup.SizeBytes} bytes " + $"was created at {backup.CreateTime} " + $"using encryption key {kmsKeyName}"); return(backup); }