diff --git a/.github/release-please.yml b/.github/release-please.yml index 8b1378917..827446828 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -1 +1 @@ - +releaseType: java-yoshi diff --git a/google-cloud-automl/clirr-ignored-differences.xml b/google-cloud-automl/clirr-ignored-differences.xml new file mode 100644 index 000000000..626dbe9e6 --- /dev/null +++ b/google-cloud-automl/clirr-ignored-differences.xml @@ -0,0 +1,19 @@ + + + + + 7002 + com/google/cloud/automl/v1/AutoMlClient + com.google.longrunning.Operation createDataset(com.google.cloud.automl.v1.LocationName, com.google.cloud.automl.v1.Dataset) + + + 7002 + com/google/cloud/automl/v1/AutoMlClient + com.google.longrunning.Operation createDataset(java.lang.String, com.google.cloud.automl.v1.Dataset) + + + 7002 + com/google/cloud/automl/v1/AutoMlClient + com.google.longrunning.Operation createDataset(com.google.cloud.automl.v1.CreateDatasetRequest) + + \ No newline at end of file diff --git a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/AutoMlClient.java b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/AutoMlClient.java index b45798fcf..d6717a1e9 100644 --- a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/AutoMlClient.java +++ b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/AutoMlClient.java @@ -61,9 +61,9 @@ *
  * 
  * 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);
  * }
  * 
  * 
