Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
feat: bigquery Write API V1Beta2 public interface. (#637)
PiperOrigin-RevId: 339152802

Source-Author: Google APIs <noreply@google.com>
Source-Date: Mon Oct 26 17:26:54 2020 -0700
Source-Repo: googleapis/googleapis
Source-Sha: b3c2eb02e501d7eec36b4b08fcd981f32f8b4ff4
Source-Link: googleapis/googleapis@b3c2eb0
  • Loading branch information
yoshi-automation committed Oct 27, 2020
1 parent 88d4fc1 commit bb21e7b
Show file tree
Hide file tree
Showing 58 changed files with 23,138 additions and 133 deletions.
Expand Up @@ -31,6 +31,9 @@
*
* <p>The Read API can be used to read data from BigQuery.
*
* <p>New code should use the v1 Read API going forward, if they don't use Write API at the same
* time.
*
* <p>This class provides the ability to make remote calls to the backing service through method
* calls that map to API methods. Sample code to get started:
*
Expand Down

Large diffs are not rendered by default.

@@ -0,0 +1,238 @@
/*
* Copyright 2020 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.cloud.bigquery.storage.v1beta2;

import com.google.api.core.ApiFunction;
import com.google.api.core.BetaApi;
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.rpc.ApiClientHeaderProvider;
import com.google.api.gax.rpc.ClientContext;
import com.google.api.gax.rpc.ClientSettings;
import com.google.api.gax.rpc.StreamingCallSettings;
import com.google.api.gax.rpc.TransportChannelProvider;
import com.google.api.gax.rpc.UnaryCallSettings;
import com.google.cloud.bigquery.storage.v1beta2.stub.BigQueryWriteStubSettings;
import java.io.IOException;
import java.util.List;
import javax.annotation.Generated;

// AUTO-GENERATED DOCUMENTATION AND CLASS
/**
* Settings class to configure an instance of {@link BigQueryWriteClient}.
*
* <p>The default instance has everything set to sensible defaults:
*
* <ul>
* <li>The default service address (bigquerystorage.googleapis.com) and default port (443) are
* used.
* <li>Credentials are acquired automatically through Application Default Credentials.
* <li>Retries are configured for idempotent methods but not for non-idempotent methods.
* </ul>
*
* <p>The builder of this class is recursive, so contained classes are themselves builders. When
* build() is called, the tree of builders is called to create the complete settings object.
*
* <p>For example, to set the total timeout of createWriteStream to 30 seconds:
*
* <pre>
* <code>
* BigQueryWriteSettings.Builder bigQueryWriteSettingsBuilder =
* BigQueryWriteSettings.newBuilder();
* bigQueryWriteSettingsBuilder
* .createWriteStreamSettings()
* .setRetrySettings(
* bigQueryWriteSettingsBuilder.createWriteStreamSettings().getRetrySettings().toBuilder()
* .setTotalTimeout(Duration.ofSeconds(30))
* .build());
* BigQueryWriteSettings bigQueryWriteSettings = bigQueryWriteSettingsBuilder.build();
* </code>
* </pre>
*/
@Generated("by gapic-generator")
@BetaApi
public class BigQueryWriteSettings extends ClientSettings<BigQueryWriteSettings> {
/** Returns the object with the settings used for calls to createWriteStream. */
public UnaryCallSettings<CreateWriteStreamRequest, WriteStream> createWriteStreamSettings() {
return ((BigQueryWriteStubSettings) getStubSettings()).createWriteStreamSettings();
}

/** Returns the object with the settings used for calls to appendRows. */
public StreamingCallSettings<AppendRowsRequest, AppendRowsResponse> appendRowsSettings() {
return ((BigQueryWriteStubSettings) getStubSettings()).appendRowsSettings();
}

/** Returns the object with the settings used for calls to getWriteStream. */
public UnaryCallSettings<GetWriteStreamRequest, WriteStream> getWriteStreamSettings() {
return ((BigQueryWriteStubSettings) getStubSettings()).getWriteStreamSettings();
}

/** Returns the object with the settings used for calls to finalizeWriteStream. */
public UnaryCallSettings<FinalizeWriteStreamRequest, FinalizeWriteStreamResponse>
finalizeWriteStreamSettings() {
return ((BigQueryWriteStubSettings) getStubSettings()).finalizeWriteStreamSettings();
}

/** Returns the object with the settings used for calls to batchCommitWriteStreams. */
public UnaryCallSettings<BatchCommitWriteStreamsRequest, BatchCommitWriteStreamsResponse>
batchCommitWriteStreamsSettings() {
return ((BigQueryWriteStubSettings) getStubSettings()).batchCommitWriteStreamsSettings();
}

/** Returns the object with the settings used for calls to flushRows. */
public UnaryCallSettings<FlushRowsRequest, FlushRowsResponse> flushRowsSettings() {
return ((BigQueryWriteStubSettings) getStubSettings()).flushRowsSettings();
}

public static final BigQueryWriteSettings create(BigQueryWriteStubSettings stub)
throws IOException {
return new BigQueryWriteSettings.Builder(stub.toBuilder()).build();
}

/** Returns a builder for the default ExecutorProvider for this service. */
public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
return BigQueryWriteStubSettings.defaultExecutorProviderBuilder();
}

/** Returns the default service endpoint. */
public static String getDefaultEndpoint() {
return BigQueryWriteStubSettings.getDefaultEndpoint();
}

/** Returns the default service scopes. */
public static List<String> getDefaultServiceScopes() {
return BigQueryWriteStubSettings.getDefaultServiceScopes();
}

/** Returns a builder for the default credentials for this service. */
public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
return BigQueryWriteStubSettings.defaultCredentialsProviderBuilder();
}

