2222import com .google .common .base .MoreObjects .ToStringHelper ;
2323import com .google .common .collect .ImmutableList ;
2424import com .google .common .primitives .Ints ;
25-
2625import java .util .List ;
2726import java .util .Objects ;
2827
@@ -37,6 +36,7 @@ public final class LoadJobConfiguration extends JobConfiguration implements Load
3736
3837 private final List <String > sourceUris ;
3938 private final TableId destinationTable ;
39+ private final EncryptionConfiguration destinationEncryptionConfiguration ;
4040 private final JobInfo .CreateDisposition createDisposition ;
4141 private final JobInfo .WriteDisposition writeDisposition ;
4242 private final FormatOptions formatOptions ;
@@ -53,6 +53,7 @@ public static final class Builder
5353
5454 private List <String > sourceUris ;
5555 private TableId destinationTable ;
56+ private EncryptionConfiguration destinationEncryptionConfiguration ;
5657 private JobInfo .CreateDisposition createDisposition ;
5758 private JobInfo .WriteDisposition writeDisposition ;
5859 private FormatOptions formatOptions ;
@@ -81,6 +82,8 @@ private Builder(LoadJobConfiguration loadConfiguration) {
8182 this .sourceUris = loadConfiguration .sourceUris ;
8283 this .schemaUpdateOptions = loadConfiguration .schemaUpdateOptions ;
8384 this .autodetect = loadConfiguration .autodetect ;
85+ this .destinationEncryptionConfiguration =
86+ loadConfiguration .destinationEncryptionConfiguration ;
8487 }
8588
8689 private Builder (com .google .api .services .bigquery .model .JobConfiguration configurationPb ) {
@@ -139,6 +142,10 @@ private Builder(com.google.api.services.bigquery.model.JobConfiguration configur
139142 this .schemaUpdateOptions = schemaUpdateOptionsBuilder .build ();
140143 }
141144 this .autodetect = loadConfigurationPb .getAutodetect ();
145+ if (loadConfigurationPb .getDestinationEncryptionConfiguration () != null ) {
146+ this .destinationEncryptionConfiguration = new EncryptionConfiguration .Builder (
147+ loadConfigurationPb .getDestinationEncryptionConfiguration ()).build ();
148+ }
142149 }
143150
144151
@@ -148,6 +155,13 @@ public Builder setDestinationTable(TableId destinationTable) {
148155 return this ;
149156 }
150157
158+ @ Override
159+ public Builder setDestinationEncryptionConfiguration (
160+ EncryptionConfiguration encryptionConfiguration ) {
161+ this .destinationEncryptionConfiguration = encryptionConfiguration ;
162+ return this ;
163+ }
164+
151165
152166 @ Override
153167 public Builder setCreateDisposition (JobInfo .CreateDisposition createDisposition ) {
@@ -238,6 +252,7 @@ private LoadJobConfiguration(Builder builder) {
238252 this .ignoreUnknownValues = builder .ignoreUnknownValues ;
239253 this .schemaUpdateOptions = builder .schemaUpdateOptions ;
240254 this .autodetect = builder .autodetect ;
255+ this .destinationEncryptionConfiguration = builder .destinationEncryptionConfiguration ;
241256 }
242257
243258
@@ -247,6 +262,12 @@ public TableId getDestinationTable() {
247262 }
248263
249264
265+ @ Override
266+ public EncryptionConfiguration getDestinationEncryptionConfiguration () {
267+ return destinationEncryptionConfiguration ;
268+ }
269+
270+
250271 @ Override
251272 public JobInfo .CreateDisposition getCreateDisposition () {
252273 return this .createDisposition ;
@@ -326,6 +347,7 @@ public Builder toBuilder() {
326347 ToStringHelper toStringHelper () {
327348 return super .toStringHelper ()
328349 .add ("destinationTable" , destinationTable )
350+ .add ("destinationEncryptionConfiguration" , destinationEncryptionConfiguration )
329351 .add ("createDisposition" , createDisposition )
330352 .add ("writeDisposition" , writeDisposition )
331353 .add ("formatOptions" , formatOptions )
@@ -403,6 +425,10 @@ com.google.api.services.bigquery.model.JobConfiguration toPb() {
403425 loadConfigurationPb .setSchemaUpdateOptions (schemaUpdateOptionsBuilder .build ());
404426 }
405427 loadConfigurationPb .setAutodetect (autodetect );
428+ if (destinationEncryptionConfiguration != null ) {
429+ loadConfigurationPb .setDestinationEncryptionConfiguration (
430+ destinationEncryptionConfiguration .toPb ());
431+ }
406432 return new com .google .api .services .bigquery .model .JobConfiguration ()
407433 .setLoad (loadConfigurationPb );
408434 }
0 commit comments