diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/FlexTemplatesServiceClient.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/FlexTemplatesServiceClient.java
index 1ca69b86..f72b18f0 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/FlexTemplatesServiceClient.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/FlexTemplatesServiceClient.java
@@ -99,6 +99,21 @@
* FlexTemplatesServiceClient.create(flexTemplatesServiceSettings);
* }
*
+ * To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
+ * the wire:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * FlexTemplatesServiceSettings flexTemplatesServiceSettings =
+ * FlexTemplatesServiceSettings.newBuilder()
+ * .setTransportChannelProvider(
+ * FlexTemplatesServiceSettings.defaultHttpJsonTransportProviderBuilder().build())
+ * .build();
+ * FlexTemplatesServiceClient flexTemplatesServiceClient =
+ * FlexTemplatesServiceClient.create(flexTemplatesServiceSettings);
+ * }
+ *
* Please refer to the GitHub repository's samples for more quickstart code snippets.
*/
@BetaApi
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/FlexTemplatesServiceSettings.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/FlexTemplatesServiceSettings.java
index c45e34c9..b2ca423f 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/FlexTemplatesServiceSettings.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/FlexTemplatesServiceSettings.java
@@ -21,6 +21,7 @@
import com.google.api.gax.core.GoogleCredentialsProvider;
import com.google.api.gax.core.InstantiatingExecutorProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
+import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
import com.google.api.gax.rpc.ApiClientHeaderProvider;
import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.ClientSettings;
@@ -101,11 +102,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
return FlexTemplatesServiceStubSettings.defaultCredentialsProviderBuilder();
}
- /** Returns a builder for the default ChannelProvider for this service. */
+ /** Returns a builder for the default gRPC ChannelProvider for this service. */
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
return FlexTemplatesServiceStubSettings.defaultGrpcTransportProviderBuilder();
}
+ /** Returns a builder for the default REST ChannelProvider for this service. */
+ @BetaApi
+ public static InstantiatingHttpJsonChannelProvider.Builder
+ defaultHttpJsonTransportProviderBuilder() {
+ return FlexTemplatesServiceStubSettings.defaultHttpJsonTransportProviderBuilder();
+ }
+
public static TransportChannelProvider defaultTransportChannelProvider() {
return FlexTemplatesServiceStubSettings.defaultTransportChannelProvider();
}
@@ -115,11 +123,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
return FlexTemplatesServiceStubSettings.defaultApiClientHeaderProviderBuilder();
}
- /** Returns a new builder for this class. */
+ /** Returns a new gRPC builder for this class. */
public static Builder newBuilder() {
return Builder.createDefault();
}
+ /** Returns a new REST builder for this class. */
+ @BetaApi
+ public static Builder newHttpJsonBuilder() {
+ return Builder.createHttpJsonDefault();
+ }
+
/** Returns a new builder for this class. */
public static Builder newBuilder(ClientContext clientContext) {
return new Builder(clientContext);
@@ -158,6 +172,11 @@ private static Builder createDefault() {
return new Builder(FlexTemplatesServiceStubSettings.newBuilder());
}
+ @BetaApi
+ private static Builder createHttpJsonDefault() {
+ return new Builder(FlexTemplatesServiceStubSettings.newHttpJsonBuilder());
+ }
+
public FlexTemplatesServiceStubSettings.Builder getStubSettingsBuilder() {
return ((FlexTemplatesServiceStubSettings.Builder) getStubSettings());
}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/JobsV1Beta3Client.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/JobsV1Beta3Client.java
index adfafef0..9f68f185 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/JobsV1Beta3Client.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/JobsV1Beta3Client.java
@@ -105,6 +105,20 @@
* JobsV1Beta3Client jobsV1Beta3Client = JobsV1Beta3Client.create(jobsV1Beta3Settings);
* }
*
+ *
To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
+ * the wire:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * JobsV1Beta3Settings jobsV1Beta3Settings =
+ * JobsV1Beta3Settings.newBuilder()
+ * .setTransportChannelProvider(
+ * JobsV1Beta3Settings.defaultHttpJsonTransportProviderBuilder().build())
+ * .build();
+ * JobsV1Beta3Client jobsV1Beta3Client = JobsV1Beta3Client.create(jobsV1Beta3Settings);
+ * }
+ *
* Please refer to the GitHub repository's samples for more quickstart code snippets.
*/
@BetaApi
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/JobsV1Beta3Settings.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/JobsV1Beta3Settings.java
index 7a059bfa..446021d6 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/JobsV1Beta3Settings.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/JobsV1Beta3Settings.java
@@ -24,6 +24,7 @@
import com.google.api.gax.core.GoogleCredentialsProvider;
import com.google.api.gax.core.InstantiatingExecutorProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
+import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
import com.google.api.gax.rpc.ApiClientHeaderProvider;
import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.ClientSettings;
@@ -134,11 +135,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
return JobsV1Beta3StubSettings.defaultCredentialsProviderBuilder();
}
- /** Returns a builder for the default ChannelProvider for this service. */
+ /** Returns a builder for the default gRPC ChannelProvider for this service. */
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
return JobsV1Beta3StubSettings.defaultGrpcTransportProviderBuilder();
}
+ /** Returns a builder for the default REST ChannelProvider for this service. */
+ @BetaApi
+ public static InstantiatingHttpJsonChannelProvider.Builder
+ defaultHttpJsonTransportProviderBuilder() {
+ return JobsV1Beta3StubSettings.defaultHttpJsonTransportProviderBuilder();
+ }
+
public static TransportChannelProvider defaultTransportChannelProvider() {
return JobsV1Beta3StubSettings.defaultTransportChannelProvider();
}
@@ -148,11 +156,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
return JobsV1Beta3StubSettings.defaultApiClientHeaderProviderBuilder();
}
- /** Returns a new builder for this class. */
+ /** Returns a new gRPC builder for this class. */
public static Builder newBuilder() {
return Builder.createDefault();
}
+ /** Returns a new REST builder for this class. */
+ @BetaApi
+ public static Builder newHttpJsonBuilder() {
+ return Builder.createHttpJsonDefault();
+ }
+
/** Returns a new builder for this class. */
public static Builder newBuilder(ClientContext clientContext) {
return new Builder(clientContext);
@@ -190,6 +204,11 @@ private static Builder createDefault() {
return new Builder(JobsV1Beta3StubSettings.newBuilder());
}
+ @BetaApi
+ private static Builder createHttpJsonDefault() {
+ return new Builder(JobsV1Beta3StubSettings.newHttpJsonBuilder());
+ }
+
public JobsV1Beta3StubSettings.Builder getStubSettingsBuilder() {
return ((JobsV1Beta3StubSettings.Builder) getStubSettings());
}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MessagesV1Beta3Client.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MessagesV1Beta3Client.java
index 4ef9d1de..b5731c90 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MessagesV1Beta3Client.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MessagesV1Beta3Client.java
@@ -113,6 +113,21 @@
* MessagesV1Beta3Client.create(messagesV1Beta3Settings);
* }
*
+ *
To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
+ * the wire:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * MessagesV1Beta3Settings messagesV1Beta3Settings =
+ * MessagesV1Beta3Settings.newBuilder()
+ * .setTransportChannelProvider(
+ * MessagesV1Beta3Settings.defaultHttpJsonTransportProviderBuilder().build())
+ * .build();
+ * MessagesV1Beta3Client messagesV1Beta3Client =
+ * MessagesV1Beta3Client.create(messagesV1Beta3Settings);
+ * }
+ *
* Please refer to the GitHub repository's samples for more quickstart code snippets.
*/
@BetaApi
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MessagesV1Beta3Settings.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MessagesV1Beta3Settings.java
index c6ae01d6..12e0c779 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MessagesV1Beta3Settings.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MessagesV1Beta3Settings.java
@@ -23,6 +23,7 @@
import com.google.api.gax.core.GoogleCredentialsProvider;
import com.google.api.gax.core.InstantiatingExecutorProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
+import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
import com.google.api.gax.rpc.ApiClientHeaderProvider;
import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.ClientSettings;
@@ -104,11 +105,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
return MessagesV1Beta3StubSettings.defaultCredentialsProviderBuilder();
}
- /** Returns a builder for the default ChannelProvider for this service. */
+ /** Returns a builder for the default gRPC ChannelProvider for this service. */
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
return MessagesV1Beta3StubSettings.defaultGrpcTransportProviderBuilder();
}
+ /** Returns a builder for the default REST ChannelProvider for this service. */
+ @BetaApi
+ public static InstantiatingHttpJsonChannelProvider.Builder
+ defaultHttpJsonTransportProviderBuilder() {
+ return MessagesV1Beta3StubSettings.defaultHttpJsonTransportProviderBuilder();
+ }
+
public static TransportChannelProvider defaultTransportChannelProvider() {
return MessagesV1Beta3StubSettings.defaultTransportChannelProvider();
}
@@ -118,11 +126,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
return MessagesV1Beta3StubSettings.defaultApiClientHeaderProviderBuilder();
}
- /** Returns a new builder for this class. */
+ /** Returns a new gRPC builder for this class. */
public static Builder newBuilder() {
return Builder.createDefault();
}
+ /** Returns a new REST builder for this class. */
+ @BetaApi
+ public static Builder newHttpJsonBuilder() {
+ return Builder.createHttpJsonDefault();
+ }
+
/** Returns a new builder for this class. */
public static Builder newBuilder(ClientContext clientContext) {
return new Builder(clientContext);
@@ -160,6 +174,11 @@ private static Builder createDefault() {
return new Builder(MessagesV1Beta3StubSettings.newBuilder());
}
+ @BetaApi
+ private static Builder createHttpJsonDefault() {
+ return new Builder(MessagesV1Beta3StubSettings.newHttpJsonBuilder());
+ }
+
public MessagesV1Beta3StubSettings.Builder getStubSettingsBuilder() {
return ((MessagesV1Beta3StubSettings.Builder) getStubSettings());
}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MetricsV1Beta3Client.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MetricsV1Beta3Client.java
index 6fa09498..dd56120e 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MetricsV1Beta3Client.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MetricsV1Beta3Client.java
@@ -103,6 +103,20 @@
* MetricsV1Beta3Client metricsV1Beta3Client = MetricsV1Beta3Client.create(metricsV1Beta3Settings);
* }
*
+ *
To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
+ * the wire:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * MetricsV1Beta3Settings metricsV1Beta3Settings =
+ * MetricsV1Beta3Settings.newBuilder()
+ * .setTransportChannelProvider(
+ * MetricsV1Beta3Settings.defaultHttpJsonTransportProviderBuilder().build())
+ * .build();
+ * MetricsV1Beta3Client metricsV1Beta3Client = MetricsV1Beta3Client.create(metricsV1Beta3Settings);
+ * }
+ *
* Please refer to the GitHub repository's samples for more quickstart code snippets.
*/
@BetaApi
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MetricsV1Beta3Settings.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MetricsV1Beta3Settings.java
index 056da1ac..b77b2e12 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MetricsV1Beta3Settings.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/MetricsV1Beta3Settings.java
@@ -24,6 +24,7 @@
import com.google.api.gax.core.GoogleCredentialsProvider;
import com.google.api.gax.core.InstantiatingExecutorProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
+import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
import com.google.api.gax.rpc.ApiClientHeaderProvider;
import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.ClientSettings;
@@ -119,11 +120,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
return MetricsV1Beta3StubSettings.defaultCredentialsProviderBuilder();
}
- /** Returns a builder for the default ChannelProvider for this service. */
+ /** Returns a builder for the default gRPC ChannelProvider for this service. */
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
return MetricsV1Beta3StubSettings.defaultGrpcTransportProviderBuilder();
}
+ /** Returns a builder for the default REST ChannelProvider for this service. */
+ @BetaApi
+ public static InstantiatingHttpJsonChannelProvider.Builder
+ defaultHttpJsonTransportProviderBuilder() {
+ return MetricsV1Beta3StubSettings.defaultHttpJsonTransportProviderBuilder();
+ }
+
public static TransportChannelProvider defaultTransportChannelProvider() {
return MetricsV1Beta3StubSettings.defaultTransportChannelProvider();
}
@@ -133,11 +141,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
return MetricsV1Beta3StubSettings.defaultApiClientHeaderProviderBuilder();
}
- /** Returns a new builder for this class. */
+ /** Returns a new gRPC builder for this class. */
public static Builder newBuilder() {
return Builder.createDefault();
}
+ /** Returns a new REST builder for this class. */
+ @BetaApi
+ public static Builder newHttpJsonBuilder() {
+ return Builder.createHttpJsonDefault();
+ }
+
/** Returns a new builder for this class. */
public static Builder newBuilder(ClientContext clientContext) {
return new Builder(clientContext);
@@ -175,6 +189,11 @@ private static Builder createDefault() {
return new Builder(MetricsV1Beta3StubSettings.newBuilder());
}
+ @BetaApi
+ private static Builder createHttpJsonDefault() {
+ return new Builder(MetricsV1Beta3StubSettings.newHttpJsonBuilder());
+ }
+
public MetricsV1Beta3StubSettings.Builder getStubSettingsBuilder() {
return ((MetricsV1Beta3StubSettings.Builder) getStubSettings());
}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/SnapshotsV1Beta3Client.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/SnapshotsV1Beta3Client.java
index e9ce4586..a53a4375 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/SnapshotsV1Beta3Client.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/SnapshotsV1Beta3Client.java
@@ -97,6 +97,21 @@
* SnapshotsV1Beta3Client.create(snapshotsV1Beta3Settings);
* }
*
+ *
To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
+ * the wire:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * SnapshotsV1Beta3Settings snapshotsV1Beta3Settings =
+ * SnapshotsV1Beta3Settings.newBuilder()
+ * .setTransportChannelProvider(
+ * SnapshotsV1Beta3Settings.defaultHttpJsonTransportProviderBuilder().build())
+ * .build();
+ * SnapshotsV1Beta3Client snapshotsV1Beta3Client =
+ * SnapshotsV1Beta3Client.create(snapshotsV1Beta3Settings);
+ * }
+ *
* Please refer to the GitHub repository's samples for more quickstart code snippets.
*/
@BetaApi
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/SnapshotsV1Beta3Settings.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/SnapshotsV1Beta3Settings.java
index 7f2f9e1c..c9227927 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/SnapshotsV1Beta3Settings.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/SnapshotsV1Beta3Settings.java
@@ -21,6 +21,7 @@
import com.google.api.gax.core.GoogleCredentialsProvider;
import com.google.api.gax.core.InstantiatingExecutorProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
+import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
import com.google.api.gax.rpc.ApiClientHeaderProvider;
import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.ClientSettings;
@@ -109,11 +110,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
return SnapshotsV1Beta3StubSettings.defaultCredentialsProviderBuilder();
}
- /** Returns a builder for the default ChannelProvider for this service. */
+ /** Returns a builder for the default gRPC ChannelProvider for this service. */
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
return SnapshotsV1Beta3StubSettings.defaultGrpcTransportProviderBuilder();
}
+ /** Returns a builder for the default REST ChannelProvider for this service. */
+ @BetaApi
+ public static InstantiatingHttpJsonChannelProvider.Builder
+ defaultHttpJsonTransportProviderBuilder() {
+ return SnapshotsV1Beta3StubSettings.defaultHttpJsonTransportProviderBuilder();
+ }
+
public static TransportChannelProvider defaultTransportChannelProvider() {
return SnapshotsV1Beta3StubSettings.defaultTransportChannelProvider();
}
@@ -123,11 +131,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
return SnapshotsV1Beta3StubSettings.defaultApiClientHeaderProviderBuilder();
}
- /** Returns a new builder for this class. */
+ /** Returns a new gRPC builder for this class. */
public static Builder newBuilder() {
return Builder.createDefault();
}
+ /** Returns a new REST builder for this class. */
+ @BetaApi
+ public static Builder newHttpJsonBuilder() {
+ return Builder.createHttpJsonDefault();
+ }
+
/** Returns a new builder for this class. */
public static Builder newBuilder(ClientContext clientContext) {
return new Builder(clientContext);
@@ -165,6 +179,11 @@ private static Builder createDefault() {
return new Builder(SnapshotsV1Beta3StubSettings.newBuilder());
}
+ @BetaApi
+ private static Builder createHttpJsonDefault() {
+ return new Builder(SnapshotsV1Beta3StubSettings.newHttpJsonBuilder());
+ }
+
public SnapshotsV1Beta3StubSettings.Builder getStubSettingsBuilder() {
return ((SnapshotsV1Beta3StubSettings.Builder) getStubSettings());
}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/TemplatesServiceClient.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/TemplatesServiceClient.java
index 6e0efab8..f2cc11ae 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/TemplatesServiceClient.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/TemplatesServiceClient.java
@@ -99,6 +99,21 @@
* TemplatesServiceClient.create(templatesServiceSettings);
* }
*
+ *
To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
+ * the wire:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * TemplatesServiceSettings templatesServiceSettings =
+ * TemplatesServiceSettings.newBuilder()
+ * .setTransportChannelProvider(
+ * TemplatesServiceSettings.defaultHttpJsonTransportProviderBuilder().build())
+ * .build();
+ * TemplatesServiceClient templatesServiceClient =
+ * TemplatesServiceClient.create(templatesServiceSettings);
+ * }
+ *
* Please refer to the GitHub repository's samples for more quickstart code snippets.
*/
@BetaApi
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/TemplatesServiceSettings.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/TemplatesServiceSettings.java
index 275675f7..709d3a8a 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/TemplatesServiceSettings.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/TemplatesServiceSettings.java
@@ -21,6 +21,7 @@
import com.google.api.gax.core.GoogleCredentialsProvider;
import com.google.api.gax.core.InstantiatingExecutorProvider;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
+import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
import com.google.api.gax.rpc.ApiClientHeaderProvider;
import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.ClientSettings;
@@ -109,11 +110,18 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
return TemplatesServiceStubSettings.defaultCredentialsProviderBuilder();
}
- /** Returns a builder for the default ChannelProvider for this service. */
+ /** Returns a builder for the default gRPC ChannelProvider for this service. */
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
return TemplatesServiceStubSettings.defaultGrpcTransportProviderBuilder();
}
+ /** Returns a builder for the default REST ChannelProvider for this service. */
+ @BetaApi
+ public static InstantiatingHttpJsonChannelProvider.Builder
+ defaultHttpJsonTransportProviderBuilder() {
+ return TemplatesServiceStubSettings.defaultHttpJsonTransportProviderBuilder();
+ }
+
public static TransportChannelProvider defaultTransportChannelProvider() {
return TemplatesServiceStubSettings.defaultTransportChannelProvider();
}
@@ -123,11 +131,17 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
return TemplatesServiceStubSettings.defaultApiClientHeaderProviderBuilder();
}
- /** Returns a new builder for this class. */
+ /** Returns a new gRPC builder for this class. */
public static Builder newBuilder() {
return Builder.createDefault();
}
+ /** Returns a new REST builder for this class. */
+ @BetaApi
+ public static Builder newHttpJsonBuilder() {
+ return Builder.createHttpJsonDefault();
+ }
+
/** Returns a new builder for this class. */
public static Builder newBuilder(ClientContext clientContext) {
return new Builder(clientContext);
@@ -165,6 +179,11 @@ private static Builder createDefault() {
return new Builder(TemplatesServiceStubSettings.newBuilder());
}
+ @BetaApi
+ private static Builder createHttpJsonDefault() {
+ return new Builder(TemplatesServiceStubSettings.newHttpJsonBuilder());
+ }
+
public TemplatesServiceStubSettings.Builder getStubSettingsBuilder() {
return ((TemplatesServiceStubSettings.Builder) getStubSettings());
}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/FlexTemplatesServiceStubSettings.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/FlexTemplatesServiceStubSettings.java
index 3981151c..97e06d91 100644
--- a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/FlexTemplatesServiceStubSettings.java
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/FlexTemplatesServiceStubSettings.java
@@ -24,6 +24,9 @@
import com.google.api.gax.grpc.GaxGrpcProperties;
import com.google.api.gax.grpc.GrpcTransportChannel;
import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
+import com.google.api.gax.httpjson.GaxHttpJsonProperties;
+import com.google.api.gax.httpjson.HttpJsonTransportChannel;
+import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
import com.google.api.gax.retrying.RetrySettings;
import com.google.api.gax.rpc.ApiClientHeaderProvider;
import com.google.api.gax.rpc.ClientContext;
@@ -104,6 +107,11 @@ public FlexTemplatesServiceStub createStub() throws IOException {
.equals(GrpcTransportChannel.getGrpcTransportName())) {
return GrpcFlexTemplatesServiceStub.create(this);
}
+ if (getTransportChannelProvider()
+ .getTransportName()
+ .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
+ return HttpJsonFlexTemplatesServiceStub.create(this);
+ }
throw new UnsupportedOperationException(
String.format(
"Transport not supported: %s", getTransportChannelProvider().getTransportName()));
@@ -136,18 +144,25 @@ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
.setUseJwtAccessWithScope(true);
}
- /** Returns a builder for the default ChannelProvider for this service. */
+ /** Returns a builder for the default gRPC ChannelProvider for this service. */
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
return InstantiatingGrpcChannelProvider.newBuilder()
.setMaxInboundMessageSize(Integer.MAX_VALUE);
}
+ /** Returns a builder for the default REST ChannelProvider for this service. */
+ @BetaApi
+ public static InstantiatingHttpJsonChannelProvider.Builder
+ defaultHttpJsonTransportProviderBuilder() {
+ return InstantiatingHttpJsonChannelProvider.newBuilder();
+ }
+
public static TransportChannelProvider defaultTransportChannelProvider() {
return defaultGrpcTransportProviderBuilder().build();
}
@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
- public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
+ public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
return ApiClientHeaderProvider.newBuilder()
.setGeneratedLibToken(
"gapic", GaxProperties.getLibraryVersion(FlexTemplatesServiceStubSettings.class))
@@ -155,11 +170,30 @@ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
}
- /** Returns a new builder for this class. */
+ @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
+ public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
+ return ApiClientHeaderProvider.newBuilder()
+ .setGeneratedLibToken(
+ "gapic", GaxProperties.getLibraryVersion(FlexTemplatesServiceStubSettings.class))
+ .setTransportToken(
+ GaxHttpJsonProperties.getHttpJsonTokenName(),
+ GaxHttpJsonProperties.getHttpJsonVersion());
+ }
+
+ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
+ return FlexTemplatesServiceStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
+ }
+
+ /** Returns a new gRPC builder for this class. */
public static Builder newBuilder() {
return Builder.createDefault();
}
+ /** Returns a new REST builder for this class. */
+ public static Builder newHttpJsonBuilder() {
+ return Builder.createHttpJsonDefault();
+ }
+
/** Returns a new builder for this class. */
public static Builder newBuilder(ClientContext clientContext) {
return new Builder(clientContext);
@@ -238,6 +272,19 @@ private static Builder createDefault() {
return initDefaults(builder);
}
+ private static Builder createHttpJsonDefault() {
+ Builder builder = new Builder(((ClientContext) null));
+
+ builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
+ builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
+ builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
+ builder.setEndpoint(getDefaultEndpoint());
+ builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
+ builder.setSwitchToMtlsEndpointAllowed(true);
+
+ return initDefaults(builder);
+ }
+
private static Builder initDefaults(Builder builder) {
builder
.launchFlexTemplateSettings()
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonFlexTemplatesServiceCallableFactory.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonFlexTemplatesServiceCallableFactory.java
new file mode 100644
index 00000000..11d0d27b
--- /dev/null
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonFlexTemplatesServiceCallableFactory.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2022 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.dataflow.v1beta3.stub;
+
+import com.google.api.core.BetaApi;
+import com.google.api.gax.httpjson.HttpJsonCallSettings;
+import com.google.api.gax.httpjson.HttpJsonCallableFactory;
+import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable;
+import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
+import com.google.api.gax.httpjson.longrunning.stub.OperationsStub;
+import com.google.api.gax.rpc.BatchingCallSettings;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.OperationCallSettings;
+import com.google.api.gax.rpc.OperationCallable;
+import com.google.api.gax.rpc.PagedCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallable;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.longrunning.Operation;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * REST callable factory implementation for the FlexTemplatesService service API.
+ *
+ *
This class is for advanced usage.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class HttpJsonFlexTemplatesServiceCallableFactory
+ implements HttpJsonStubCallableFactory {
+
+ @Override
+ public UnaryCallable createUnaryCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ UnaryCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createUnaryCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public
+ UnaryCallable createPagedCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ PagedCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createPagedCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public UnaryCallable createBatchingCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ BatchingCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createBatchingCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @BetaApi(
+ "The surface for long-running operations is not stable yet and may change in the future.")
+ @Override
+ public
+ OperationCallable createOperationCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ OperationCallSettings callSettings,
+ ClientContext clientContext,
+ OperationsStub operationsStub) {
+ UnaryCallable innerCallable =
+ HttpJsonCallableFactory.createBaseUnaryCallable(
+ httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext);
+ HttpJsonOperationSnapshotCallable initialCallable =
+ new HttpJsonOperationSnapshotCallable(
+ innerCallable,
+ httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory());
+ return HttpJsonCallableFactory.createOperationCallable(
+ callSettings, clientContext, operationsStub.longRunningClient(), initialCallable);
+ }
+
+ @Override
+ public
+ ServerStreamingCallable createServerStreamingCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ ServerStreamingCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createServerStreamingCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonFlexTemplatesServiceStub.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonFlexTemplatesServiceStub.java
new file mode 100644
index 00000000..9ee342c5
--- /dev/null
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonFlexTemplatesServiceStub.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright 2022 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.dataflow.v1beta3.stub;
+
+import com.google.api.core.BetaApi;
+import com.google.api.core.InternalApi;
+import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.core.BackgroundResourceAggregation;
+import com.google.api.gax.httpjson.ApiMethodDescriptor;
+import com.google.api.gax.httpjson.HttpJsonCallSettings;
+import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
+import com.google.api.gax.httpjson.ProtoMessageRequestFormatter;
+import com.google.api.gax.httpjson.ProtoMessageResponseParser;
+import com.google.api.gax.httpjson.ProtoRestSerializer;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.dataflow.v1beta3.LaunchFlexTemplateRequest;
+import com.google.dataflow.v1beta3.LaunchFlexTemplateResponse;
+import com.google.protobuf.TypeRegistry;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * REST stub implementation for the FlexTemplatesService service API.
+ *
+ * This class is for advanced usage and reflects the underlying API directly.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class HttpJsonFlexTemplatesServiceStub extends FlexTemplatesServiceStub {
+ private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build();
+
+ private static final ApiMethodDescriptor
+ launchFlexTemplateMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.FlexTemplatesService/LaunchFlexTemplate")
+ .setHttpMethod("POST")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/locations/{location}/flexTemplates:launch",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "location", request.getLocation());
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ return fields;
+ })
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ return fields;
+ })
+ .setRequestBodyExtractor(
+ request ->
+ ProtoRestSerializer.create()
+ .toBody(
+ "*",
+ request.toBuilder().clearLocation().clearProjectId().build()))
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(LaunchFlexTemplateResponse.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private final UnaryCallable
+ launchFlexTemplateCallable;
+
+ private final BackgroundResource backgroundResources;
+ private final HttpJsonStubCallableFactory callableFactory;
+
+ public static final HttpJsonFlexTemplatesServiceStub create(
+ FlexTemplatesServiceStubSettings settings) throws IOException {
+ return new HttpJsonFlexTemplatesServiceStub(settings, ClientContext.create(settings));
+ }
+
+ public static final HttpJsonFlexTemplatesServiceStub create(ClientContext clientContext)
+ throws IOException {
+ return new HttpJsonFlexTemplatesServiceStub(
+ FlexTemplatesServiceStubSettings.newHttpJsonBuilder().build(), clientContext);
+ }
+
+ public static final HttpJsonFlexTemplatesServiceStub create(
+ ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException {
+ return new HttpJsonFlexTemplatesServiceStub(
+ FlexTemplatesServiceStubSettings.newHttpJsonBuilder().build(),
+ clientContext,
+ callableFactory);
+ }
+
+ /**
+ * Constructs an instance of HttpJsonFlexTemplatesServiceStub, using the given settings. This is
+ * protected so that it is easy to make a subclass, but otherwise, the static factory methods
+ * should be preferred.
+ */
+ protected HttpJsonFlexTemplatesServiceStub(
+ FlexTemplatesServiceStubSettings settings, ClientContext clientContext) throws IOException {
+ this(settings, clientContext, new HttpJsonFlexTemplatesServiceCallableFactory());
+ }
+
+ /**
+ * Constructs an instance of HttpJsonFlexTemplatesServiceStub, using the given settings. This is
+ * protected so that it is easy to make a subclass, but otherwise, the static factory methods
+ * should be preferred.
+ */
+ protected HttpJsonFlexTemplatesServiceStub(
+ FlexTemplatesServiceStubSettings settings,
+ ClientContext clientContext,
+ HttpJsonStubCallableFactory callableFactory)
+ throws IOException {
+ this.callableFactory = callableFactory;
+
+ HttpJsonCallSettings
+ launchFlexTemplateTransportSettings =
+ HttpJsonCallSettings.newBuilder()
+ .setMethodDescriptor(launchFlexTemplateMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+
+ this.launchFlexTemplateCallable =
+ callableFactory.createUnaryCallable(
+ launchFlexTemplateTransportSettings,
+ settings.launchFlexTemplateSettings(),
+ clientContext);
+
+ this.backgroundResources =
+ new BackgroundResourceAggregation(clientContext.getBackgroundResources());
+ }
+
+ @InternalApi
+ public static List getMethodDescriptors() {
+ List methodDescriptors = new ArrayList<>();
+ methodDescriptors.add(launchFlexTemplateMethodDescriptor);
+ return methodDescriptors;
+ }
+
+ @Override
+ public UnaryCallable
+ launchFlexTemplateCallable() {
+ return launchFlexTemplateCallable;
+ }
+
+ @Override
+ public final void close() {
+ try {
+ backgroundResources.close();
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new IllegalStateException("Failed to close resource", e);
+ }
+ }
+
+ @Override
+ public void shutdown() {
+ backgroundResources.shutdown();
+ }
+
+ @Override
+ public boolean isShutdown() {
+ return backgroundResources.isShutdown();
+ }
+
+ @Override
+ public boolean isTerminated() {
+ return backgroundResources.isTerminated();
+ }
+
+ @Override
+ public void shutdownNow() {
+ backgroundResources.shutdownNow();
+ }
+
+ @Override
+ public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
+ return backgroundResources.awaitTermination(duration, unit);
+ }
+}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonJobsV1Beta3CallableFactory.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonJobsV1Beta3CallableFactory.java
new file mode 100644
index 00000000..6395f23b
--- /dev/null
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonJobsV1Beta3CallableFactory.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2022 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.dataflow.v1beta3.stub;
+
+import com.google.api.core.BetaApi;
+import com.google.api.gax.httpjson.HttpJsonCallSettings;
+import com.google.api.gax.httpjson.HttpJsonCallableFactory;
+import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable;
+import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
+import com.google.api.gax.httpjson.longrunning.stub.OperationsStub;
+import com.google.api.gax.rpc.BatchingCallSettings;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.OperationCallSettings;
+import com.google.api.gax.rpc.OperationCallable;
+import com.google.api.gax.rpc.PagedCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallable;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.longrunning.Operation;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * REST callable factory implementation for the JobsV1Beta3 service API.
+ *
+ * This class is for advanced usage.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class HttpJsonJobsV1Beta3CallableFactory
+ implements HttpJsonStubCallableFactory {
+
+ @Override
+ public UnaryCallable createUnaryCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ UnaryCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createUnaryCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public
+ UnaryCallable createPagedCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ PagedCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createPagedCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public UnaryCallable createBatchingCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ BatchingCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createBatchingCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @BetaApi(
+ "The surface for long-running operations is not stable yet and may change in the future.")
+ @Override
+ public
+ OperationCallable createOperationCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ OperationCallSettings callSettings,
+ ClientContext clientContext,
+ OperationsStub operationsStub) {
+ UnaryCallable innerCallable =
+ HttpJsonCallableFactory.createBaseUnaryCallable(
+ httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext);
+ HttpJsonOperationSnapshotCallable initialCallable =
+ new HttpJsonOperationSnapshotCallable(
+ innerCallable,
+ httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory());
+ return HttpJsonCallableFactory.createOperationCallable(
+ callSettings, clientContext, operationsStub.longRunningClient(), initialCallable);
+ }
+
+ @Override
+ public
+ ServerStreamingCallable createServerStreamingCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ ServerStreamingCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createServerStreamingCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonJobsV1Beta3Stub.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonJobsV1Beta3Stub.java
new file mode 100644
index 00000000..639622ee
--- /dev/null
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonJobsV1Beta3Stub.java
@@ -0,0 +1,498 @@
+/*
+ * Copyright 2022 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.dataflow.v1beta3.stub;
+
+import static com.google.dataflow.v1beta3.JobsV1Beta3Client.AggregatedListJobsPagedResponse;
+import static com.google.dataflow.v1beta3.JobsV1Beta3Client.ListJobsPagedResponse;
+
+import com.google.api.core.BetaApi;
+import com.google.api.core.InternalApi;
+import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.core.BackgroundResourceAggregation;
+import com.google.api.gax.httpjson.ApiMethodDescriptor;
+import com.google.api.gax.httpjson.HttpJsonCallSettings;
+import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
+import com.google.api.gax.httpjson.ProtoMessageRequestFormatter;
+import com.google.api.gax.httpjson.ProtoMessageResponseParser;
+import com.google.api.gax.httpjson.ProtoRestSerializer;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.dataflow.v1beta3.CreateJobRequest;
+import com.google.dataflow.v1beta3.GetJobRequest;
+import com.google.dataflow.v1beta3.Job;
+import com.google.dataflow.v1beta3.ListJobsRequest;
+import com.google.dataflow.v1beta3.ListJobsResponse;
+import com.google.dataflow.v1beta3.Snapshot;
+import com.google.dataflow.v1beta3.SnapshotJobRequest;
+import com.google.dataflow.v1beta3.UpdateJobRequest;
+import com.google.protobuf.TypeRegistry;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * REST stub implementation for the JobsV1Beta3 service API.
+ *
+ * This class is for advanced usage and reflects the underlying API directly.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class HttpJsonJobsV1Beta3Stub extends JobsV1Beta3Stub {
+ private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build();
+
+ private static final ApiMethodDescriptor createJobMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.JobsV1Beta3/CreateJob")
+ .setHttpMethod("POST")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/locations/{location}/jobs",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "location", request.getLocation());
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ return fields;
+ })
+ .setAdditionalPaths("/v1b3/projects/{projectId}/jobs")
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "replaceJobId", request.getReplaceJobId());
+ serializer.putQueryParam(fields, "view", request.getView());
+ return fields;
+ })
+ .setRequestBodyExtractor(
+ request -> ProtoRestSerializer.create().toBody("job", request.getJob()))
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(Job.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor getJobMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.JobsV1Beta3/GetJob")
+ .setHttpMethod("GET")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "jobId", request.getJobId());
+ serializer.putPathParam(fields, "location", request.getLocation());
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ return fields;
+ })
+ .setAdditionalPaths("/v1b3/projects/{projectId}/jobs/{jobId}")
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "view", request.getView());
+ return fields;
+ })
+ .setRequestBodyExtractor(request -> null)
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(Job.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor updateJobMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.JobsV1Beta3/UpdateJob")
+ .setHttpMethod("PUT")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "jobId", request.getJobId());
+ serializer.putPathParam(fields, "location", request.getLocation());
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ return fields;
+ })
+ .setAdditionalPaths("/v1b3/projects/{projectId}/jobs/{jobId}")
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ return fields;
+ })
+ .setRequestBodyExtractor(
+ request -> ProtoRestSerializer.create().toBody("job", request.getJob()))
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(Job.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor
+ listJobsMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.JobsV1Beta3/ListJobs")
+ .setHttpMethod("GET")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/locations/{location}/jobs",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "location", request.getLocation());
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ return fields;
+ })
+ .setAdditionalPaths("/v1b3/projects/{projectId}/jobs")
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "filter", request.getFilter());
+ serializer.putQueryParam(fields, "pageSize", request.getPageSize());
+ serializer.putQueryParam(fields, "pageToken", request.getPageToken());
+ serializer.putQueryParam(fields, "view", request.getView());
+ return fields;
+ })
+ .setRequestBodyExtractor(request -> null)
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(ListJobsResponse.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor
+ aggregatedListJobsMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.JobsV1Beta3/AggregatedListJobs")
+ .setHttpMethod("GET")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/jobs:aggregated",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ return fields;
+ })
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "filter", request.getFilter());
+ serializer.putQueryParam(fields, "location", request.getLocation());
+ serializer.putQueryParam(fields, "pageSize", request.getPageSize());
+ serializer.putQueryParam(fields, "pageToken", request.getPageToken());
+ serializer.putQueryParam(fields, "view", request.getView());
+ return fields;
+ })
+ .setRequestBodyExtractor(request -> null)
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(ListJobsResponse.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor
+ snapshotJobMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.JobsV1Beta3/SnapshotJob")
+ .setHttpMethod("POST")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}:snapshot",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "jobId", request.getJobId());
+ serializer.putPathParam(fields, "location", request.getLocation());
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ return fields;
+ })
+ .setAdditionalPaths("/v1b3/projects/{projectId}/jobs/{jobId}:snapshot")
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ return fields;
+ })
+ .setRequestBodyExtractor(
+ request ->
+ ProtoRestSerializer.create()
+ .toBody(
+ "*",
+ request
+ .toBuilder()
+ .clearJobId()
+ .clearLocation()
+ .clearProjectId()
+ .build()))
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(Snapshot.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private final UnaryCallable createJobCallable;
+ private final UnaryCallable getJobCallable;
+ private final UnaryCallable updateJobCallable;
+ private final UnaryCallable listJobsCallable;
+ private final UnaryCallable listJobsPagedCallable;
+ private final UnaryCallable aggregatedListJobsCallable;
+ private final UnaryCallable
+ aggregatedListJobsPagedCallable;
+ private final UnaryCallable snapshotJobCallable;
+
+ private final BackgroundResource backgroundResources;
+ private final HttpJsonStubCallableFactory callableFactory;
+
+ public static final HttpJsonJobsV1Beta3Stub create(JobsV1Beta3StubSettings settings)
+ throws IOException {
+ return new HttpJsonJobsV1Beta3Stub(settings, ClientContext.create(settings));
+ }
+
+ public static final HttpJsonJobsV1Beta3Stub create(ClientContext clientContext)
+ throws IOException {
+ return new HttpJsonJobsV1Beta3Stub(
+ JobsV1Beta3StubSettings.newHttpJsonBuilder().build(), clientContext);
+ }
+
+ public static final HttpJsonJobsV1Beta3Stub create(
+ ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException {
+ return new HttpJsonJobsV1Beta3Stub(
+ JobsV1Beta3StubSettings.newHttpJsonBuilder().build(), clientContext, callableFactory);
+ }
+
+ /**
+ * Constructs an instance of HttpJsonJobsV1Beta3Stub, using the given settings. This is protected
+ * so that it is easy to make a subclass, but otherwise, the static factory methods should be
+ * preferred.
+ */
+ protected HttpJsonJobsV1Beta3Stub(JobsV1Beta3StubSettings settings, ClientContext clientContext)
+ throws IOException {
+ this(settings, clientContext, new HttpJsonJobsV1Beta3CallableFactory());
+ }
+
+ /**
+ * Constructs an instance of HttpJsonJobsV1Beta3Stub, using the given settings. This is protected
+ * so that it is easy to make a subclass, but otherwise, the static factory methods should be
+ * preferred.
+ */
+ protected HttpJsonJobsV1Beta3Stub(
+ JobsV1Beta3StubSettings settings,
+ ClientContext clientContext,
+ HttpJsonStubCallableFactory callableFactory)
+ throws IOException {
+ this.callableFactory = callableFactory;
+
+ HttpJsonCallSettings createJobTransportSettings =
+ HttpJsonCallSettings.newBuilder()
+ .setMethodDescriptor(createJobMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+ HttpJsonCallSettings getJobTransportSettings =
+ HttpJsonCallSettings.newBuilder()
+ .setMethodDescriptor(getJobMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+ HttpJsonCallSettings updateJobTransportSettings =
+ HttpJsonCallSettings.newBuilder()
+ .setMethodDescriptor(updateJobMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+ HttpJsonCallSettings listJobsTransportSettings =
+ HttpJsonCallSettings.newBuilder()
+ .setMethodDescriptor(listJobsMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+ HttpJsonCallSettings aggregatedListJobsTransportSettings =
+ HttpJsonCallSettings.newBuilder()
+ .setMethodDescriptor(aggregatedListJobsMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+ HttpJsonCallSettings snapshotJobTransportSettings =
+ HttpJsonCallSettings.newBuilder()
+ .setMethodDescriptor(snapshotJobMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+
+ this.createJobCallable =
+ callableFactory.createUnaryCallable(
+ createJobTransportSettings, settings.createJobSettings(), clientContext);
+ this.getJobCallable =
+ callableFactory.createUnaryCallable(
+ getJobTransportSettings, settings.getJobSettings(), clientContext);
+ this.updateJobCallable =
+ callableFactory.createUnaryCallable(
+ updateJobTransportSettings, settings.updateJobSettings(), clientContext);
+ this.listJobsCallable =
+ callableFactory.createUnaryCallable(
+ listJobsTransportSettings, settings.listJobsSettings(), clientContext);
+ this.listJobsPagedCallable =
+ callableFactory.createPagedCallable(
+ listJobsTransportSettings, settings.listJobsSettings(), clientContext);
+ this.aggregatedListJobsCallable =
+ callableFactory.createUnaryCallable(
+ aggregatedListJobsTransportSettings,
+ settings.aggregatedListJobsSettings(),
+ clientContext);
+ this.aggregatedListJobsPagedCallable =
+ callableFactory.createPagedCallable(
+ aggregatedListJobsTransportSettings,
+ settings.aggregatedListJobsSettings(),
+ clientContext);
+ this.snapshotJobCallable =
+ callableFactory.createUnaryCallable(
+ snapshotJobTransportSettings, settings.snapshotJobSettings(), clientContext);
+
+ this.backgroundResources =
+ new BackgroundResourceAggregation(clientContext.getBackgroundResources());
+ }
+
+ @InternalApi
+ public static List getMethodDescriptors() {
+ List methodDescriptors = new ArrayList<>();
+ methodDescriptors.add(createJobMethodDescriptor);
+ methodDescriptors.add(getJobMethodDescriptor);
+ methodDescriptors.add(updateJobMethodDescriptor);
+ methodDescriptors.add(listJobsMethodDescriptor);
+ methodDescriptors.add(aggregatedListJobsMethodDescriptor);
+ methodDescriptors.add(snapshotJobMethodDescriptor);
+ return methodDescriptors;
+ }
+
+ @Override
+ public UnaryCallable createJobCallable() {
+ return createJobCallable;
+ }
+
+ @Override
+ public UnaryCallable getJobCallable() {
+ return getJobCallable;
+ }
+
+ @Override
+ public UnaryCallable updateJobCallable() {
+ return updateJobCallable;
+ }
+
+ @Override
+ public UnaryCallable listJobsCallable() {
+ return listJobsCallable;
+ }
+
+ @Override
+ public UnaryCallable listJobsPagedCallable() {
+ return listJobsPagedCallable;
+ }
+
+ @Override
+ public UnaryCallable aggregatedListJobsCallable() {
+ return aggregatedListJobsCallable;
+ }
+
+ @Override
+ public UnaryCallable
+ aggregatedListJobsPagedCallable() {
+ return aggregatedListJobsPagedCallable;
+ }
+
+ @Override
+ public UnaryCallable snapshotJobCallable() {
+ return snapshotJobCallable;
+ }
+
+ @Override
+ public final void close() {
+ try {
+ backgroundResources.close();
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new IllegalStateException("Failed to close resource", e);
+ }
+ }
+
+ @Override
+ public void shutdown() {
+ backgroundResources.shutdown();
+ }
+
+ @Override
+ public boolean isShutdown() {
+ return backgroundResources.isShutdown();
+ }
+
+ @Override
+ public boolean isTerminated() {
+ return backgroundResources.isTerminated();
+ }
+
+ @Override
+ public void shutdownNow() {
+ backgroundResources.shutdownNow();
+ }
+
+ @Override
+ public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
+ return backgroundResources.awaitTermination(duration, unit);
+ }
+}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMessagesV1Beta3CallableFactory.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMessagesV1Beta3CallableFactory.java
new file mode 100644
index 00000000..3c2e80c1
--- /dev/null
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMessagesV1Beta3CallableFactory.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2022 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.dataflow.v1beta3.stub;
+
+import com.google.api.core.BetaApi;
+import com.google.api.gax.httpjson.HttpJsonCallSettings;
+import com.google.api.gax.httpjson.HttpJsonCallableFactory;
+import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable;
+import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
+import com.google.api.gax.httpjson.longrunning.stub.OperationsStub;
+import com.google.api.gax.rpc.BatchingCallSettings;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.OperationCallSettings;
+import com.google.api.gax.rpc.OperationCallable;
+import com.google.api.gax.rpc.PagedCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallable;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.longrunning.Operation;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * REST callable factory implementation for the MessagesV1Beta3 service API.
+ *
+ * This class is for advanced usage.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class HttpJsonMessagesV1Beta3CallableFactory
+ implements HttpJsonStubCallableFactory {
+
+ @Override
+ public UnaryCallable createUnaryCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ UnaryCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createUnaryCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public
+ UnaryCallable createPagedCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ PagedCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createPagedCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public UnaryCallable createBatchingCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ BatchingCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createBatchingCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @BetaApi(
+ "The surface for long-running operations is not stable yet and may change in the future.")
+ @Override
+ public
+ OperationCallable createOperationCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ OperationCallSettings callSettings,
+ ClientContext clientContext,
+ OperationsStub operationsStub) {
+ UnaryCallable innerCallable =
+ HttpJsonCallableFactory.createBaseUnaryCallable(
+ httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext);
+ HttpJsonOperationSnapshotCallable initialCallable =
+ new HttpJsonOperationSnapshotCallable(
+ innerCallable,
+ httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory());
+ return HttpJsonCallableFactory.createOperationCallable(
+ callSettings, clientContext, operationsStub.longRunningClient(), initialCallable);
+ }
+
+ @Override
+ public
+ ServerStreamingCallable createServerStreamingCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ ServerStreamingCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createServerStreamingCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMessagesV1Beta3Stub.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMessagesV1Beta3Stub.java
new file mode 100644
index 00000000..6eea1989
--- /dev/null
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMessagesV1Beta3Stub.java
@@ -0,0 +1,215 @@
+/*
+ * Copyright 2022 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.dataflow.v1beta3.stub;
+
+import static com.google.dataflow.v1beta3.MessagesV1Beta3Client.ListJobMessagesPagedResponse;
+
+import com.google.api.core.BetaApi;
+import com.google.api.core.InternalApi;
+import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.core.BackgroundResourceAggregation;
+import com.google.api.gax.httpjson.ApiMethodDescriptor;
+import com.google.api.gax.httpjson.HttpJsonCallSettings;
+import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
+import com.google.api.gax.httpjson.ProtoMessageRequestFormatter;
+import com.google.api.gax.httpjson.ProtoMessageResponseParser;
+import com.google.api.gax.httpjson.ProtoRestSerializer;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.dataflow.v1beta3.ListJobMessagesRequest;
+import com.google.dataflow.v1beta3.ListJobMessagesResponse;
+import com.google.protobuf.TypeRegistry;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * REST stub implementation for the MessagesV1Beta3 service API.
+ *
+ * This class is for advanced usage and reflects the underlying API directly.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class HttpJsonMessagesV1Beta3Stub extends MessagesV1Beta3Stub {
+ private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build();
+
+ private static final ApiMethodDescriptor
+ listJobMessagesMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.MessagesV1Beta3/ListJobMessages")
+ .setHttpMethod("GET")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/messages",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "jobId", request.getJobId());
+ serializer.putPathParam(fields, "location", request.getLocation());
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ return fields;
+ })
+ .setAdditionalPaths("/v1b3/projects/{projectId}/jobs/{jobId}/messages")
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "endTime", request.getEndTime());
+ serializer.putQueryParam(
+ fields, "minimumImportance", request.getMinimumImportance());
+ serializer.putQueryParam(fields, "pageSize", request.getPageSize());
+ serializer.putQueryParam(fields, "pageToken", request.getPageToken());
+ serializer.putQueryParam(fields, "startTime", request.getStartTime());
+ return fields;
+ })
+ .setRequestBodyExtractor(request -> null)
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(ListJobMessagesResponse.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private final UnaryCallable
+ listJobMessagesCallable;
+ private final UnaryCallable
+ listJobMessagesPagedCallable;
+
+ private final BackgroundResource backgroundResources;
+ private final HttpJsonStubCallableFactory callableFactory;
+
+ public static final HttpJsonMessagesV1Beta3Stub create(MessagesV1Beta3StubSettings settings)
+ throws IOException {
+ return new HttpJsonMessagesV1Beta3Stub(settings, ClientContext.create(settings));
+ }
+
+ public static final HttpJsonMessagesV1Beta3Stub create(ClientContext clientContext)
+ throws IOException {
+ return new HttpJsonMessagesV1Beta3Stub(
+ MessagesV1Beta3StubSettings.newHttpJsonBuilder().build(), clientContext);
+ }
+
+ public static final HttpJsonMessagesV1Beta3Stub create(
+ ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException {
+ return new HttpJsonMessagesV1Beta3Stub(
+ MessagesV1Beta3StubSettings.newHttpJsonBuilder().build(), clientContext, callableFactory);
+ }
+
+ /**
+ * Constructs an instance of HttpJsonMessagesV1Beta3Stub, using the given settings. This is
+ * protected so that it is easy to make a subclass, but otherwise, the static factory methods
+ * should be preferred.
+ */
+ protected HttpJsonMessagesV1Beta3Stub(
+ MessagesV1Beta3StubSettings settings, ClientContext clientContext) throws IOException {
+ this(settings, clientContext, new HttpJsonMessagesV1Beta3CallableFactory());
+ }
+
+ /**
+ * Constructs an instance of HttpJsonMessagesV1Beta3Stub, using the given settings. This is
+ * protected so that it is easy to make a subclass, but otherwise, the static factory methods
+ * should be preferred.
+ */
+ protected HttpJsonMessagesV1Beta3Stub(
+ MessagesV1Beta3StubSettings settings,
+ ClientContext clientContext,
+ HttpJsonStubCallableFactory callableFactory)
+ throws IOException {
+ this.callableFactory = callableFactory;
+
+ HttpJsonCallSettings
+ listJobMessagesTransportSettings =
+ HttpJsonCallSettings.newBuilder()
+ .setMethodDescriptor(listJobMessagesMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+
+ this.listJobMessagesCallable =
+ callableFactory.createUnaryCallable(
+ listJobMessagesTransportSettings, settings.listJobMessagesSettings(), clientContext);
+ this.listJobMessagesPagedCallable =
+ callableFactory.createPagedCallable(
+ listJobMessagesTransportSettings, settings.listJobMessagesSettings(), clientContext);
+
+ this.backgroundResources =
+ new BackgroundResourceAggregation(clientContext.getBackgroundResources());
+ }
+
+ @InternalApi
+ public static List getMethodDescriptors() {
+ List methodDescriptors = new ArrayList<>();
+ methodDescriptors.add(listJobMessagesMethodDescriptor);
+ return methodDescriptors;
+ }
+
+ @Override
+ public UnaryCallable listJobMessagesCallable() {
+ return listJobMessagesCallable;
+ }
+
+ @Override
+ public UnaryCallable
+ listJobMessagesPagedCallable() {
+ return listJobMessagesPagedCallable;
+ }
+
+ @Override
+ public final void close() {
+ try {
+ backgroundResources.close();
+ } catch (RuntimeException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new IllegalStateException("Failed to close resource", e);
+ }
+ }
+
+ @Override
+ public void shutdown() {
+ backgroundResources.shutdown();
+ }
+
+ @Override
+ public boolean isShutdown() {
+ return backgroundResources.isShutdown();
+ }
+
+ @Override
+ public boolean isTerminated() {
+ return backgroundResources.isTerminated();
+ }
+
+ @Override
+ public void shutdownNow() {
+ backgroundResources.shutdownNow();
+ }
+
+ @Override
+ public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
+ return backgroundResources.awaitTermination(duration, unit);
+ }
+}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMetricsV1Beta3CallableFactory.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMetricsV1Beta3CallableFactory.java
new file mode 100644
index 00000000..577eb62b
--- /dev/null
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMetricsV1Beta3CallableFactory.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2022 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.dataflow.v1beta3.stub;
+
+import com.google.api.core.BetaApi;
+import com.google.api.gax.httpjson.HttpJsonCallSettings;
+import com.google.api.gax.httpjson.HttpJsonCallableFactory;
+import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable;
+import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
+import com.google.api.gax.httpjson.longrunning.stub.OperationsStub;
+import com.google.api.gax.rpc.BatchingCallSettings;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.OperationCallSettings;
+import com.google.api.gax.rpc.OperationCallable;
+import com.google.api.gax.rpc.PagedCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallable;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.longrunning.Operation;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * REST callable factory implementation for the MetricsV1Beta3 service API.
+ *
+ * This class is for advanced usage.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class HttpJsonMetricsV1Beta3CallableFactory
+ implements HttpJsonStubCallableFactory {
+
+ @Override
+ public UnaryCallable createUnaryCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ UnaryCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createUnaryCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public
+ UnaryCallable createPagedCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ PagedCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createPagedCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public UnaryCallable createBatchingCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ BatchingCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createBatchingCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @BetaApi(
+ "The surface for long-running operations is not stable yet and may change in the future.")
+ @Override
+ public
+ OperationCallable createOperationCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ OperationCallSettings callSettings,
+ ClientContext clientContext,
+ OperationsStub operationsStub) {
+ UnaryCallable innerCallable =
+ HttpJsonCallableFactory.createBaseUnaryCallable(
+ httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext);
+ HttpJsonOperationSnapshotCallable initialCallable =
+ new HttpJsonOperationSnapshotCallable(
+ innerCallable,
+ httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory());
+ return HttpJsonCallableFactory.createOperationCallable(
+ callSettings, clientContext, operationsStub.longRunningClient(), initialCallable);
+ }
+
+ @Override
+ public
+ ServerStreamingCallable createServerStreamingCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ ServerStreamingCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createServerStreamingCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+}
diff --git a/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMetricsV1Beta3Stub.java b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMetricsV1Beta3Stub.java
new file mode 100644
index 00000000..56ccd933
--- /dev/null
+++ b/google-cloud-dataflow/src/main/java/com/google/dataflow/v1beta3/stub/HttpJsonMetricsV1Beta3Stub.java
@@ -0,0 +1,347 @@
+/*
+ * Copyright 2022 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.dataflow.v1beta3.stub;
+
+import static com.google.dataflow.v1beta3.MetricsV1Beta3Client.GetJobExecutionDetailsPagedResponse;
+import static com.google.dataflow.v1beta3.MetricsV1Beta3Client.GetStageExecutionDetailsPagedResponse;
+
+import com.google.api.core.BetaApi;
+import com.google.api.core.InternalApi;
+import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.core.BackgroundResourceAggregation;
+import com.google.api.gax.httpjson.ApiMethodDescriptor;
+import com.google.api.gax.httpjson.HttpJsonCallSettings;
+import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
+import com.google.api.gax.httpjson.ProtoMessageRequestFormatter;
+import com.google.api.gax.httpjson.ProtoMessageResponseParser;
+import com.google.api.gax.httpjson.ProtoRestSerializer;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.dataflow.v1beta3.GetJobExecutionDetailsRequest;
+import com.google.dataflow.v1beta3.GetJobMetricsRequest;
+import com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest;
+import com.google.dataflow.v1beta3.JobExecutionDetails;
+import com.google.dataflow.v1beta3.JobMetrics;
+import com.google.dataflow.v1beta3.StageExecutionDetails;
+import com.google.protobuf.TypeRegistry;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * REST stub implementation for the MetricsV1Beta3 service API.
+ *
+ * This class is for advanced usage and reflects the underlying API directly.
+ */
+@BetaApi
+@Generated("by gapic-generator-java")
+public class HttpJsonMetricsV1Beta3Stub extends MetricsV1Beta3Stub {
+ private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build();
+
+ private static final ApiMethodDescriptor
+ getJobMetricsMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.MetricsV1Beta3/GetJobMetrics")
+ .setHttpMethod("GET")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/metrics",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "jobId", request.getJobId());
+ serializer.putPathParam(fields, "location", request.getLocation());
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ return fields;
+ })
+ .setAdditionalPaths("/v1b3/projects/{projectId}/jobs/{jobId}/metrics")
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "startTime", request.getStartTime());
+ return fields;
+ })
+ .setRequestBodyExtractor(request -> null)
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(JobMetrics.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor
+ getJobExecutionDetailsMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.MetricsV1Beta3/GetJobExecutionDetails")
+ .setHttpMethod("GET")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/executionDetails",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "jobId", request.getJobId());
+ serializer.putPathParam(fields, "location", request.getLocation());
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ return fields;
+ })
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "pageSize", request.getPageSize());
+ serializer.putQueryParam(fields, "pageToken", request.getPageToken());
+ return fields;
+ })
+ .setRequestBodyExtractor(request -> null)
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(JobExecutionDetails.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor
+ getStageExecutionDetailsMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName("google.dataflow.v1beta3.MetricsV1Beta3/GetStageExecutionDetails")
+ .setHttpMethod("GET")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v1b3/projects/{projectId}/locations/{location}/jobs/{jobId}/stages/{stageId}/executionDetails",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "jobId", request.getJobId());
+ serializer.putPathParam(fields, "location", request.getLocation());
+ serializer.putPathParam(fields, "projectId", request.getProjectId());
+ serializer.putPathParam(fields, "stageId", request.getStageId());
+ return fields;
+ })
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "endTime", request.getEndTime());
+ serializer.putQueryParam(fields, "pageSize", request.getPageSize());
+ serializer.putQueryParam(fields, "pageToken", request.getPageToken());
+ serializer.putQueryParam(fields, "startTime", request.getStartTime());
+ return fields;
+ })
+ .setRequestBodyExtractor(request -> null)
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(StageExecutionDetails.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private final UnaryCallable getJobMetricsCallable;
+ private final UnaryCallable
+ getJobExecutionDetailsCallable;
+ private final UnaryCallable
+ getJobExecutionDetailsPagedCallable;
+ private final UnaryCallable
+ getStageExecutionDetailsCallable;
+ private final UnaryCallable<
+ GetStageExecutionDetailsRequest, GetStageExecutionDetailsPagedResponse>
+ getStageExecutionDetailsPagedCallable;
+
+ private final BackgroundResource backgroundResources;
+ private final HttpJsonStubCallableFactory callableFactory;
+
+ public static final HttpJsonMetricsV1Beta3Stub create(MetricsV1Beta3StubSettings settings)
+ throws IOException {
+ return new HttpJsonMetricsV1Beta3Stub(settings, ClientContext.create(settings));
+ }
+
+ public static final HttpJsonMetricsV1Beta3Stub create(ClientContext clientContext)
+ throws IOException {
+ return new HttpJsonMetricsV1Beta3Stub(
+ MetricsV1Beta3StubSettings.newHttpJsonBuilder().build(), clientContext);
+ }
+
+ public static final HttpJsonMetricsV1Beta3Stub create(
+ ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException {
+ return new HttpJsonMetricsV1Beta3Stub(
+ MetricsV1Beta3StubSettings.newHttpJsonBuilder().build(), clientContext, callableFactory);
+ }
+
+ /**
+ * Constructs an instance of HttpJsonMetricsV1Beta3Stub, using the given settings. This is
+ * protected so that it is easy to make a subclass, but otherwise, the static factory methods
+ * should be preferred.
+ */
+ protected HttpJsonMetricsV1Beta3Stub(
+ MetricsV1Beta3StubSettings settings, ClientContext clientContext) throws IOException {
+ this(settings, clientContext, new HttpJsonMetricsV1Beta3CallableFactory());
+ }
+
+ /**
+ * Constructs an instance of HttpJsonMetricsV1Beta3Stub, using the given settings. This is
+ * protected so that it is easy to make a subclass, but otherwise, the static factory methods
+ * should be preferred.
+ */
+ protected HttpJsonMetricsV1Beta3Stub(
+ MetricsV1Beta3StubSettings settings,
+ ClientContext clientContext,
+ HttpJsonStubCallableFactory callableFactory)
+ throws IOException {
+ this.callableFactory = callableFactory;
+
+ HttpJsonCallSettings getJobMetricsTransportSettings =
+ HttpJsonCallSettings.newBuilder()
+ .setMethodDescriptor(getJobMetricsMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+ HttpJsonCallSettings
+ getJobExecutionDetailsTransportSettings =
+ HttpJsonCallSettings.newBuilder()
+ .setMethodDescriptor(getJobExecutionDetailsMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+ HttpJsonCallSettings
+ getStageExecutionDetailsTransportSettings =
+ HttpJsonCallSettings
+ .newBuilder()
+ .setMethodDescriptor(getStageExecutionDetailsMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .build();
+
+ this.getJobMetricsCallable =
+ callableFactory.createUnaryCallable(
+ getJobMetricsTransportSettings, settings.getJobMetricsSettings(), clientContext);
+ this.getJobExecutionDetailsCallable =
+ callableFactory.createUnaryCallable(
+ getJobExecutionDetailsTransportSettings,
+ settings.getJobExecutionDetailsSettings(),
+ clientContext);
+ this.getJobExecutionDetailsPagedCallable =
+ callableFactory.createPagedCallable(
+ getJobExecutionDetailsTransportSettings,
+ settings.getJobExecutionDetailsSettings(),
+ clientContext);
+ this.getStageExecutionDetailsCallable =
+ callableFactory.createUnaryCallable(
+ getStageExecutionDetailsTransportSettings,
+ settings.getStageExecutionDetailsSettings(),
+ clientContext);
+ this.getStageExecutionDetailsPagedCallable =
+ callableFactory.createPagedCallable(
+ getStageExecutionDetailsTransportSettings,
+ settings.getStageExecutionDetailsSettings(),
+ clientContext);
+
+ this.backgroundResources =
+ new BackgroundResourceAggregation(clientContext.getBackgroundResources());
+ }
+
+ @InternalApi
+ public static List getMethodDescriptors() {
+ List methodDescriptors = new ArrayList<>();
+ methodDescriptors.add(getJobMetricsMethodDescriptor);
+ methodDescriptors.add(getJobExecutionDetailsMethodDescriptor);
+ methodDescriptors.add(getStageExecutionDetailsMethodDescriptor);
+ return methodDescriptors;
+ }
+
+ @Override
+ public UnaryCallable getJobMetricsCallable() {
+ return getJobMetricsCallable;
+ }
+
+ @Override
+ public UnaryCallable
+ getJobExecutionDetailsCallable() {
+ return getJobExecutionDetailsCallable;
+ }
+
+ @Override
+ public UnaryCallable
+ getJobExecutionDetailsPagedCallable() {
+ return getJobExecutionDetailsPagedCallable;
+ }
+
+ @Override
+ public UnaryCallable