/** Returns a builder for the default ChannelProvider for this service. */
public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
return BigQueryWriteStubSettings.defaultGrpcTransportProviderBuilder();
}

public static TransportChannelProvider defaultTransportChannelProvider() {
return BigQueryWriteStubSettings.defaultTransportChannelProvider();
}

@BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
return BigQueryWriteStubSettings.defaultApiClientHeaderProviderBuilder();
}

/** Returns a new builder for this class. */
public static Builder newBuilder() {
return Builder.createDefault();
}

/** Returns a new builder for this class. */
public static Builder newBuilder(ClientContext clientContext) {
return new Builder(clientContext);
}

/** Returns a builder containing all the values of this settings class. */
public Builder toBuilder() {
return new Builder(this);
}

protected BigQueryWriteSettings(Builder settingsBuilder) throws IOException {
super(settingsBuilder);
}

/** Builder for BigQueryWriteSettings. */
public static class Builder extends ClientSettings.Builder<BigQueryWriteSettings, Builder> {
protected Builder() throws IOException {
this((ClientContext) null);
}

protected Builder(ClientContext clientContext) {
super(BigQueryWriteStubSettings.newBuilder(clientContext));
}

private static Builder createDefault() {
return new Builder(BigQueryWriteStubSettings.newBuilder());
}

protected Builder(BigQueryWriteSettings settings) {
super(settings.getStubSettings().toBuilder());
}

protected Builder(BigQueryWriteStubSettings.Builder stubSettings) {
super(stubSettings);
}

public BigQueryWriteStubSettings.Builder getStubSettingsBuilder() {
return ((BigQueryWriteStubSettings.Builder) getStubSettings());
}

// NEXT_MAJOR_VER: remove 'throws Exception'
/**
* Applies the given settings updater function to all of the unary API methods in this service.
*
* <p>Note: This method does not support applying settings to streaming methods.
*/
public Builder applyToAllUnaryMethods(
ApiFunction<UnaryCallSettings.Builder<?, ?>, Void> settingsUpdater) throws Exception {
super.applyToAllUnaryMethods(
getStubSettingsBuilder().unaryMethodSettingsBuilders(), settingsUpdater);
return this;
}

/** Returns the builder for the settings used for calls to createWriteStream. */
public UnaryCallSettings.Builder<CreateWriteStreamRequest, WriteStream>
createWriteStreamSettings() {
return getStubSettingsBuilder().createWriteStreamSettings();
}

/** Returns the builder for the settings used for calls to appendRows. */
public StreamingCallSettings.Builder<AppendRowsRequest, AppendRowsResponse>
appendRowsSettings() {
return getStubSettingsBuilder().appendRowsSettings();
}

/** Returns the builder for the settings used for calls to getWriteStream. */
public UnaryCallSettings.Builder<GetWriteStreamRequest, WriteStream> getWriteStreamSettings() {
return getStubSettingsBuilder().getWriteStreamSettings();
}

/** Returns the builder for the settings used for calls to finalizeWriteStream. */
public UnaryCallSettings.Builder<FinalizeWriteStreamRequest, FinalizeWriteStreamResponse>
finalizeWriteStreamSettings() {
return getStubSettingsBuilder().finalizeWriteStreamSettings();
}

/** Returns the builder for the settings used for calls to batchCommitWriteStreams. */
public UnaryCallSettings.Builder<
BatchCommitWriteStreamsRequest, BatchCommitWriteStreamsResponse>
batchCommitWriteStreamsSettings() {
return getStubSettingsBuilder().batchCommitWriteStreamsSettings();
}

/** Returns the builder for the settings used for calls to flushRows. */
public UnaryCallSettings.Builder<FlushRowsRequest, FlushRowsResponse> flushRowsSettings() {
return getStubSettingsBuilder().flushRowsSettings();
}

@Override
public BigQueryWriteSettings build() throws IOException {
return new BigQueryWriteSettings(this);
}
}
}
Expand Up @@ -25,6 +25,9 @@
*
* <p>The Read API can be used to read data from BigQuery.
*
* <p>New code should use the v1 Read API going forward, if they don't use Write API at the same
* time.
*
* <p>Sample for BaseBigQueryReadClient:
*
* <pre>
Expand All @@ -37,6 +40,24 @@
* }
* </code>
* </pre>
*
* =================== BigQueryWriteClient ===================
*
* <p>Service Description: BigQuery Write API.
*
* <p>The Write API can be used to write data to BigQuery.
*
* <p>Sample for BigQueryWriteClient:
*
* <pre>
* <code>
* try (BigQueryWriteClient bigQueryWriteClient = BigQueryWriteClient.create()) {
* TableName parent = TableName.of("[PROJECT]", "[DATASET]", "[TABLE]");
* WriteStream writeStream = WriteStream.newBuilder().build();
* WriteStream response = bigQueryWriteClient.createWriteStream(parent, writeStream);
* }
* </code>
* </pre>
*/
@Generated("by gapic-generator")
package com.google.cloud.bigquery.storage.v1beta2;
Expand Down
Expand Up @@ -85,6 +85,7 @@ public class BigQueryReadStubSettings extends StubSettings<BigQueryReadStubSetti
private static final ImmutableList<String> DEFAULT_SERVICE_SCOPES =
ImmutableList.<String>builder()
.add("https://www.googleapis.com/auth/bigquery")
.add("https://www.googleapis.com/auth/bigquery.insertdata")
.add("https://www.googleapis.com/auth/bigquery.readonly")
.add("https://www.googleapis.com/auth/cloud-platform")
.build();
Expand Down Expand Up @@ -206,6 +207,18 @@ public static class Builder extends StubSettings.Builder<BigQueryReadStubSetting
ImmutableSet.copyOf(
Lists.<StatusCode.Code>newArrayList(
StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE)));
definitions.put(
"retry_policy_4_codes",
ImmutableSet.copyOf(
Lists.<StatusCode.Code>newArrayList(
StatusCode.Code.DEADLINE_EXCEEDED,
StatusCode.Code.UNAVAILABLE,
StatusCode.Code.RESOURCE_EXHAUSTED)));
definitions.put(
"retry_policy_6_codes",
ImmutableSet.copyOf(
Lists.<StatusCode.Code>newArrayList(
StatusCode.Code.DEADLINE_EXCEEDED, StatusCode.Code.UNAVAILABLE)));
definitions.put("no_retry_codes", ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList()));
definitions.put(
"retry_policy_3_codes",
Expand All @@ -215,6 +228,11 @@ public static class Builder extends StubSettings.Builder<BigQueryReadStubSetting
definitions.put(
"retry_policy_2_codes",
ImmutableSet.copyOf(Lists.<StatusCode.Code>newArrayList(StatusCode.Code.UNAVAILABLE)));
definitions.put(
"retry_policy_5_codes",
ImmutableSet.copyOf(
Lists.<StatusCode.Code>newArrayList(
StatusCode.Code.UNAVAILABLE, StatusCode.Code.RESOURCE_EXHAUSTED)));
RETRYABLE_CODE_DEFINITIONS = definitions.build();
}

