def test_set_encryption_configuration(object_under_test): from google.cloud.bigquery.encryption_configuration import EncryptionConfiguration assert not object_under_test.encryption_configuration object_under_test.encryption_configuration = EncryptionConfiguration( kms_key_name=KMS_KEY_NAME) assert object_under_test.encryption_configuration.kms_key_name == KMS_KEY_NAME object_under_test.encryption_configuration = None assert not object_under_test.encryption_configuration
def test_destination_encryption_configuration_setter(self): from google.cloud.bigquery.encryption_configuration import ( EncryptionConfiguration, ) kms_key_name = "kms-key-name" encryption_configuration = EncryptionConfiguration(kms_key_name) config = self._get_target_class()() config.destination_encryption_configuration = encryption_configuration expected = {"kmsKeyName": kms_key_name} self.assertEqual( config._properties["load"]["destinationEncryptionConfiguration"], expected)
def test_default_encryption_configuration_setter(self): from google.cloud.bigquery.encryption_configuration import ( EncryptionConfiguration, ) dataset = self._make_one(self.DS_REF) encryption_configuration = EncryptionConfiguration( kms_key_name=self.KMS_KEY_NAME) dataset.default_encryption_configuration = encryption_configuration self.assertEqual(dataset.default_encryption_configuration.kms_key_name, self.KMS_KEY_NAME) dataset.default_encryption_configuration = None self.assertIsNone(dataset.default_encryption_configuration)
def destination_encryption_configuration(self): """Optional[google.cloud.bigquery.encryption_configuration.EncryptionConfiguration]: Custom encryption configuration for the destination table. Custom encryption configuration (e.g., Cloud KMS keys) or :data:`None` if using default encryption. See: https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#JobConfigurationLoad.FIELDS.destination_encryption_configuration """ prop = self._get_sub_prop("destinationEncryptionConfiguration") if prop is not None: prop = EncryptionConfiguration.from_api_repr(prop) return prop
def encryption_configuration(self): """Optional[google.cloud.bigquery.encryption_configuration.EncryptionConfiguration]: Custom encryption configuration for the model. Custom encryption configuration (e.g., Cloud KMS keys) or :data:`None` if using default encryption. See `protecting data with Cloud KMS keys <https://cloud.google.com/bigquery/docs/customer-managed-encryption>`_ in the BigQuery documentation. """ prop = self._properties.get("encryptionConfiguration") if prop: prop = EncryptionConfiguration.from_api_repr(prop) return prop
def test_to_api_repr_with_encryption(self): from google.cloud.bigquery.encryption_configuration import ( EncryptionConfiguration, ) config = self._make_one() config.destination_encryption_configuration = EncryptionConfiguration( kms_key_name=self.KMS_KEY_NAME) resource = config.to_api_repr() self.assertEqual( resource, { "query": { "destinationEncryptionConfiguration": { "kmsKeyName": self.KMS_KEY_NAME } } }, )