@@ -107,7 +107,19 @@ BucketMetadata CreateBucketMetadataForTest() {
107107 "etag": "AYX="
108108 }],
109109 "encryption": {
110- "defaultKmsKeyName": "projects/test-project-name/locations/us-central1/keyRings/test-keyring-name/cryptoKeys/test-key-name"
110+ "defaultKmsKeyName": "projects/test-project-name/locations/us-central1/keyRings/test-keyring-name/cryptoKeys/test-key-name",
111+ "googleManagedEncryptionEnforcementConfig": {
112+ "restriction_mode": "FULLY_RESTRICTED",
113+ "effective_time": "2025-12-18T18:13:15Z"
114+ },
115+ "customerManagedEncryptionEnforcementConfig": {
116+ "restriction_mode": "NOT_RESTRICTED",
117+ "effective_time": "2025-12-18T18:13:15Z"
118+ },
119+ "customerSuppliedEncryptionEnforcementConfig": {
120+ "restriction_mode": "NOT_RESTRICTED",
121+ "effective_time": "2025-12-18T18:13:15Z"
122+ }
111123 },
112124 "etag": "XYZ=",
113125 "hierarchicalNamespace": {
@@ -224,6 +236,10 @@ TEST(BucketMetadataTest, Parse) {
224236 " projects/test-project-name/locations/us-central1/keyRings/"
225237 " test-keyring-name/cryptoKeys/test-key-name" ,
226238 actual.encryption ().default_kms_key_name );
239+ EXPECT_EQ (" FULLY_RESTRICTED" , actual.encryption ().googleManagedEncryptionEnforcementConfig .restriction_mode );
240+ EXPECT_EQ (" NOT_RESTRICTED" , actual.encryption ().customerManagedEncryptionEnforcementConfig .restriction_mode );
241+ EXPECT_EQ (" NOT_RESTRICTED" , actual.encryption ().customerSuppliedEncryptionEnforcementConfig .restriction_mode );
242+ EXPECT_EQ (" 2025-12-18T18:13:15Z" , actual.encryption ().customerSuppliedEncryptionEnforcementConfig .effective_time );
227243 EXPECT_EQ (" XYZ=" , actual.etag ());
228244 // hierarchicalNamespace
229245 ASSERT_TRUE (actual.has_hierarchical_namespace ());
@@ -493,6 +509,11 @@ TEST(BucketMetadataTest, ToJsonString) {
493509 " projects/test-project-name/locations/us-central1/keyRings/"
494510 " test-keyring-name/cryptoKeys/test-key-name" ,
495511 actual[" encryption" ].value (" defaultKmsKeyName" , " " ));
512+ nlohmann::json expected_encryption_enforcement_config{
513+ {" googleManagedEncryptionEnforcementConfig" , nlohmann::json{" restriction_mode" , " FULLY_RESTRICTED" }},
514+ {" customerManagedEncryptionEnforcementConfig" , nlohmann::json{" restriction_mode" , " NOT_RESTRICTED" }},
515+ {" customerSuppliedEncryptionEnforcementConfig" , nlohmann::json{" restriction_mode" , " NOT_RESTRICTED" }}};
516+ EXPECT_EQ (expected_encryption_enforcement_config, actual[" encryption" ]);
496517
497518 // hierarchical_namespace()
498519 ASSERT_EQ (1 , actual.count (" hierarchicalNamespace" ));
@@ -849,8 +870,13 @@ TEST(BucketMetadataTest, SetEncryption) {
849870 std::string fake_key_name =
850871 " projects/test-project-name/locations/us-central1/keyRings/"
851872 " test-keyring-name/cryptoKeys/another-test-key-name" ;
852- copy.set_encryption (BucketEncryption{fake_key_name});
873+ std::string fake_restriction_mode = " FULLY_RESTRICTED" ;
874+
875+ copy.set_encryption (BucketEncryption{fake_key_name, fake_restriction_mode});
853876 EXPECT_EQ (fake_key_name, copy.encryption ().default_kms_key_name );
877+ EXPECT_EQ (fake_restriction_mode, copy.encryption ().googleManagedEncryptionEnforcementConfig .restriction_mode );
878+ EXPECT_EQ (fake_restriction_mode, copy.encryption ().customerManagedEncryptionEnforcementConfig .restriction_mode );
879+ EXPECT_EQ (fake_restriction_mode, copy.encryption ().customerSuppliedEncryptionEnforcementConfig .restriction_mode );
854880 EXPECT_NE (expected, copy);
855881}
856882
0 commit comments