diff --git a/google-cloud-bigquery-connection/src/main/java/com/google/cloud/bigqueryconnection/v1/ConnectionServiceClient.java b/google-cloud-bigquery-connection/src/main/java/com/google/cloud/bigqueryconnection/v1/ConnectionServiceClient.java new file mode 100644 index 00000000..a27004c1 --- /dev/null +++ b/google-cloud-bigquery-connection/src/main/java/com/google/cloud/bigqueryconnection/v1/ConnectionServiceClient.java @@ -0,0 +1,1140 @@ +/* + * 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.bigqueryconnection.v1; + +import com.google.api.core.ApiFunction; +import com.google.api.core.ApiFuture; +import com.google.api.core.ApiFutures; +import com.google.api.core.BetaApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.paging.AbstractFixedSizeCollection; +import com.google.api.gax.paging.AbstractPage; +import com.google.api.gax.paging.AbstractPagedListResponse; +import com.google.api.gax.rpc.PageContext; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.api.resourcenames.ResourceName; +import com.google.cloud.bigquery.connection.v1.Connection; +import com.google.cloud.bigquery.connection.v1.ConnectionName; +import com.google.cloud.bigquery.connection.v1.CreateConnectionRequest; +import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest; +import com.google.cloud.bigquery.connection.v1.GetConnectionRequest; +import com.google.cloud.bigquery.connection.v1.ListConnectionsRequest; +import com.google.cloud.bigquery.connection.v1.ListConnectionsResponse; +import com.google.cloud.bigquery.connection.v1.LocationName; +import com.google.cloud.bigquery.connection.v1.UpdateConnectionRequest; +import com.google.cloud.bigqueryconnection.v1.stub.ConnectionServiceStub; +import com.google.cloud.bigqueryconnection.v1.stub.ConnectionServiceStubSettings; +import com.google.common.util.concurrent.MoreExecutors; +import com.google.iam.v1.GetIamPolicyRequest; +import com.google.iam.v1.GetPolicyOptions; +import com.google.iam.v1.Policy; +import com.google.iam.v1.SetIamPolicyRequest; +import com.google.iam.v1.TestIamPermissionsRequest; +import com.google.iam.v1.TestIamPermissionsResponse; +import com.google.protobuf.Empty; +import com.google.protobuf.FieldMask; +import java.io.IOException; +import java.util.List; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; + +// AUTO-GENERATED DOCUMENTATION AND SERVICE +/** + * Service Description: Manages external data source connections and credentials. + * + *
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: + * + *
+ *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * Connection connection = Connection.newBuilder().build();
+ * String connectionId = "";
+ * Connection response = connectionServiceClient.createConnection(parent, connection, connectionId);
+ * }
+ *
+ *
+ *
+ * Note: close() needs to be called on the connectionServiceClient object to clean up resources + * such as threads. In the example above, try-with-resources is used, which automatically calls + * close(). + * + *
The surface of this class includes several types of Java methods for each of the API's + * methods: + * + *
See the individual methods for example code. + * + *
Many parameters require resource names to be formatted in a particular way. To assist with + * these names, this class includes a format method for each type of name, and additionally a parse + * method to extract the individual identifiers contained within names that are returned. + * + *
This class can be customized by passing in a custom instance of ConnectionServiceSettings to + * create(). For example: + * + *
To customize credentials: + * + *
+ *
+ * ConnectionServiceSettings connectionServiceSettings =
+ * ConnectionServiceSettings.newBuilder()
+ * .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
+ * .build();
+ * ConnectionServiceClient connectionServiceClient =
+ * ConnectionServiceClient.create(connectionServiceSettings);
+ *
+ *
+ *
+ * To customize the endpoint:
+ *
+ *
+ *
+ * ConnectionServiceSettings connectionServiceSettings =
+ * ConnectionServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
+ * ConnectionServiceClient connectionServiceClient =
+ * ConnectionServiceClient.create(connectionServiceSettings);
+ *
+ *
+ */
+@Generated("by gapic-generator")
+@BetaApi
+public class ConnectionServiceClient implements BackgroundResource {
+ private final ConnectionServiceSettings settings;
+ private final ConnectionServiceStub stub;
+
+ /** Constructs an instance of ConnectionServiceClient with default settings. */
+ public static final ConnectionServiceClient create() throws IOException {
+ return create(ConnectionServiceSettings.newBuilder().build());
+ }
+
+ /**
+ * Constructs an instance of ConnectionServiceClient, using the given settings. The channels are
+ * created based on the settings passed in, or defaults for any settings that are not set.
+ */
+ public static final ConnectionServiceClient create(ConnectionServiceSettings settings)
+ throws IOException {
+ return new ConnectionServiceClient(settings);
+ }
+
+ /**
+ * Constructs an instance of ConnectionServiceClient, using the given stub for making calls. This
+ * is for advanced usage - prefer to use ConnectionServiceSettings}.
+ */
+ @BetaApi("A restructuring of stub classes is planned, so this may break in the future")
+ public static final ConnectionServiceClient create(ConnectionServiceStub stub) {
+ return new ConnectionServiceClient(stub);
+ }
+
+ /**
+ * Constructs an instance of ConnectionServiceClient, 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 ConnectionServiceClient(ConnectionServiceSettings settings) throws IOException {
+ this.settings = settings;
+ this.stub = ((ConnectionServiceStubSettings) settings.getStubSettings()).createStub();
+ }
+
+ @BetaApi("A restructuring of stub classes is planned, so this may break in the future")
+ protected ConnectionServiceClient(ConnectionServiceStub stub) {
+ this.settings = null;
+ this.stub = stub;
+ }
+
+ public final ConnectionServiceSettings getSettings() {
+ return settings;
+ }
+
+ @BetaApi("A restructuring of stub classes is planned, so this may break in the future")
+ public ConnectionServiceStub getStub() {
+ return stub;
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Creates a new connection.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * Connection connection = Connection.newBuilder().build();
+ * String connectionId = "";
+ * Connection response = connectionServiceClient.createConnection(parent, connection, connectionId);
+ * }
+ *
+ *
+ * @param parent Required. Parent resource name. Must be in the format
+ * `projects/{project_id}/locations/{location_id}`
+ * @param connection Required. Connection to create.
+ * @param connectionId Optional. Connection id that should be assigned to the created connection.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Connection createConnection(
+ LocationName parent, Connection connection, String connectionId) {
+ CreateConnectionRequest request =
+ CreateConnectionRequest.newBuilder()
+ .setParent(parent == null ? null : parent.toString())
+ .setConnection(connection)
+ .setConnectionId(connectionId)
+ .build();
+ return createConnection(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Creates a new connection.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * Connection connection = Connection.newBuilder().build();
+ * String connectionId = "";
+ * Connection response = connectionServiceClient.createConnection(parent.toString(), connection, connectionId);
+ * }
+ *
+ *
+ * @param parent Required. Parent resource name. Must be in the format
+ * `projects/{project_id}/locations/{location_id}`
+ * @param connection Required. Connection to create.
+ * @param connectionId Optional. Connection id that should be assigned to the created connection.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Connection createConnection(
+ String parent, Connection connection, String connectionId) {
+ CreateConnectionRequest request =
+ CreateConnectionRequest.newBuilder()
+ .setParent(parent)
+ .setConnection(connection)
+ .setConnectionId(connectionId)
+ .build();
+ return createConnection(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Creates a new connection.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * Connection connection = Connection.newBuilder().build();
+ * CreateConnectionRequest request = CreateConnectionRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .setConnection(connection)
+ * .build();
+ * Connection response = connectionServiceClient.createConnection(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Connection createConnection(CreateConnectionRequest request) {
+ return createConnectionCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Creates a new connection.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * Connection connection = Connection.newBuilder().build();
+ * CreateConnectionRequest request = CreateConnectionRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .setConnection(connection)
+ * .build();
+ * ApiFuture<Connection> future = connectionServiceClient.createConnectionCallable().futureCall(request);
+ * // Do something
+ * Connection response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * Connection response = connectionServiceClient.getConnection(name);
+ * }
+ *
+ *
+ * @param name Required. Name of the requested connection, for example:
+ * `projects/{project_id}/locations/{location_id}/connections/{connection_id}`
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Connection getConnection(ConnectionName name) {
+ GetConnectionRequest request =
+ GetConnectionRequest.newBuilder().setName(name == null ? null : name.toString()).build();
+ return getConnection(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Returns specified connection.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * Connection response = connectionServiceClient.getConnection(name.toString());
+ * }
+ *
+ *
+ * @param name Required. Name of the requested connection, for example:
+ * `projects/{project_id}/locations/{location_id}/connections/{connection_id}`
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Connection getConnection(String name) {
+ GetConnectionRequest request = GetConnectionRequest.newBuilder().setName(name).build();
+ return getConnection(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Returns specified connection.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * GetConnectionRequest request = GetConnectionRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
+ * Connection response = connectionServiceClient.getConnection(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Connection getConnection(GetConnectionRequest request) {
+ return getConnectionCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Returns specified connection.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * GetConnectionRequest request = GetConnectionRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
+ * ApiFuture<Connection> future = connectionServiceClient.getConnectionCallable().futureCall(request);
+ * // Do something
+ * Connection response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * int pageSize = 0;
+ * ListConnectionsRequest request = ListConnectionsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .setPageSize(pageSize)
+ * .build();
+ * for (Connection element : connectionServiceClient.listConnections(request).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListConnectionsPagedResponse listConnections(ListConnectionsRequest request) {
+ return listConnectionsPagedCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Returns a list of connections in the given project.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * int pageSize = 0;
+ * ListConnectionsRequest request = ListConnectionsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .setPageSize(pageSize)
+ * .build();
+ * ApiFuture<ListConnectionsPagedResponse> future = connectionServiceClient.listConnectionsPagedCallable().futureCall(request);
+ * // Do something
+ * for (Connection element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * int pageSize = 0;
+ * ListConnectionsRequest request = ListConnectionsRequest.newBuilder()
+ * .setParent(parent.toString())
+ * .setPageSize(pageSize)
+ * .build();
+ * while (true) {
+ * ListConnectionsResponse response = connectionServiceClient.listConnectionsCallable().call(request);
+ * for (Connection element : response.getConnectionsList()) {
+ * // doThingsWith(element);
+ * }
+ * String nextPageToken = response.getNextPageToken();
+ * if (!Strings.isNullOrEmpty(nextPageToken)) {
+ * request = request.toBuilder().setPageToken(nextPageToken).build();
+ * } else {
+ * break;
+ * }
+ * }
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * Connection connection = Connection.newBuilder().build();
+ * FieldMask updateMask = FieldMask.newBuilder().build();
+ * Connection response = connectionServiceClient.updateConnection(name, connection, updateMask);
+ * }
+ *
+ *
+ * @param name Required. Name of the connection to update, for example:
+ * `projects/{project_id}/locations/{location_id}/connections/{connection_id}`
+ * @param connection Required. Connection containing the updated fields.
+ * @param updateMask Required. Update mask for the connection fields to be updated.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Connection updateConnection(
+ ConnectionName name, Connection connection, FieldMask updateMask) {
+ UpdateConnectionRequest request =
+ UpdateConnectionRequest.newBuilder()
+ .setName(name == null ? null : name.toString())
+ .setConnection(connection)
+ .setUpdateMask(updateMask)
+ .build();
+ return updateConnection(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Updates the specified connection. For security reasons, also resets credential if connection
+ * properties are in the update field mask.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * Connection connection = Connection.newBuilder().build();
+ * FieldMask updateMask = FieldMask.newBuilder().build();
+ * Connection response = connectionServiceClient.updateConnection(name.toString(), connection, updateMask);
+ * }
+ *
+ *
+ * @param name Required. Name of the connection to update, for example:
+ * `projects/{project_id}/locations/{location_id}/connections/{connection_id}`
+ * @param connection Required. Connection containing the updated fields.
+ * @param updateMask Required. Update mask for the connection fields to be updated.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Connection updateConnection(
+ String name, Connection connection, FieldMask updateMask) {
+ UpdateConnectionRequest request =
+ UpdateConnectionRequest.newBuilder()
+ .setName(name)
+ .setConnection(connection)
+ .setUpdateMask(updateMask)
+ .build();
+ return updateConnection(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Updates the specified connection. For security reasons, also resets credential if connection
+ * properties are in the update field mask.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * Connection connection = Connection.newBuilder().build();
+ * FieldMask updateMask = FieldMask.newBuilder().build();
+ * UpdateConnectionRequest request = UpdateConnectionRequest.newBuilder()
+ * .setName(name.toString())
+ * .setConnection(connection)
+ * .setUpdateMask(updateMask)
+ * .build();
+ * Connection response = connectionServiceClient.updateConnection(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Connection updateConnection(UpdateConnectionRequest request) {
+ return updateConnectionCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Updates the specified connection. For security reasons, also resets credential if connection
+ * properties are in the update field mask.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * Connection connection = Connection.newBuilder().build();
+ * FieldMask updateMask = FieldMask.newBuilder().build();
+ * UpdateConnectionRequest request = UpdateConnectionRequest.newBuilder()
+ * .setName(name.toString())
+ * .setConnection(connection)
+ * .setUpdateMask(updateMask)
+ * .build();
+ * ApiFuture<Connection> future = connectionServiceClient.updateConnectionCallable().futureCall(request);
+ * // Do something
+ * Connection response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * connectionServiceClient.deleteConnection(name);
+ * }
+ *
+ *
+ * @param name Required. Name of the deleted connection, for example:
+ * `projects/{project_id}/locations/{location_id}/connections/{connection_id}`
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final void deleteConnection(ConnectionName name) {
+ DeleteConnectionRequest request =
+ DeleteConnectionRequest.newBuilder().setName(name == null ? null : name.toString()).build();
+ deleteConnection(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Deletes connection and associated credential.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * connectionServiceClient.deleteConnection(name.toString());
+ * }
+ *
+ *
+ * @param name Required. Name of the deleted connection, for example:
+ * `projects/{project_id}/locations/{location_id}/connections/{connection_id}`
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final void deleteConnection(String name) {
+ DeleteConnectionRequest request = DeleteConnectionRequest.newBuilder().setName(name).build();
+ deleteConnection(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Deletes connection and associated credential.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * DeleteConnectionRequest request = DeleteConnectionRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
+ * connectionServiceClient.deleteConnection(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final void deleteConnection(DeleteConnectionRequest request) {
+ deleteConnectionCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Deletes connection and associated credential.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ConnectionName name = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * DeleteConnectionRequest request = DeleteConnectionRequest.newBuilder()
+ * .setName(name.toString())
+ * .build();
+ * ApiFuture<Void> future = connectionServiceClient.deleteConnectionCallable().futureCall(request);
+ * // Do something
+ * future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * GetPolicyOptions options = GetPolicyOptions.newBuilder().build();
+ * Policy response = connectionServiceClient.getIamPolicy(resource, options);
+ * }
+ *
+ *
+ * @param resource REQUIRED: The resource for which the policy is being requested. See the
+ * operation documentation for the appropriate value for this field.
+ * @param options OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`.
+ * This field is only used by Cloud IAM.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Policy getIamPolicy(ResourceName resource, GetPolicyOptions options) {
+ GetIamPolicyRequest request =
+ GetIamPolicyRequest.newBuilder()
+ .setResource(resource == null ? null : resource.toString())
+ .setOptions(options)
+ .build();
+ return getIamPolicy(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy if the resource exists
+ * and does not have a policy set.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * GetPolicyOptions options = GetPolicyOptions.newBuilder().build();
+ * Policy response = connectionServiceClient.getIamPolicy(resource.toString(), options);
+ * }
+ *
+ *
+ * @param resource REQUIRED: The resource for which the policy is being requested. See the
+ * operation documentation for the appropriate value for this field.
+ * @param options OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`.
+ * This field is only used by Cloud IAM.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Policy getIamPolicy(String resource, GetPolicyOptions options) {
+ GetIamPolicyRequest request =
+ GetIamPolicyRequest.newBuilder().setResource(resource).setOptions(options).build();
+ return getIamPolicy(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy if the resource exists
+ * and does not have a policy set.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder()
+ * .setResource(resource.toString())
+ * .build();
+ * Policy response = connectionServiceClient.getIamPolicy(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Policy getIamPolicy(GetIamPolicyRequest request) {
+ return getIamPolicyCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Gets the access control policy for a resource. Returns an empty policy if the resource exists
+ * and does not have a policy set.
+ *
+ * Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * GetIamPolicyRequest request = GetIamPolicyRequest.newBuilder()
+ * .setResource(resource.toString())
+ * .build();
+ * ApiFuture<Policy> future = connectionServiceClient.getIamPolicyCallable().futureCall(request);
+ * // Do something
+ * Policy response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableCan return Public Errors: NOT_FOUND, INVALID_ARGUMENT and PERMISSION_DENIED + * + *
Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * Policy policy = Policy.newBuilder().build();
+ * Policy response = connectionServiceClient.setIamPolicy(resource, policy);
+ * }
+ *
+ *
+ * @param resource REQUIRED: The resource for which the policy is being specified. See the
+ * operation documentation for the appropriate value for this field.
+ * @param policy REQUIRED: The complete policy to be applied to the `resource`. The size of the
+ * policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud
+ * Platform services (such as Projects) might reject them.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Policy setIamPolicy(ResourceName resource, Policy policy) {
+ SetIamPolicyRequest request =
+ SetIamPolicyRequest.newBuilder()
+ .setResource(resource == null ? null : resource.toString())
+ .setPolicy(policy)
+ .build();
+ return setIamPolicy(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Sets the access control policy on the specified resource. Replaces any existing policy.
+ *
+ * Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and PERMISSION_DENIED + * + *
Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * Policy policy = Policy.newBuilder().build();
+ * Policy response = connectionServiceClient.setIamPolicy(resource.toString(), policy);
+ * }
+ *
+ *
+ * @param resource REQUIRED: The resource for which the policy is being specified. See the
+ * operation documentation for the appropriate value for this field.
+ * @param policy REQUIRED: The complete policy to be applied to the `resource`. The size of the
+ * policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud
+ * Platform services (such as Projects) might reject them.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Policy setIamPolicy(String resource, Policy policy) {
+ SetIamPolicyRequest request =
+ SetIamPolicyRequest.newBuilder().setResource(resource).setPolicy(policy).build();
+ return setIamPolicy(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Sets the access control policy on the specified resource. Replaces any existing policy.
+ *
+ * Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and PERMISSION_DENIED + * + *
Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * Policy policy = Policy.newBuilder().build();
+ * SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder()
+ * .setResource(resource.toString())
+ * .setPolicy(policy)
+ * .build();
+ * Policy response = connectionServiceClient.setIamPolicy(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Policy setIamPolicy(SetIamPolicyRequest request) {
+ return setIamPolicyCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Sets the access control policy on the specified resource. Replaces any existing policy.
+ *
+ * Can return Public Errors: NOT_FOUND, INVALID_ARGUMENT and PERMISSION_DENIED + * + *
Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * Policy policy = Policy.newBuilder().build();
+ * SetIamPolicyRequest request = SetIamPolicyRequest.newBuilder()
+ * .setResource(resource.toString())
+ * .setPolicy(policy)
+ * .build();
+ * ApiFuture<Policy> future = connectionServiceClient.setIamPolicyCallable().futureCall(request);
+ * // Do something
+ * Policy response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableNote: This operation is designed to be used for building permission-aware UIs and + * command-line tools, not for authorization checking. This operation may "fail open" without + * warning. + * + *
Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * List<String> permissions = new ArrayList<>();
+ * TestIamPermissionsResponse response = connectionServiceClient.testIamPermissions(resource, permissions);
+ * }
+ *
+ *
+ * @param resource REQUIRED: The resource for which the policy detail is being requested. See the
+ * operation documentation for the appropriate value for this field.
+ * @param permissions The set of permissions to check for the `resource`. Permissions with
+ * wildcards (such as '*' or 'storage.*') are not allowed. For more information see
+ * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final TestIamPermissionsResponse testIamPermissions(
+ ResourceName resource, ListNote: This operation is designed to be used for building permission-aware UIs and + * command-line tools, not for authorization checking. This operation may "fail open" without + * warning. + * + *
Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * List<String> permissions = new ArrayList<>();
+ * TestIamPermissionsResponse response = connectionServiceClient.testIamPermissions(resource.toString(), permissions);
+ * }
+ *
+ *
+ * @param resource REQUIRED: The resource for which the policy detail is being requested. See the
+ * operation documentation for the appropriate value for this field.
+ * @param permissions The set of permissions to check for the `resource`. Permissions with
+ * wildcards (such as '*' or 'storage.*') are not allowed. For more information see
+ * [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final TestIamPermissionsResponse testIamPermissions(
+ String resource, ListNote: This operation is designed to be used for building permission-aware UIs and + * command-line tools, not for authorization checking. This operation may "fail open" without + * warning. + * + *
Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * List<String> permissions = new ArrayList<>();
+ * TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder()
+ * .setResource(resource.toString())
+ * .addAllPermissions(permissions)
+ * .build();
+ * TestIamPermissionsResponse response = connectionServiceClient.testIamPermissions(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final TestIamPermissionsResponse testIamPermissions(TestIamPermissionsRequest request) {
+ return testIamPermissionsCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Returns permissions that a caller has on the specified resource. If the resource does not
+ * exist, this will return an empty set of permissions, not a NOT_FOUND error.
+ *
+ * Note: This operation is designed to be used for building permission-aware UIs and + * command-line tools, not for authorization checking. This operation may "fail open" without + * warning. + * + *
Sample code: + * + *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * ResourceName resource = ConnectionName.of("[PROJECT]", "[LOCATION]", "[CONNECTION]");
+ * List<String> permissions = new ArrayList<>();
+ * TestIamPermissionsRequest request = TestIamPermissionsRequest.newBuilder()
+ * .setResource(resource.toString())
+ * .addAllPermissions(permissions)
+ * .build();
+ * ApiFuture<TestIamPermissionsResponse> future = connectionServiceClient.testIamPermissionsCallable().futureCall(request);
+ * // Do something
+ * TestIamPermissionsResponse response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableThe default instance has everything set to sensible defaults: + * + *
The builder of this class is recursive, so contained classes are themselves builders. When + * build() is called, the tree of builders is called to create the complete settings object. + * + *
For example, to set the total timeout of createConnection to 30 seconds: + * + *
+ *
+ * ConnectionServiceSettings.Builder connectionServiceSettingsBuilder =
+ * ConnectionServiceSettings.newBuilder();
+ * connectionServiceSettingsBuilder
+ * .createConnectionSettings()
+ * .setRetrySettings(
+ * connectionServiceSettingsBuilder.createConnectionSettings().getRetrySettings().toBuilder()
+ * .setTotalTimeout(Duration.ofSeconds(30))
+ * .build());
+ * ConnectionServiceSettings connectionServiceSettings = connectionServiceSettingsBuilder.build();
+ *
+ *
+ */
+@Generated("by gapic-generator")
+@BetaApi
+public class ConnectionServiceSettings extends ClientSettingsNote: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction The interfaces provided are listed below, along with usage samples.
+ *
+ * ======================= ConnectionServiceClient =======================
+ *
+ * Service Description: Manages external data source connections and credentials.
+ *
+ * Sample for ConnectionServiceClient:
+ *
+ * This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator")
+@BetaApi("A restructuring of stub classes is planned, so this may break in the future")
+public abstract class ConnectionServiceStub implements BackgroundResource {
+
+ public UnaryCallable The default instance has everything set to sensible defaults:
+ *
+ * The builder of this class is recursive, so contained classes are themselves builders. When
+ * build() is called, the tree of builders is called to create the complete settings object.
+ *
+ * For example, to set the total timeout of createConnection to 30 seconds:
+ *
+ * Note: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction This class is for advanced usage.
+ */
+@Generated("by gapic-generator")
+@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
+public class GrpcConnectionServiceCallableFactory implements GrpcStubCallableFactory {
+ @Override
+ public This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator")
+@BetaApi("A restructuring of stub classes is planned, so this may break in the future")
+public class GrpcConnectionServiceStub extends ConnectionServiceStub {
+
+ private static final MethodDescriptor
+ *
+ */
+@Generated("by gapic-generator")
+package com.google.cloud.bigqueryconnection.v1;
+
+import javax.annotation.Generated;
diff --git a/google-cloud-bigquery-connection/src/main/java/com/google/cloud/bigqueryconnection/v1/stub/ConnectionServiceStub.java b/google-cloud-bigquery-connection/src/main/java/com/google/cloud/bigqueryconnection/v1/stub/ConnectionServiceStub.java
new file mode 100644
index 00000000..94190eff
--- /dev/null
+++ b/google-cloud-bigquery-connection/src/main/java/com/google/cloud/bigqueryconnection/v1/stub/ConnectionServiceStub.java
@@ -0,0 +1,88 @@
+/*
+ * 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.bigqueryconnection.v1.stub;
+
+import static com.google.cloud.bigqueryconnection.v1.ConnectionServiceClient.ListConnectionsPagedResponse;
+
+import com.google.api.core.BetaApi;
+import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.bigquery.connection.v1.Connection;
+import com.google.cloud.bigquery.connection.v1.CreateConnectionRequest;
+import com.google.cloud.bigquery.connection.v1.DeleteConnectionRequest;
+import com.google.cloud.bigquery.connection.v1.GetConnectionRequest;
+import com.google.cloud.bigquery.connection.v1.ListConnectionsRequest;
+import com.google.cloud.bigquery.connection.v1.ListConnectionsResponse;
+import com.google.cloud.bigquery.connection.v1.UpdateConnectionRequest;
+import com.google.iam.v1.GetIamPolicyRequest;
+import com.google.iam.v1.Policy;
+import com.google.iam.v1.SetIamPolicyRequest;
+import com.google.iam.v1.TestIamPermissionsRequest;
+import com.google.iam.v1.TestIamPermissionsResponse;
+import com.google.protobuf.Empty;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS
+/**
+ * Base stub class for BigQuery Connection API.
+ *
+ *
+ * try (ConnectionServiceClient connectionServiceClient = ConnectionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * Connection connection = Connection.newBuilder().build();
+ * String connectionId = "";
+ * Connection response = connectionServiceClient.createConnection(parent, connection, connectionId);
+ * }
+ *
+ *
+ *
+ *
+ *
+ *
+ */
+@Generated("by gapic-generator")
+@BetaApi
+public class ConnectionServiceStubSettings extends StubSettings
+ * ConnectionServiceStubSettings.Builder connectionServiceSettingsBuilder =
+ * ConnectionServiceStubSettings.newBuilder();
+ * connectionServiceSettingsBuilder
+ * .createConnectionSettings()
+ * .setRetrySettings(
+ * connectionServiceSettingsBuilder.createConnectionSettings().getRetrySettings().toBuilder()
+ * .setTotalTimeout(Duration.ofSeconds(30))
+ * .build());
+ * ConnectionServiceStubSettings connectionServiceSettings = connectionServiceSettingsBuilder.build();
+ *
+ *