Expand All @@ -234,6 +252,17 @@ public static class Builder extends StubSettings.Builder<BigQueryReadStubSetting
.setTotalTimeout(Duration.ofMillis(600000L))
.build();
definitions.put("retry_policy_1_params", settings);
settings =
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(100L))
.setRetryDelayMultiplier(1.3)
.setMaxRetryDelay(Duration.ofMillis(60000L))
.setInitialRpcTimeout(Duration.ofMillis(600000L))
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ofMillis(600000L))
.setTotalTimeout(Duration.ofMillis(600000L))
.build();
definitions.put("retry_policy_6_params", settings);
settings =
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(100L))
Expand All @@ -256,6 +285,28 @@ public static class Builder extends StubSettings.Builder<BigQueryReadStubSetting
.setTotalTimeout(Duration.ofMillis(86400000L))
.build();
definitions.put("retry_policy_2_params", settings);
settings =
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(100L))
.setRetryDelayMultiplier(1.3)
.setMaxRetryDelay(Duration.ofMillis(60000L))
.setInitialRpcTimeout(Duration.ofMillis(600000L))
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ofMillis(600000L))
.setTotalTimeout(Duration.ofMillis(600000L))
.build();
definitions.put("retry_policy_4_params", settings);
settings =
RetrySettings.newBuilder()
.setInitialRetryDelay(Duration.ofMillis(100L))
.setRetryDelayMultiplier(1.3)
.setMaxRetryDelay(Duration.ofMillis(60000L))
.setInitialRpcTimeout(Duration.ofMillis(86400000L))
.setRpcTimeoutMultiplier(1.0)
.setMaxRpcTimeout(Duration.ofMillis(86400000L))
.setTotalTimeout(Duration.ofMillis(86400000L))
.build();
definitions.put("retry_policy_5_params", settings);
settings = RetrySettings.newBuilder().setRpcTimeoutMultiplier(1.0).build();
definitions.put("no_retry_params", settings);
RETRY_PARAM_DEFINITIONS = definitions.build();
Expand Down

0 comments on commit bb21e7b

Please sign in to comment.