Skip to content
This repository was archived by the owner on Sep 16, 2023. It is now read-only.

Commit a7253c8

Browse files
yoshi-automationchingor13
authored andcommitted
feat: createDataset now an LRO (#23)
* [CHANGE ME] Re-generated to pick up changes in the API or client library generator. * ignore breaking change for LRO in this beta client
1 parent 64f65c4 commit a7253c8

File tree

11 files changed

+184
-30
lines changed

11 files changed

+184
-30
lines changed

.github/release-please.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1+
releaseType: java-yoshi
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!-- see http://www.mojohaus.org/clirr-maven-plugin/examples/ignored-differences.html -->
3+
<differences>
4+
<difference>
5+
<differenceType>7002</differenceType>
6+
<className>com/google/cloud/automl/v1/AutoMlClient</className>
7+
<method>com.google.longrunning.Operation createDataset(com.google.cloud.automl.v1.LocationName, com.google.cloud.automl.v1.Dataset)</method>
8+
</difference>
9+
<difference>
10+
<differenceType>7002</differenceType>
11+
<className>com/google/cloud/automl/v1/AutoMlClient</className>
12+
<method>com.google.longrunning.Operation createDataset(java.lang.String, com.google.cloud.automl.v1.Dataset)</method>
13+
</difference>
14+
<difference>
15+
<differenceType>7002</differenceType>
16+
<className>com/google/cloud/automl/v1/AutoMlClient</className>
17+
<method>com.google.longrunning.Operation createDataset(com.google.cloud.automl.v1.CreateDatasetRequest)</method>
18+
</difference>
19+
</differences>

google-cloud-automl/src/main/java/com/google/cloud/automl/v1/AutoMlClient.java

Lines changed: 46 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,9 @@
6161
* <pre>
6262
* <code>
6363
* try (AutoMlClient autoMlClient = AutoMlClient.create()) {
64-
* LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
6564
* Dataset dataset = Dataset.newBuilder().build();
66-
* Operation response = autoMlClient.createDataset(parent, dataset);
65+
* FieldMask updateMask = FieldMask.newBuilder().build();
66+
* Dataset response = autoMlClient.updateDataset(dataset, updateMask);
6767
* }
6868
* </code>
6969
* </pre>
@@ -193,22 +193,25 @@ public final OperationsClient getOperationsClient() {
193193
* try (AutoMlClient autoMlClient = AutoMlClient.create()) {
194194
* LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
195195
* Dataset dataset = Dataset.newBuilder().build();
196-
* Operation response = autoMlClient.createDataset(parent, dataset);
196+
* Dataset response = autoMlClient.createDatasetAsync(parent, dataset).get();
197197
* }
198198
* </code></pre>
199199
*
200200
* @param parent The resource name of the project to create the dataset for.
201201
* @param dataset The dataset to create.
202202
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
203203
*/
204-
public final Operation createDataset(LocationName parent, Dataset dataset) {
204+
@BetaApi(
205+
"The surface for long-running operations is not stable yet and may change in the future.")
206+
public final OperationFuture<Dataset, OperationMetadata> createDatasetAsync(
207+
LocationName parent, Dataset dataset) {
205208

206209
CreateDatasetRequest request =
207210
CreateDatasetRequest.newBuilder()
208211
.setParent(parent == null ? null : parent.toString())
209212
.setDataset(dataset)
210213
.build();
211-
return createDataset(request);
214+
return createDatasetAsync(request);
212215
}
213216

214217
// AUTO-GENERATED DOCUMENTATION AND METHOD
@@ -221,19 +224,22 @@ public final Operation createDataset(LocationName parent, Dataset dataset) {
221224
* try (AutoMlClient autoMlClient = AutoMlClient.create()) {
222225
* LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
223226
* Dataset dataset = Dataset.newBuilder().build();
224-
* Operation response = autoMlClient.createDataset(parent.toString(), dataset);
227+
* Dataset response = autoMlClient.createDatasetAsync(parent.toString(), dataset).get();
225228
* }
226229
* </code></pre>
227230
*
228231
* @param parent The resource name of the project to create the dataset for.
229232
* @param dataset The dataset to create.
230233
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
231234
*/
232-
public final Operation createDataset(String parent, Dataset dataset) {
235+
@BetaApi(
236+
"The surface for long-running operations is not stable yet and may change in the future.")
237+
public final OperationFuture<Dataset, OperationMetadata> createDatasetAsync(
238+
String parent, Dataset dataset) {
233239

234240
CreateDatasetRequest request =
235241
CreateDatasetRequest.newBuilder().setParent(parent).setDataset(dataset).build();
236-
return createDataset(request);
242+
return createDatasetAsync(request);
237243
}
238244

239245
// AUTO-GENERATED DOCUMENTATION AND METHOD
@@ -250,15 +256,44 @@ public final Operation createDataset(String parent, Dataset dataset) {
250256
* .setParent(parent.toString())
251257
* .setDataset(dataset)
252258
* .build();
253-
* Operation response = autoMlClient.createDataset(request);
259+
* Dataset response = autoMlClient.createDatasetAsync(request).get();
254260
* }
255261
* </code></pre>
256262
*
257263
* @param request The request object containing all of the parameters for the API call.
258264
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
259265
*/
260-
public final Operation createDataset(CreateDatasetRequest request) {
261-
return createDatasetCallable().call(request);
266+
@BetaApi(
267+
"The surface for long-running operations is not stable yet and may change in the future.")
268+
public final OperationFuture<Dataset, OperationMetadata> createDatasetAsync(
269+
CreateDatasetRequest request) {
270+
return createDatasetOperationCallable().futureCall(request);
271+
}
272+
273+
// AUTO-GENERATED DOCUMENTATION AND METHOD
274+
/**
275+
* Creates a dataset.
276+
*
277+
* <p>Sample code:
278+
*
279+
* <pre><code>
280+
* try (AutoMlClient autoMlClient = AutoMlClient.create()) {
281+
* LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
282+
* Dataset dataset = Dataset.newBuilder().build();
283+
* CreateDatasetRequest request = CreateDatasetRequest.newBuilder()
284+
* .setParent(parent.toString())
285+
* .setDataset(dataset)
286+
* .build();
287+
* OperationFuture&lt;Dataset, OperationMetadata&gt; future = autoMlClient.createDatasetOperationCallable().futureCall(request);
288+
* // Do something
289+
* Dataset response = future.get();
290+
* }
291+
* </code></pre>
292+
*/
293+
@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
294+
public final OperationCallable<CreateDatasetRequest, Dataset, OperationMetadata>
295+
createDatasetOperationCallable() {
296+
return stub.createDatasetOperationCallable();
262297
}
263298

264299
// AUTO-GENERATED DOCUMENTATION AND METHOD

google-cloud-automl/src/main/java/com/google/cloud/automl/v1/AutoMlSettings.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@
5353
* <p>The builder of this class is recursive, so contained classes are themselves builders. When
5454
* build() is called, the tree of builders is called to create the complete settings object.
5555
*
56-
* <p>For example, to set the total timeout of createDataset to 30 seconds:
56+
* <p>For example, to set the total timeout of updateDataset to 30 seconds:
5757
*
5858
* <pre>
5959
* <code>
6060
* AutoMlSettings.Builder autoMlSettingsBuilder =
6161
* AutoMlSettings.newBuilder();
62-
* autoMlSettingsBuilder.createDatasetSettings().getRetrySettings().toBuilder()
62+
* autoMlSettingsBuilder.updateDatasetSettings().getRetrySettings().toBuilder()
6363
* .setTotalTimeout(Duration.ofSeconds(30));
6464
* AutoMlSettings autoMlSettings = autoMlSettingsBuilder.build();
6565
* </code>
@@ -73,6 +73,14 @@ public UnaryCallSettings<CreateDatasetRequest, Operation> createDatasetSettings(
7373
return ((AutoMlStubSettings) getStubSettings()).createDatasetSettings();
7474
}
7575

76+
/** Returns the object with the settings used for calls to createDataset. */
77+
@BetaApi(
78+
"The surface for long-running operations is not stable yet and may change in the future.")
79+
public OperationCallSettings<CreateDatasetRequest, Dataset, OperationMetadata>
80+
createDatasetOperationSettings() {
81+
return ((AutoMlStubSettings) getStubSettings()).createDatasetOperationSettings();
82+
}
83+
7684
/** Returns the object with the settings used for calls to updateDataset. */
7785
public UnaryCallSettings<UpdateDatasetRequest, Dataset> updateDatasetSettings() {
7886
return ((AutoMlStubSettings) getStubSettings()).updateDatasetSettings();
@@ -286,6 +294,14 @@ public UnaryCallSettings.Builder<CreateDatasetRequest, Operation> createDatasetS
286294
return getStubSettingsBuilder().createDatasetSettings();
287295
}
288296

297+
/** Returns the builder for the settings used for calls to createDataset. */
298+
@BetaApi(
299+
"The surface for long-running operations is not stable yet and may change in the future.")
300+
public OperationCallSettings.Builder<CreateDatasetRequest, Dataset, OperationMetadata>
301+
createDatasetOperationSettings() {
302+
return getStubSettingsBuilder().createDatasetOperationSettings();
303+
}
304+
289305
/** Returns the builder for the settings used for calls to updateDataset. */
290306
public UnaryCallSettings.Builder<UpdateDatasetRequest, Dataset> updateDatasetSettings() {
291307
return getStubSettingsBuilder().updateDatasetSettings();

google-cloud-automl/src/main/java/com/google/cloud/automl/v1/package-info.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@
4040
* <pre>
4141
* <code>
4242
* try (AutoMlClient autoMlClient = AutoMlClient.create()) {
43-
* LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
4443
* Dataset dataset = Dataset.newBuilder().build();
45-
* Operation response = autoMlClient.createDataset(parent, dataset);
44+
* FieldMask updateMask = FieldMask.newBuilder().build();
45+
* Dataset response = autoMlClient.updateDataset(dataset, updateMask);
4646
* }
4747
* </code>
4848
* </pre>

google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/AutoMlStub.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,12 @@ public OperationsStub getOperationsStub() {
6464
throw new UnsupportedOperationException("Not implemented: getOperationsStub()");
6565
}
6666

67+
@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
68+
public OperationCallable<CreateDatasetRequest, Dataset, OperationMetadata>
69+
createDatasetOperationCallable() {
70+
throw new UnsupportedOperationException("Not implemented: createDatasetOperationCallable()");
71+
}
72+
6773
public UnaryCallable<CreateDatasetRequest, Operation> createDatasetCallable() {
6874
throw new UnsupportedOperationException("Not implemented: createDatasetCallable()");
6975
}

google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/AutoMlStubSettings.java

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,13 +92,13 @@
9292
* <p>The builder of this class is recursive, so contained classes are themselves builders. When
9393
* build() is called, the tree of builders is called to create the complete settings object.
9494
*
95-
* <p>For example, to set the total timeout of createDataset to 30 seconds:
95+
* <p>For example, to set the total timeout of updateDataset to 30 seconds:
9696
*
9797
* <pre>
9898
* <code>
9999
* AutoMlStubSettings.Builder autoMlSettingsBuilder =
100100
* AutoMlStubSettings.newBuilder();
101-
* autoMlSettingsBuilder.createDatasetSettings().getRetrySettings().toBuilder()
101+
* autoMlSettingsBuilder.updateDatasetSettings().getRetrySettings().toBuilder()
102102
* .setTotalTimeout(Duration.ofSeconds(30));
103103
* AutoMlStubSettings autoMlSettings = autoMlSettingsBuilder.build();
104104
* </code>
@@ -112,6 +112,8 @@ public class AutoMlStubSettings extends StubSettings<AutoMlStubSettings> {
112112
ImmutableList.<String>builder().add("https://www.googleapis.com/auth/cloud-platform").build();
113113

114114
private final UnaryCallSettings<CreateDatasetRequest, Operation> createDatasetSettings;
115+
private final OperationCallSettings<CreateDatasetRequest, Dataset, OperationMetadata>
116+
createDatasetOperationSettings;
115117
private final UnaryCallSettings<UpdateDatasetRequest, Dataset> updateDatasetSettings;
116118
private final UnaryCallSettings<GetDatasetRequest, Dataset> getDatasetSettings;
117119
private final PagedCallSettings<
@@ -149,6 +151,13 @@ public UnaryCallSettings<CreateDatasetRequest, Operation> createDatasetSettings(
149151
return createDatasetSettings;
150152
}
151153

154+
/** Returns the object with the settings used for calls to createDataset. */
155+
@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
156+
public OperationCallSettings<CreateDatasetRequest, Dataset, OperationMetadata>
157+
createDatasetOperationSettings() {
158+
return createDatasetOperationSettings;
159+
}
160+
152161
/** Returns the object with the settings used for calls to updateDataset. */
153162
public UnaryCallSettings<UpdateDatasetRequest, Dataset> updateDatasetSettings() {
154163
return updateDatasetSettings;
@@ -325,6 +334,7 @@ protected AutoMlStubSettings(Builder settingsBuilder) throws IOException {
325334
super(settingsBuilder);
326335

327336
createDatasetSettings = settingsBuilder.createDatasetSettings().build();
337+
createDatasetOperationSettings = settingsBuilder.createDatasetOperationSettings().build();
328338
updateDatasetSettings = settingsBuilder.updateDatasetSettings().build();
329339
getDatasetSettings = settingsBuilder.getDatasetSettings().build();
330340
listDatasetsSettings = settingsBuilder.listDatasetsSettings().build();
@@ -521,6 +531,8 @@ public static class Builder extends StubSettings.Builder<AutoMlStubSettings, Bui
521531
private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;
522532

523533
private final UnaryCallSettings.Builder<CreateDatasetRequest, Operation> createDatasetSettings;
534+
private final OperationCallSettings.Builder<CreateDatasetRequest, Dataset, OperationMetadata>
535+
createDatasetOperationSettings;
524536
private final UnaryCallSettings.Builder<UpdateDatasetRequest, Dataset> updateDatasetSettings;
525537
private final UnaryCallSettings.Builder<GetDatasetRequest, Dataset> getDatasetSettings;
526538
private final PagedCallSettings.Builder<
@@ -597,6 +609,8 @@ protected Builder(ClientContext clientContext) {
597609

598610
createDatasetSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
599611

612+
createDatasetOperationSettings = OperationCallSettings.newBuilder();
613+
600614
updateDatasetSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
601615

602616
getDatasetSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
@@ -734,6 +748,29 @@ private static Builder initDefaults(Builder builder) {
734748
.listModelEvaluationsSettings()
735749
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
736750
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
751+
builder
752+
.createDatasetOperationSettings()
753+
.setInitialCallSettings(
754+
UnaryCallSettings
755+
.<CreateDatasetRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
756+
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
757+
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"))
758+
.build())
759+
.setResponseTransformer(
760+
ProtoOperationTransformers.ResponseTransformer.create(Dataset.class))
761+
.setMetadataTransformer(
762+
ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
763+
.setPollingAlgorithm(
764+
OperationTimedPollAlgorithm.create(
765+
RetrySettings.newBuilder()
766+
.setInitialRetryDelay(Duration.ofMillis(500L))
767+
.setRetryDelayMultiplier(1.5)
768+
.setMaxRetryDelay(Duration.ofMillis(5000L))
769+
.setInitialRpcTimeout(Duration.ZERO) // ignored
770+
.setRpcTimeoutMultiplier(1.0) // ignored
771+
.setMaxRpcTimeout(Duration.ZERO) // ignored
772+
.setTotalTimeout(Duration.ofMillis(300000L))
773+
.build()));
737774
builder
738775
.deleteDatasetOperationSettings()
739776
.setInitialCallSettings(
@@ -853,6 +890,7 @@ protected Builder(AutoMlStubSettings settings) {
853890
super(settings);
854891

855892
createDatasetSettings = settings.createDatasetSettings.toBuilder();
893+
createDatasetOperationSettings = settings.createDatasetOperationSettings.toBuilder();
856894
updateDatasetSettings = settings.updateDatasetSettings.toBuilder();
857895
getDatasetSettings = settings.getDatasetSettings.toBuilder();
858896
listDatasetsSettings = settings.listDatasetsSettings.toBuilder();
@@ -911,6 +949,14 @@ public UnaryCallSettings.Builder<CreateDatasetRequest, Operation> createDatasetS
911949
return createDatasetSettings;
912950
}
913951

952+
/** Returns the builder for the settings used for calls to createDataset. */
953+
@BetaApi(
954+
"The surface for use by generated code is not stable yet and may change in the future.")
955+
public OperationCallSettings.Builder<CreateDatasetRequest, Dataset, OperationMetadata>
956+
createDatasetOperationSettings() {
957+
return createDatasetOperationSettings;
958+
}
959+
914960
/** Returns the builder for the settings used for calls to updateDataset. */
915961
public UnaryCallSettings.Builder<UpdateDatasetRequest, Dataset> updateDatasetSettings() {
916962
return updateDatasetSettings;

google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/GrpcAutoMlStub.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,8 @@ public class GrpcAutoMlStub extends AutoMlStub {
187187
private final GrpcOperationsStub operationsStub;
188188

189189
private final UnaryCallable<CreateDatasetRequest, Operation> createDatasetCallable;
190+
private final OperationCallable<CreateDatasetRequest, Dataset, OperationMetadata>
191+
createDatasetOperationCallable;
190192
private final UnaryCallable<UpdateDatasetRequest, Dataset> updateDatasetCallable;
191193
private final UnaryCallable<GetDatasetRequest, Dataset> getDatasetCallable;
192194
private final UnaryCallable<ListDatasetsRequest, ListDatasetsResponse> listDatasetsCallable;
@@ -443,6 +445,12 @@ public Map<String, String> extract(ListModelEvaluationsRequest request) {
443445
this.createDatasetCallable =
444446
callableFactory.createUnaryCallable(
445447
createDatasetTransportSettings, settings.createDatasetSettings(), clientContext);
448+
this.createDatasetOperationCallable =
449+
callableFactory.createOperationCallable(
450+
createDatasetTransportSettings,
451+
settings.createDatasetOperationSettings(),
452+
clientContext,
453+
this.operationsStub);
446454
this.updateDatasetCallable =
447455
callableFactory.createUnaryCallable(
448456
updateDatasetTransportSettings, settings.updateDatasetSettings(), clientContext);
@@ -536,6 +544,12 @@ public GrpcOperationsStub getOperationsStub() {
536544
return operationsStub;
537545
}
538546

547+
@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
548+
public OperationCallable<CreateDatasetRequest, Dataset, OperationMetadata>
549+
createDatasetOperationCallable() {
550+
return createDatasetOperationCallable;
551+
}
552+
539553
public UnaryCallable<CreateDatasetRequest, Operation> createDatasetCallable() {
540554
return createDatasetCallable;
541555
}

0 commit comments

Comments
 (0)