storage: force send BucketPolicyOnly

Fixes #1612. Currently BucketPolicyOnly is not being sent correctly
when it's being disabled.

Change-Id: I728741f1435ff39dc934a560612d9524dcefa194
Reviewed-on: https://code-review.googlesource.com/c/gocloud/+/46730
Reviewed-by: Frank Natividad <franknatividad@google.com>
Reviewed-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jean de Klerk <deklerk@google.com>
diff --git a/storage/bucket.go b/storage/bucket.go
index 245fb97..8091cdf 100644
--- a/storage/bucket.go
+++ b/storage/bucket.go
@@ -695,7 +695,8 @@
 	if ua.BucketPolicyOnly != nil {
 		rb.IamConfiguration = &raw.BucketIamConfiguration{
 			BucketPolicyOnly: &raw.BucketIamConfigurationBucketPolicyOnly{
-				Enabled: ua.BucketPolicyOnly.Enabled,
+				Enabled:         ua.BucketPolicyOnly.Enabled,
+				ForceSendFields: []string{"Enabled"},
 			},
 		}
 	}
diff --git a/storage/bucket_test.go b/storage/bucket_test.go
index 8fbb08a..60b1501 100644
--- a/storage/bucket_test.go
+++ b/storage/bucket_test.go
@@ -211,7 +211,8 @@
 		RetentionPolicy:       &raw.BucketRetentionPolicy{RetentionPeriod: 3600},
 		IamConfiguration: &raw.BucketIamConfiguration{
 			BucketPolicyOnly: &raw.BucketIamConfigurationBucketPolicyOnly{
-				Enabled: false,
+				Enabled:         false,
+				ForceSendFields: []string{"Enabled"},
 			},
 		},
 		Encryption: &raw.BucketEncryption{DefaultKmsKeyName: "key2"},