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

feat: createDataset now an LRO #23

Merged
merged 2 commits into from Oct 9, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/release-please.yml
@@ -1 +1 @@

releaseType: java-yoshi
19 changes: 19 additions & 0 deletions google-cloud-automl/clirr-ignored-differences.xml
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- see http://www.mojohaus.org/clirr-maven-plugin/examples/ignored-differences.html -->
<differences>
<difference>
<differenceType>7002</differenceType>
<className>com/google/cloud/automl/v1/AutoMlClient</className>
<method>com.google.longrunning.Operation createDataset(com.google.cloud.automl.v1.LocationName, com.google.cloud.automl.v1.Dataset)</method>
</difference>
<difference>
<differenceType>7002</differenceType>
<className>com/google/cloud/automl/v1/AutoMlClient</className>
<method>com.google.longrunning.Operation createDataset(java.lang.String, com.google.cloud.automl.v1.Dataset)</method>
</difference>
<difference>
<differenceType>7002</differenceType>
<className>com/google/cloud/automl/v1/AutoMlClient</className>
<method>com.google.longrunning.Operation createDataset(com.google.cloud.automl.v1.CreateDatasetRequest)</method>
</difference>
</differences>
Expand Up @@ -61,9 +61,9 @@
* <pre>
* <code>
* try (AutoMlClient autoMlClient = AutoMlClient.create()) {
* LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
* Dataset dataset = Dataset.newBuilder().build();
* Operation response = autoMlClient.createDataset(parent, dataset);
* FieldMask updateMask = FieldMask.newBuilder().build();
* Dataset response = autoMlClient.updateDataset(dataset, updateMask);
* }
* </code>
* </pre>
Expand Down Expand Up @@ -193,22 +193,25 @@ public final OperationsClient getOperationsClient() {
* try (AutoMlClient autoMlClient = AutoMlClient.create()) {
* LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
* Dataset dataset = Dataset.newBuilder().build();
* Operation response = autoMlClient.createDataset(parent, dataset);
* Dataset response = autoMlClient.createDatasetAsync(parent, dataset).get();
* }
* </code></pre>
*
* @param parent The resource name of the project to create the dataset for.
* @param dataset The dataset to create.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final Operation createDataset(LocationName parent, Dataset dataset) {
@BetaApi(
"The surface for long-running operations is not stable yet and may change in the future.")
public final OperationFuture<Dataset, OperationMetadata> createDatasetAsync(
LocationName parent, Dataset dataset) {

CreateDatasetRequest request =
CreateDatasetRequest.newBuilder()
.setParent(parent == null ? null : parent.toString())
.setDataset(dataset)
.build();
return createDataset(request);
return createDatasetAsync(request);
}

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

CreateDatasetRequest request =
CreateDatasetRequest.newBuilder().setParent(parent).setDataset(dataset).build();
return createDataset(request);
return createDatasetAsync(request);
}

// AUTO-GENERATED DOCUMENTATION AND METHOD
Expand All @@ -250,15 +256,44 @@ public final Operation createDataset(String parent, Dataset dataset) {
* .setParent(parent.toString())
* .setDataset(dataset)
* .build();
* Operation response = autoMlClient.createDataset(request);
* Dataset response = autoMlClient.createDatasetAsync(request).get();
* }
* </code></pre>
*
* @param request The request object containing all of the parameters for the API call.
* @throws com.google.api.gax.rpc.ApiException if the remote call fails
*/
public final Operation createDataset(CreateDatasetRequest request) {
return createDatasetCallable().call(request);
@BetaApi(
"The surface for long-running operations is not stable yet and may change in the future.")
public final OperationFuture<Dataset, OperationMetadata> createDatasetAsync(
CreateDatasetRequest request) {
return createDatasetOperationCallable().futureCall(request);
}

// AUTO-GENERATED DOCUMENTATION AND METHOD
/**
* Creates a dataset.
*
* <p>Sample code:
*
* <pre><code>
* try (AutoMlClient autoMlClient = AutoMlClient.create()) {
* LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
* Dataset dataset = Dataset.newBuilder().build();
* CreateDatasetRequest request = CreateDatasetRequest.newBuilder()
* .setParent(parent.toString())
* .setDataset(dataset)
* .build();
* OperationFuture&lt;Dataset, OperationMetadata&gt; future = autoMlClient.createDatasetOperationCallable().futureCall(request);
* // Do something
* Dataset response = future.get();
* }
* </code></pre>
*/
@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
public final OperationCallable<CreateDatasetRequest, Dataset, OperationMetadata>
createDatasetOperationCallable() {
return stub.createDatasetOperationCallable();
}

// AUTO-GENERATED DOCUMENTATION AND METHOD
Expand Down
Expand Up @@ -53,13 +53,13 @@
* <p>The builder of this class is recursive, so contained classes are themselves builders. When
* build() is called, the tree of builders is called to create the complete settings object.
*
* <p>For example, to set the total timeout of createDataset to 30 seconds:
* <p>For example, to set the total timeout of updateDataset to 30 seconds:
*
* <pre>
* <code>
* AutoMlSettings.Builder autoMlSettingsBuilder =
* AutoMlSettings.newBuilder();
* autoMlSettingsBuilder.createDatasetSettings().getRetrySettings().toBuilder()
* autoMlSettingsBuilder.updateDatasetSettings().getRetrySettings().toBuilder()
* .setTotalTimeout(Duration.ofSeconds(30));
* AutoMlSettings autoMlSettings = autoMlSettingsBuilder.build();
* </code>
Expand All @@ -73,6 +73,14 @@ public UnaryCallSettings<CreateDatasetRequest, Operation> createDatasetSettings(
return ((AutoMlStubSettings) getStubSettings()).createDatasetSettings();
}

/** Returns the object with the settings used for calls to createDataset. */
@BetaApi(
"The surface for long-running operations is not stable yet and may change in the future.")
public OperationCallSettings<CreateDatasetRequest, Dataset, OperationMetadata>
createDatasetOperationSettings() {
return ((AutoMlStubSettings) getStubSettings()).createDatasetOperationSettings();
}

/** Returns the object with the settings used for calls to updateDataset. */
public UnaryCallSettings<UpdateDatasetRequest, Dataset> updateDatasetSettings() {
return ((AutoMlStubSettings) getStubSettings()).updateDatasetSettings();
Expand Down Expand Up @@ -286,6 +294,14 @@ public UnaryCallSettings.Builder<CreateDatasetRequest, Operation> createDatasetS
return getStubSettingsBuilder().createDatasetSettings();
}

/** Returns the builder for the settings used for calls to createDataset. */
@BetaApi(
"The surface for long-running operations is not stable yet and may change in the future.")
public OperationCallSettings.Builder<CreateDatasetRequest, Dataset, OperationMetadata>
createDatasetOperationSettings() {
return getStubSettingsBuilder().createDatasetOperationSettings();
}

/** Returns the builder for the settings used for calls to updateDataset. */
public UnaryCallSettings.Builder<UpdateDatasetRequest, Dataset> updateDatasetSettings() {
return getStubSettingsBuilder().updateDatasetSettings();
Expand Down
Expand Up @@ -40,9 +40,9 @@
* <pre>
* <code>
* try (AutoMlClient autoMlClient = AutoMlClient.create()) {
* LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
* Dataset dataset = Dataset.newBuilder().build();
* Operation response = autoMlClient.createDataset(parent, dataset);
* FieldMask updateMask = FieldMask.newBuilder().build();
* Dataset response = autoMlClient.updateDataset(dataset, updateMask);
* }
* </code>
* </pre>
Expand Down
Expand Up @@ -64,6 +64,12 @@ public OperationsStub getOperationsStub() {
throw new UnsupportedOperationException("Not implemented: getOperationsStub()");
}

@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallable<CreateDatasetRequest, Dataset, OperationMetadata>
createDatasetOperationCallable() {
throw new UnsupportedOperationException("Not implemented: createDatasetOperationCallable()");
}

public UnaryCallable<CreateDatasetRequest, Operation> createDatasetCallable() {
throw new UnsupportedOperationException("Not implemented: createDatasetCallable()");
}
Expand Down
Expand Up @@ -92,13 +92,13 @@
* <p>The builder of this class is recursive, so contained classes are themselves builders. When
* build() is called, the tree of builders is called to create the complete settings object.
*
* <p>For example, to set the total timeout of createDataset to 30 seconds:
* <p>For example, to set the total timeout of updateDataset to 30 seconds:
*
* <pre>
* <code>
* AutoMlStubSettings.Builder autoMlSettingsBuilder =
* AutoMlStubSettings.newBuilder();
* autoMlSettingsBuilder.createDatasetSettings().getRetrySettings().toBuilder()
* autoMlSettingsBuilder.updateDatasetSettings().getRetrySettings().toBuilder()
* .setTotalTimeout(Duration.ofSeconds(30));
* AutoMlStubSettings autoMlSettings = autoMlSettingsBuilder.build();
* </code>
Expand All @@ -112,6 +112,8 @@ public class AutoMlStubSettings extends StubSettings<AutoMlStubSettings> {
ImmutableList.<String>builder().add("https://www.googleapis.com/auth/cloud-platform").build();

private final UnaryCallSettings<CreateDatasetRequest, Operation> createDatasetSettings;
private final OperationCallSettings<CreateDatasetRequest, Dataset, OperationMetadata>
createDatasetOperationSettings;
private final UnaryCallSettings<UpdateDatasetRequest, Dataset> updateDatasetSettings;
private final UnaryCallSettings<GetDatasetRequest, Dataset> getDatasetSettings;
private final PagedCallSettings<
Expand Down Expand Up @@ -149,6 +151,13 @@ public UnaryCallSettings<CreateDatasetRequest, Operation> createDatasetSettings(
return createDatasetSettings;
}

/** Returns the object with the settings used for calls to createDataset. */
@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallSettings<CreateDatasetRequest, Dataset, OperationMetadata>
createDatasetOperationSettings() {
return createDatasetOperationSettings;
}

/** Returns the object with the settings used for calls to updateDataset. */
public UnaryCallSettings<UpdateDatasetRequest, Dataset> updateDatasetSettings() {
return updateDatasetSettings;
Expand Down Expand Up @@ -325,6 +334,7 @@ protected AutoMlStubSettings(Builder settingsBuilder) throws IOException {
super(settingsBuilder);

createDatasetSettings = settingsBuilder.createDatasetSettings().build();
createDatasetOperationSettings = settingsBuilder.createDatasetOperationSettings().build();
updateDatasetSettings = settingsBuilder.updateDatasetSettings().build();
getDatasetSettings = settingsBuilder.getDatasetSettings().build();
listDatasetsSettings = settingsBuilder.listDatasetsSettings().build();
Expand Down Expand Up @@ -521,6 +531,8 @@ public static class Builder extends StubSettings.Builder<AutoMlStubSettings, Bui
private final ImmutableList<UnaryCallSettings.Builder<?, ?>> unaryMethodSettingsBuilders;

private final UnaryCallSettings.Builder<CreateDatasetRequest, Operation> createDatasetSettings;
private final OperationCallSettings.Builder<CreateDatasetRequest, Dataset, OperationMetadata>
createDatasetOperationSettings;
private final UnaryCallSettings.Builder<UpdateDatasetRequest, Dataset> updateDatasetSettings;
private final UnaryCallSettings.Builder<GetDatasetRequest, Dataset> getDatasetSettings;
private final PagedCallSettings.Builder<
Expand Down Expand Up @@ -597,6 +609,8 @@ protected Builder(ClientContext clientContext) {

createDatasetSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();

createDatasetOperationSettings = OperationCallSettings.newBuilder();

updateDatasetSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();

getDatasetSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
Expand Down Expand Up @@ -734,6 +748,29 @@ private static Builder initDefaults(Builder builder) {
.listModelEvaluationsSettings()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"));
builder
.createDatasetOperationSettings()
.setInitialCallSettings(
UnaryCallSettings
.<CreateDatasetRequest, OperationSnapshot>newUnaryCallSettingsBuilder()
.setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("non_idempotent"))
.setRetrySettings(RETRY_PARAM_DEFINITIONS.get("default"))
.build())
.setResponseTransformer(
ProtoOperationTransformers.ResponseTransformer.create(Dataset.class))
.setMetadataTransformer(
ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
.setPollingAlgorithm(
OperationTimedPollAlgorithm.create(
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(500L))
.setRetryDelayMultiplier(1.5)
.setMaxRetryDelay(Duration.ofMillis(5000L))
.setInitialRpcTimeout(Duration.ZERO) // ignored
.setRpcTimeoutMultiplier(1.0) // ignored
.setMaxRpcTimeout(Duration.ZERO) // ignored
.setTotalTimeout(Duration.ofMillis(300000L))
.build()));
builder
.deleteDatasetOperationSettings()
.setInitialCallSettings(
Expand Down Expand Up @@ -853,6 +890,7 @@ protected Builder(AutoMlStubSettings settings) {
super(settings);

createDatasetSettings = settings.createDatasetSettings.toBuilder();
createDatasetOperationSettings = settings.createDatasetOperationSettings.toBuilder();
updateDatasetSettings = settings.updateDatasetSettings.toBuilder();
getDatasetSettings = settings.getDatasetSettings.toBuilder();
listDatasetsSettings = settings.listDatasetsSettings.toBuilder();
Expand Down Expand Up @@ -911,6 +949,14 @@ public UnaryCallSettings.Builder<CreateDatasetRequest, Operation> createDatasetS
return createDatasetSettings;
}

/** Returns the builder for the settings used for calls to createDataset. */
@BetaApi(
"The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallSettings.Builder<CreateDatasetRequest, Dataset, OperationMetadata>
createDatasetOperationSettings() {
return createDatasetOperationSettings;
}

/** Returns the builder for the settings used for calls to updateDataset. */
public UnaryCallSettings.Builder<UpdateDatasetRequest, Dataset> updateDatasetSettings() {
return updateDatasetSettings;
Expand Down
Expand Up @@ -187,6 +187,8 @@ public class GrpcAutoMlStub extends AutoMlStub {
private final GrpcOperationsStub operationsStub;

private final UnaryCallable<CreateDatasetRequest, Operation> createDatasetCallable;
private final OperationCallable<CreateDatasetRequest, Dataset, OperationMetadata>
createDatasetOperationCallable;
private final UnaryCallable<UpdateDatasetRequest, Dataset> updateDatasetCallable;
private final UnaryCallable<GetDatasetRequest, Dataset> getDatasetCallable;
private final UnaryCallable<ListDatasetsRequest, ListDatasetsResponse> listDatasetsCallable;
Expand Down Expand Up @@ -443,6 +445,12 @@ public Map<String, String> extract(ListModelEvaluationsRequest request) {
this.createDatasetCallable =
callableFactory.createUnaryCallable(
createDatasetTransportSettings, settings.createDatasetSettings(), clientContext);
this.createDatasetOperationCallable =
callableFactory.createOperationCallable(
createDatasetTransportSettings,
settings.createDatasetOperationSettings(),
clientContext,
this.operationsStub);
this.updateDatasetCallable =
callableFactory.createUnaryCallable(
updateDatasetTransportSettings, settings.updateDatasetSettings(), clientContext);
Expand Down Expand Up @@ -536,6 +544,12 @@ public GrpcOperationsStub getOperationsStub() {
return operationsStub;
}

@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
public OperationCallable<CreateDatasetRequest, Dataset, OperationMetadata>
createDatasetOperationCallable() {
return createDatasetOperationCallable;
}

public UnaryCallable<CreateDatasetRequest, Operation> createDatasetCallable() {
return createDatasetCallable;
}
Expand Down