@@ -193,7 +193,7 @@ 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(); * } * * @@ -201,14 +201,17 @@ public final OperationsClient getOperationsClient() { * @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 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 @@ -221,7 +224,7 @@ 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(); * } * * @@ -229,11 +232,14 @@ public final Operation createDataset(LocationName parent, Dataset dataset) { * @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 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 @@ -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(); * } * * * @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 createDatasetAsync( + CreateDatasetRequest request) { + return createDatasetOperationCallable().futureCall(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD + /** + * Creates a dataset. + * + *

Sample 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<Dataset, OperationMetadata> future = autoMlClient.createDatasetOperationCallable().futureCall(request);
+   *   // Do something
+   *   Dataset response = future.get();
+   * }
+   * 
+ */ + @BetaApi("The surface for use by generated code is not stable yet and may change in the future.") + public final OperationCallable + createDatasetOperationCallable() { + return stub.createDatasetOperationCallable(); } // AUTO-GENERATED DOCUMENTATION AND METHOD diff --git a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/AutoMlSettings.java b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/AutoMlSettings.java index ad1616670..0cf18a004 100644 --- a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/AutoMlSettings.java +++ b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/AutoMlSettings.java @@ -53,13 +53,13 @@ *

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. * - *

For example, to set the total timeout of createDataset to 30 seconds: + *

For example, to set the total timeout of updateDataset to 30 seconds: * *

  * 
  * AutoMlSettings.Builder autoMlSettingsBuilder =
  *     AutoMlSettings.newBuilder();
- * autoMlSettingsBuilder.createDatasetSettings().getRetrySettings().toBuilder()
+ * autoMlSettingsBuilder.updateDatasetSettings().getRetrySettings().toBuilder()
  *     .setTotalTimeout(Duration.ofSeconds(30));
  * AutoMlSettings autoMlSettings = autoMlSettingsBuilder.build();
  * 
@@ -73,6 +73,14 @@ public UnaryCallSettings 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
+      createDatasetOperationSettings() {
+    return ((AutoMlStubSettings) getStubSettings()).createDatasetOperationSettings();
+  }
+
   /** Returns the object with the settings used for calls to updateDataset. */
   public UnaryCallSettings updateDatasetSettings() {
     return ((AutoMlStubSettings) getStubSettings()).updateDatasetSettings();
@@ -286,6 +294,14 @@ public UnaryCallSettings.Builder 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
+        createDatasetOperationSettings() {
+      return getStubSettingsBuilder().createDatasetOperationSettings();
+    }
+
     /** Returns the builder for the settings used for calls to updateDataset. */
     public UnaryCallSettings.Builder updateDatasetSettings() {
       return getStubSettingsBuilder().updateDatasetSettings();
diff --git a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/package-info.java b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/package-info.java
index 247ee7b09..6eeb85d20 100644
--- a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/package-info.java
+++ b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/package-info.java
@@ -40,9 +40,9 @@
  * 
  * 
  * 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);
  * }
  * 
  * 
diff --git a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/AutoMlStub.java b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/AutoMlStub.java index e8170e6be..4386edbd6 100644 --- a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/AutoMlStub.java +++ b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/AutoMlStub.java @@ -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 + createDatasetOperationCallable() { + throw new UnsupportedOperationException("Not implemented: createDatasetOperationCallable()"); + } + public UnaryCallable createDatasetCallable() { throw new UnsupportedOperationException("Not implemented: createDatasetCallable()"); } diff --git a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/AutoMlStubSettings.java b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/AutoMlStubSettings.java index 0da53b485..23add3192 100644 --- a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/AutoMlStubSettings.java +++ b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/AutoMlStubSettings.java @@ -92,13 +92,13 @@ *

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. * - *

For example, to set the total timeout of createDataset to 30 seconds: + *

For example, to set the total timeout of updateDataset to 30 seconds: * *

  * 
  * AutoMlStubSettings.Builder autoMlSettingsBuilder =
  *     AutoMlStubSettings.newBuilder();
- * autoMlSettingsBuilder.createDatasetSettings().getRetrySettings().toBuilder()
+ * autoMlSettingsBuilder.updateDatasetSettings().getRetrySettings().toBuilder()
  *     .setTotalTimeout(Duration.ofSeconds(30));
  * AutoMlStubSettings autoMlSettings = autoMlSettingsBuilder.build();
  * 
@@ -112,6 +112,8 @@ public class AutoMlStubSettings extends StubSettings {
       ImmutableList.builder().add("https://www.googleapis.com/auth/cloud-platform").build();
 
   private final UnaryCallSettings createDatasetSettings;
+  private final OperationCallSettings
+      createDatasetOperationSettings;
   private final UnaryCallSettings updateDatasetSettings;
   private final UnaryCallSettings getDatasetSettings;
   private final PagedCallSettings<
@@ -149,6 +151,13 @@ public UnaryCallSettings 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
+      createDatasetOperationSettings() {
+    return createDatasetOperationSettings;
+  }
+
   /** Returns the object with the settings used for calls to updateDataset. */
   public UnaryCallSettings updateDatasetSettings() {
     return updateDatasetSettings;
@@ -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();
@@ -521,6 +531,8 @@ public static class Builder extends StubSettings.Builder> unaryMethodSettingsBuilders;
 
     private final UnaryCallSettings.Builder createDatasetSettings;
+    private final OperationCallSettings.Builder
+        createDatasetOperationSettings;
     private final UnaryCallSettings.Builder updateDatasetSettings;
     private final UnaryCallSettings.Builder getDatasetSettings;
     private final PagedCallSettings.Builder<
@@ -597,6 +609,8 @@ protected Builder(ClientContext clientContext) {
 
       createDatasetSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
+      createDatasetOperationSettings = OperationCallSettings.newBuilder();
+
       updateDatasetSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
 
       getDatasetSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
@@ -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
+                  .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(
@@ -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();
@@ -911,6 +949,14 @@ public UnaryCallSettings.Builder 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
+        createDatasetOperationSettings() {
+      return createDatasetOperationSettings;
+    }
+
     /** Returns the builder for the settings used for calls to updateDataset. */
     public UnaryCallSettings.Builder updateDatasetSettings() {
       return updateDatasetSettings;
diff --git a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/GrpcAutoMlStub.java b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/GrpcAutoMlStub.java
index 1065fdeec..fca0489f0 100644
--- a/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/GrpcAutoMlStub.java
+++ b/google-cloud-automl/src/main/java/com/google/cloud/automl/v1/stub/GrpcAutoMlStub.java
@@ -187,6 +187,8 @@ public class GrpcAutoMlStub extends AutoMlStub {
   private final GrpcOperationsStub operationsStub;
 
   private final UnaryCallable createDatasetCallable;
+  private final OperationCallable
+      createDatasetOperationCallable;
   private final UnaryCallable updateDatasetCallable;
   private final UnaryCallable getDatasetCallable;
   private final UnaryCallable listDatasetsCallable;
@@ -443,6 +445,12 @@ public Map 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);
@@ -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
+      createDatasetOperationCallable() {
+    return createDatasetOperationCallable;
+  }
+
   public UnaryCallable createDatasetCallable() {
     return createDatasetCallable;
   }
diff --git a/google-cloud-automl/src/test/java/com/google/cloud/automl/v1/AutoMlClientTest.java b/google-cloud-automl/src/test/java/com/google/cloud/automl/v1/AutoMlClientTest.java
index 0a097bf5e..50b6077ed 100644
--- a/google-cloud-automl/src/test/java/com/google/cloud/automl/v1/AutoMlClientTest.java
+++ b/google-cloud-automl/src/test/java/com/google/cloud/automl/v1/AutoMlClientTest.java
@@ -88,16 +88,32 @@ public void tearDown() throws Exception {
 
   @Test
   @SuppressWarnings("all")
-  public void createDatasetTest() {
+  public void createDatasetTest() throws Exception {
     String name = "name3373707";
-    boolean done = true;
-    Operation expectedResponse = Operation.newBuilder().setName(name).setDone(done).build();
-    mockAutoMl.addResponse(expectedResponse);
+    String displayName = "displayName1615086568";
+    String description = "description-1724546052";
+    int exampleCount = 1517063674;
+    String etag = "etag3123477";
+    Dataset expectedResponse =
+        Dataset.newBuilder()
+            .setName(name)
+            .setDisplayName(displayName)
+            .setDescription(description)
+            .setExampleCount(exampleCount)
+            .setEtag(etag)
+            .build();
+    Operation resultOperation =
+        Operation.newBuilder()
+            .setName("createDatasetTest")
+            .setDone(true)
+            .setResponse(Any.pack(expectedResponse))
+            .build();
+    mockAutoMl.addResponse(resultOperation);
 
     LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
     Dataset dataset = Dataset.newBuilder().build();
 
-    Operation actualResponse = client.createDataset(parent, dataset);
+    Dataset actualResponse = client.createDatasetAsync(parent, dataset).get();
     Assert.assertEquals(expectedResponse, actualResponse);
 
     List actualRequests = mockAutoMl.getRequests();
@@ -122,10 +138,12 @@ public void createDatasetExceptionTest() throws Exception {
       LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
       Dataset dataset = Dataset.newBuilder().build();
 
-      client.createDataset(parent, dataset);
+      client.createDatasetAsync(parent, dataset).get();
       Assert.fail("No exception raised");
-    } catch (InvalidArgumentException e) {
-      // Expected exception
+    } catch (ExecutionException e) {
+      Assert.assertEquals(InvalidArgumentException.class, e.getCause().getClass());
+      InvalidArgumentException apiException = (InvalidArgumentException) e.getCause();
+      Assert.assertEquals(StatusCode.Code.INVALID_ARGUMENT, apiException.getStatusCode().getCode());
     }
   }
 
diff --git a/renovate.json b/renovate.json
index ff6ecf0af..998104700 100644
--- a/renovate.json
+++ b/renovate.json
@@ -6,7 +6,7 @@
   "packageRules": [
     {
       "managers": ["maven"],
-      "packageNames": ["com.google.guava:guava"],
+      "packageNames": ["com.google.guava:guava*"],
       "versionScheme": "docker"
     },
     {
diff --git a/synth.metadata b/synth.metadata
index b69eb14c8..0cc8b990f 100644
--- a/synth.metadata
+++ b/synth.metadata
@@ -1,5 +1,5 @@
 {
-  "updateTime": "2019-10-05T08:04:01.237950Z",
+  "updateTime": "2019-10-08T08:08:06.922268Z",
   "sources": [
     {
       "generator": {
@@ -12,8 +12,8 @@
       "git": {
         "name": "googleapis",
         "remote": "https://github.com/googleapis/googleapis.git",
-        "sha": "ceb8e2fb12f048cc94caae532ef0b4cf026a78f3",
-        "internalRef": "272971705"
+        "sha": "122bdbf877ad87439f8dd9d1474a8e5dde188087",
+        "internalRef": "273381131"
       }
     },
     {