1818
1919import static com .google .common .base .Preconditions .checkNotNull ;
2020
21+ import com .google .api .core .BetaApi ;
2122import com .google .api .services .bigquery .model .Model ;
23+ import com .google .api .services .bigquery .model .StandardSqlField ;
24+ import com .google .api .services .bigquery .model .TrainingRun ;
2225import com .google .common .base .Function ;
2326import com .google .common .base .MoreObjects ;
2427import com .google .common .base .Strings ;
28+ import com .google .common .collect .ImmutableList ;
2529import java .io .Serializable ;
30+ import java .util .Collections ;
31+ import java .util .List ;
2632import java .util .Map ;
2733import java .util .Objects ;
2834
@@ -62,6 +68,9 @@ public Model apply(ModelInfo ModelInfo) {
6268 private final Long lastModifiedTime ;
6369 private final Long expirationTime ;
6470 private final Labels labels ;
71+ private final ImmutableList <TrainingRun > trainingRunList ;
72+ private final ImmutableList <StandardSqlField > featureColumnList ;
73+ private final ImmutableList <StandardSqlField > labelColumnList ;
6574
6675 /** A builder for {@code ModelInfo} objects. */
6776 public abstract static class Builder {
@@ -97,6 +106,12 @@ public abstract static class Builder {
97106
98107 abstract Builder setLastModifiedTime (Long lastModifiedTime );
99108
109+ abstract Builder setTrainingRuns (List <TrainingRun > trainingRunList );
110+
111+ abstract Builder setLabelColumns (List <StandardSqlField > labelColumnList );
112+
113+ abstract Builder setFeatureColumns (List <StandardSqlField > featureColumnList );
114+
100115 /** Creates a {@code ModelInfo} object. */
101116 public abstract ModelInfo build ();
102117 }
@@ -112,6 +127,9 @@ static class BuilderImpl extends Builder {
112127 private Long lastModifiedTime ;
113128 private Long expirationTime ;
114129 private Labels labels = Labels .ZERO ;
130+ private List <TrainingRun > trainingRunList = Collections .emptyList ();
131+ private List <StandardSqlField > labelColumnList = Collections .emptyList ();
132+ private List <StandardSqlField > featureColumnList = Collections .emptyList ();
115133
116134 BuilderImpl () {}
117135
@@ -124,6 +142,9 @@ static class BuilderImpl extends Builder {
124142 this .creationTime = modelInfo .creationTime ;
125143 this .lastModifiedTime = modelInfo .lastModifiedTime ;
126144 this .expirationTime = modelInfo .expirationTime ;
145+ this .trainingRunList = modelInfo .trainingRunList ;
146+ this .labelColumnList = modelInfo .labelColumnList ;
147+ this .featureColumnList = modelInfo .featureColumnList ;
127148 }
128149
129150 BuilderImpl (Model modelPb ) {
@@ -139,6 +160,15 @@ static class BuilderImpl extends Builder {
139160 this .lastModifiedTime = modelPb .getLastModifiedTime ();
140161 this .expirationTime = modelPb .getExpirationTime ();
141162 this .labels = Labels .fromPb (modelPb .getLabels ());
163+ if (modelPb .getTrainingRuns () != null ) {
164+ this .trainingRunList = modelPb .getTrainingRuns ();
165+ }
166+ if (modelPb .getLabelColumns () != null ) {
167+ this .labelColumnList = modelPb .getLabelColumns ();
168+ }
169+ if (modelPb .getFeatureColumns () != null ) {
170+ this .featureColumnList = modelPb .getFeatureColumns ();
171+ }
142172 }
143173
144174 @ Override
@@ -195,6 +225,24 @@ public Builder setLabels(Map<String, String> labels) {
195225 return this ;
196226 }
197227
228+ @ Override
229+ Builder setTrainingRuns (List <TrainingRun > trainingRunList ) {
230+ this .trainingRunList = checkNotNull (trainingRunList );
231+ return this ;
232+ }
233+
234+ @ Override
235+ Builder setLabelColumns (List <StandardSqlField > labelColumnList ) {
236+ this .labelColumnList = checkNotNull (labelColumnList );
237+ return this ;
238+ }
239+
240+ @ Override
241+ Builder setFeatureColumns (List <StandardSqlField > featureColumnList ) {
242+ this .featureColumnList = checkNotNull (featureColumnList );
243+ return this ;
244+ }
245+
198246 @ Override
199247 public ModelInfo build () {
200248 return new ModelInfo (this );
@@ -211,6 +259,9 @@ public ModelInfo build() {
211259 this .lastModifiedTime = builder .lastModifiedTime ;
212260 this .expirationTime = builder .expirationTime ;
213261 this .labels = builder .labels ;
262+ this .trainingRunList = ImmutableList .copyOf (builder .trainingRunList );
263+ this .labelColumnList = ImmutableList .copyOf (builder .labelColumnList );
264+ this .featureColumnList = ImmutableList .copyOf (builder .featureColumnList );
214265 }
215266
216267 /** Returns the hash of the model resource. */
@@ -261,6 +312,24 @@ public Map<String, String> getLabels() {
261312 return labels .userMap ();
262313 }
263314
315+ /** Returns metadata about each training run iteration. */
316+ @ BetaApi
317+ public ImmutableList <TrainingRun > getTrainingRuns () {
318+ return trainingRunList ;
319+ }
320+
321+ /** Returns information about the label columns for this model. */
322+ @ BetaApi
323+ public ImmutableList <StandardSqlField > getLabelColumns () {
324+ return labelColumnList ;
325+ }
326+
327+ /** Returns information about the feature columns for this model. */
328+ @ BetaApi
329+ public ImmutableList <StandardSqlField > getFeatureColumns () {
330+ return featureColumnList ;
331+ }
332+
264333 public Builder toBuilder () {
265334 return new BuilderImpl (this );
266335 }
@@ -277,6 +346,9 @@ public String toString() {
277346 .add ("lastModifiedTime" , lastModifiedTime )
278347 .add ("expirationTime" , expirationTime )
279348 .add ("labels" , labels )
349+ .add ("trainingRuns" , trainingRunList )
350+ .add ("labelColumns" , labelColumnList )
351+ .add ("featureColumns" , featureColumnList )
280352 .toString ();
281353 }
282354
@@ -321,6 +393,9 @@ Model toPb() {
321393 modelPb .setLastModifiedTime (lastModifiedTime );
322394 modelPb .setExpirationTime (expirationTime );
323395 modelPb .setLabels (labels .toPb ());
396+ modelPb .setTrainingRuns (trainingRunList );
397+ modelPb .setLabelColumns (labelColumnList );
398+ modelPb .setFeatureColumns (featureColumnList );
324399 return modelPb ;
325400 }
326401
0 commit comments