listFunctionsCallable() {
+ return stub.listFunctionsCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Creates a new function. If a function with the given name already exists in the specified
+ * project, the long running operation will return `ALREADY_EXISTS` error.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * Function function = Function.newBuilder().build();
+ * String functionId = "functionId-62789869";
+ * Function response =
+ * functionServiceClient.createFunctionAsync(parent, function, functionId).get();
+ * }
+ * }
+ *
+ * @param parent Required. The project and location in which the function should be created,
+ * specified in the format `projects/*/locations/*`
+ * @param function Required. Function to be created.
+ * @param functionId The ID to use for the function, which will become the final component of the
+ * function's resource name.
+ * This value should be 4-63 characters, and valid characters are /[a-z][0-9]-/.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final OperationFuture createFunctionAsync(
+ LocationName parent, Function function, String functionId) {
+ CreateFunctionRequest request =
+ CreateFunctionRequest.newBuilder()
+ .setParent(parent == null ? null : parent.toString())
+ .setFunction(function)
+ .setFunctionId(functionId)
+ .build();
+ return createFunctionAsync(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Creates a new function. If a function with the given name already exists in the specified
+ * project, the long running operation will return `ALREADY_EXISTS` error.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
+ * Function function = Function.newBuilder().build();
+ * String functionId = "functionId-62789869";
+ * Function response =
+ * functionServiceClient.createFunctionAsync(parent, function, functionId).get();
+ * }
+ * }
+ *
+ * @param parent Required. The project and location in which the function should be created,
+ * specified in the format `projects/*/locations/*`
+ * @param function Required. Function to be created.
+ * @param functionId The ID to use for the function, which will become the final component of the
+ * function's resource name.
+ * This value should be 4-63 characters, and valid characters are /[a-z][0-9]-/.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final OperationFuture createFunctionAsync(
+ String parent, Function function, String functionId) {
+ CreateFunctionRequest request =
+ CreateFunctionRequest.newBuilder()
+ .setParent(parent)
+ .setFunction(function)
+ .setFunctionId(functionId)
+ .build();
+ return createFunctionAsync(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Creates a new function. If a function with the given name already exists in the specified
+ * project, the long running operation will return `ALREADY_EXISTS` error.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * CreateFunctionRequest request =
+ * CreateFunctionRequest.newBuilder()
+ * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
+ * .setFunction(Function.newBuilder().build())
+ * .setFunctionId("functionId-62789869")
+ * .build();
+ * Function response = functionServiceClient.createFunctionAsync(request).get();
+ * }
+ * }
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final OperationFuture createFunctionAsync(
+ CreateFunctionRequest request) {
+ return createFunctionOperationCallable().futureCall(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Creates a new function. If a function with the given name already exists in the specified
+ * project, the long running operation will return `ALREADY_EXISTS` error.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * CreateFunctionRequest request =
+ * CreateFunctionRequest.newBuilder()
+ * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
+ * .setFunction(Function.newBuilder().build())
+ * .setFunctionId("functionId-62789869")
+ * .build();
+ * OperationFuture future =
+ * functionServiceClient.createFunctionOperationCallable().futureCall(request);
+ * // Do something.
+ * Function response = future.get();
+ * }
+ * }
+ */
+ public final OperationCallable
+ createFunctionOperationCallable() {
+ return stub.createFunctionOperationCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Creates a new function. If a function with the given name already exists in the specified
+ * project, the long running operation will return `ALREADY_EXISTS` error.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * CreateFunctionRequest request =
+ * CreateFunctionRequest.newBuilder()
+ * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
+ * .setFunction(Function.newBuilder().build())
+ * .setFunctionId("functionId-62789869")
+ * .build();
+ * ApiFuture future =
+ * functionServiceClient.createFunctionCallable().futureCall(request);
+ * // Do something.
+ * Operation response = future.get();
+ * }
+ * }
+ */
+ public final UnaryCallable createFunctionCallable() {
+ return stub.createFunctionCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Updates existing function.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * Function function = Function.newBuilder().build();
+ * FieldMask updateMask = FieldMask.newBuilder().build();
+ * Function response = functionServiceClient.updateFunctionAsync(function, updateMask).get();
+ * }
+ * }
+ *
+ * @param function Required. New version of the function.
+ * @param updateMask The list of fields to be updated. If no field mask is provided, all provided
+ * fields in the request will be updated.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final OperationFuture updateFunctionAsync(
+ Function function, FieldMask updateMask) {
+ UpdateFunctionRequest request =
+ UpdateFunctionRequest.newBuilder().setFunction(function).setUpdateMask(updateMask).build();
+ return updateFunctionAsync(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Updates existing function.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * UpdateFunctionRequest request =
+ * UpdateFunctionRequest.newBuilder()
+ * .setFunction(Function.newBuilder().build())
+ * .setUpdateMask(FieldMask.newBuilder().build())
+ * .build();
+ * Function response = functionServiceClient.updateFunctionAsync(request).get();
+ * }
+ * }
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final OperationFuture updateFunctionAsync(
+ UpdateFunctionRequest request) {
+ return updateFunctionOperationCallable().futureCall(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Updates existing function.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * UpdateFunctionRequest request =
+ * UpdateFunctionRequest.newBuilder()
+ * .setFunction(Function.newBuilder().build())
+ * .setUpdateMask(FieldMask.newBuilder().build())
+ * .build();
+ * OperationFuture future =
+ * functionServiceClient.updateFunctionOperationCallable().futureCall(request);
+ * // Do something.
+ * Function response = future.get();
+ * }
+ * }
+ */
+ public final OperationCallable
+ updateFunctionOperationCallable() {
+ return stub.updateFunctionOperationCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Updates existing function.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * UpdateFunctionRequest request =
+ * UpdateFunctionRequest.newBuilder()
+ * .setFunction(Function.newBuilder().build())
+ * .setUpdateMask(FieldMask.newBuilder().build())
+ * .build();
+ * ApiFuture future =
+ * functionServiceClient.updateFunctionCallable().futureCall(request);
+ * // Do something.
+ * Operation response = future.get();
+ * }
+ * }
+ */
+ public final UnaryCallable updateFunctionCallable() {
+ return stub.updateFunctionCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Deletes a function with the given name from the specified project. If the given function is
+ * used by some trigger, the trigger will be updated to remove this function.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * FunctionName name = FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]");
+ * functionServiceClient.deleteFunctionAsync(name).get();
+ * }
+ * }
+ *
+ * @param name Required. The name of the function which should be deleted.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final OperationFuture deleteFunctionAsync(FunctionName name) {
+ DeleteFunctionRequest request =
+ DeleteFunctionRequest.newBuilder().setName(name == null ? null : name.toString()).build();
+ return deleteFunctionAsync(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Deletes a function with the given name from the specified project. If the given function is
+ * used by some trigger, the trigger will be updated to remove this function.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * String name = FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString();
+ * functionServiceClient.deleteFunctionAsync(name).get();
+ * }
+ * }
+ *
+ * @param name Required. The name of the function which should be deleted.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final OperationFuture deleteFunctionAsync(String name) {
+ DeleteFunctionRequest request = DeleteFunctionRequest.newBuilder().setName(name).build();
+ return deleteFunctionAsync(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Deletes a function with the given name from the specified project. If the given function is
+ * used by some trigger, the trigger will be updated to remove this function.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * DeleteFunctionRequest request =
+ * DeleteFunctionRequest.newBuilder()
+ * .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .build();
+ * functionServiceClient.deleteFunctionAsync(request).get();
+ * }
+ * }
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final OperationFuture deleteFunctionAsync(
+ DeleteFunctionRequest request) {
+ return deleteFunctionOperationCallable().futureCall(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Deletes a function with the given name from the specified project. If the given function is
+ * used by some trigger, the trigger will be updated to remove this function.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * DeleteFunctionRequest request =
+ * DeleteFunctionRequest.newBuilder()
+ * .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .build();
+ * OperationFuture future =
+ * functionServiceClient.deleteFunctionOperationCallable().futureCall(request);
+ * // Do something.
+ * future.get();
+ * }
+ * }
+ */
+ public final OperationCallable
+ deleteFunctionOperationCallable() {
+ return stub.deleteFunctionOperationCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Deletes a function with the given name from the specified project. If the given function is
+ * used by some trigger, the trigger will be updated to remove this function.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * DeleteFunctionRequest request =
+ * DeleteFunctionRequest.newBuilder()
+ * .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .build();
+ * ApiFuture future =
+ * functionServiceClient.deleteFunctionCallable().futureCall(request);
+ * // Do something.
+ * future.get();
+ * }
+ * }
+ */
+ public final UnaryCallable deleteFunctionCallable() {
+ return stub.deleteFunctionCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Returns a signed URL for uploading a function source code. For more information about the
+ * signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls. Once
+ * the function source code upload is complete, the used signed URL should be provided in
+ * CreateFunction or UpdateFunction request as a reference to the function source code.
+ *
+ * When uploading source code to the generated signed URL, please follow these restrictions:
+ *
+ *
+ * - Source file type should be a zip file.
+ *
- No credentials should be attached - the signed URLs provide access to the target bucket
+ * using internal service identity; if credentials were attached, the identity from the
+ * credentials would be used, but that identity does not have permissions to upload files to
+ * the URL.
+ *
+ *
+ * When making a HTTP PUT request, these two headers need to be specified:
+ *
+ *
+ * - `content-type: application/zip`
+ *
+ *
+ * And this header SHOULD NOT be specified:
+ *
+ *
+ * - `Authorization: Bearer YOUR_TOKEN`
+ *
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * GenerateUploadUrlRequest request =
+ * GenerateUploadUrlRequest.newBuilder()
+ * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
+ * .build();
+ * GenerateUploadUrlResponse response = functionServiceClient.generateUploadUrl(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 GenerateUploadUrlResponse generateUploadUrl(GenerateUploadUrlRequest request) {
+ return generateUploadUrlCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Returns a signed URL for uploading a function source code. For more information about the
+ * signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls. Once
+ * the function source code upload is complete, the used signed URL should be provided in
+ * CreateFunction or UpdateFunction request as a reference to the function source code.
+ *
+ * When uploading source code to the generated signed URL, please follow these restrictions:
+ *
+ *
+ * - Source file type should be a zip file.
+ *
- No credentials should be attached - the signed URLs provide access to the target bucket
+ * using internal service identity; if credentials were attached, the identity from the
+ * credentials would be used, but that identity does not have permissions to upload files to
+ * the URL.
+ *
+ *
+ * When making a HTTP PUT request, these two headers need to be specified:
+ *
+ *
+ * - `content-type: application/zip`
+ *
+ *
+ * And this header SHOULD NOT be specified:
+ *
+ *
+ * - `Authorization: Bearer YOUR_TOKEN`
+ *
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * GenerateUploadUrlRequest request =
+ * GenerateUploadUrlRequest.newBuilder()
+ * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
+ * .build();
+ * ApiFuture future =
+ * functionServiceClient.generateUploadUrlCallable().futureCall(request);
+ * // Do something.
+ * GenerateUploadUrlResponse response = future.get();
+ * }
+ * }
+ */
+ public final UnaryCallable
+ generateUploadUrlCallable() {
+ return stub.generateUploadUrlCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Returns a signed URL for downloading deployed function source code. The URL is only valid for a
+ * limited period and should be used within 30 minutes of generation. For more information about
+ * the signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * GenerateDownloadUrlRequest request =
+ * GenerateDownloadUrlRequest.newBuilder()
+ * .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .build();
+ * GenerateDownloadUrlResponse response = functionServiceClient.generateDownloadUrl(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 GenerateDownloadUrlResponse generateDownloadUrl(GenerateDownloadUrlRequest request) {
+ return generateDownloadUrlCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Returns a signed URL for downloading deployed function source code. The URL is only valid for a
+ * limited period and should be used within 30 minutes of generation. For more information about
+ * the signed URL usage see: https://cloud.google.com/storage/docs/access-control/signed-urls
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * GenerateDownloadUrlRequest request =
+ * GenerateDownloadUrlRequest.newBuilder()
+ * .setName(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .build();
+ * ApiFuture future =
+ * functionServiceClient.generateDownloadUrlCallable().futureCall(request);
+ * // Do something.
+ * GenerateDownloadUrlResponse response = future.get();
+ * }
+ * }
+ */
+ public final UnaryCallable
+ generateDownloadUrlCallable() {
+ return stub.generateDownloadUrlCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Returns a list of runtimes that are supported for the requested project.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
+ * ListRuntimesResponse response = functionServiceClient.listRuntimes(parent);
+ * }
+ * }
+ *
+ * @param parent Required. The project and location from which the runtimes should be listed,
+ * specified in the format `projects/*/locations/*`
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListRuntimesResponse listRuntimes(LocationName parent) {
+ ListRuntimesRequest request =
+ ListRuntimesRequest.newBuilder()
+ .setParent(parent == null ? null : parent.toString())
+ .build();
+ return listRuntimes(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Returns a list of runtimes that are supported for the requested project.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
+ * ListRuntimesResponse response = functionServiceClient.listRuntimes(parent);
+ * }
+ * }
+ *
+ * @param parent Required. The project and location from which the runtimes should be listed,
+ * specified in the format `projects/*/locations/*`
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListRuntimesResponse listRuntimes(String parent) {
+ ListRuntimesRequest request = ListRuntimesRequest.newBuilder().setParent(parent).build();
+ return listRuntimes(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Returns a list of runtimes that are supported for the requested project.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * ListRuntimesRequest request =
+ * ListRuntimesRequest.newBuilder()
+ * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
+ * .setFilter("filter-1274492040")
+ * .build();
+ * ListRuntimesResponse response = functionServiceClient.listRuntimes(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 ListRuntimesResponse listRuntimes(ListRuntimesRequest request) {
+ return listRuntimesCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Returns a list of runtimes that are supported for the requested project.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * ListRuntimesRequest request =
+ * ListRuntimesRequest.newBuilder()
+ * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString())
+ * .setFilter("filter-1274492040")
+ * .build();
+ * ApiFuture future =
+ * functionServiceClient.listRuntimesCallable().futureCall(request);
+ * // Do something.
+ * ListRuntimesResponse response = future.get();
+ * }
+ * }
+ */
+ public final UnaryCallable listRuntimesCallable() {
+ return stub.listRuntimesCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * ListLocationsRequest request =
+ * ListLocationsRequest.newBuilder()
+ * .setName("name3373707")
+ * .setFilter("filter-1274492040")
+ * .setPageSize(883849137)
+ * .setPageToken("pageToken873572522")
+ * .build();
+ * for (Location element : functionServiceClient.listLocations(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 ListLocationsPagedResponse listLocations(ListLocationsRequest request) {
+ return listLocationsPagedCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * ListLocationsRequest request =
+ * ListLocationsRequest.newBuilder()
+ * .setName("name3373707")
+ * .setFilter("filter-1274492040")
+ * .setPageSize(883849137)
+ * .setPageToken("pageToken873572522")
+ * .build();
+ * ApiFuture future =
+ * functionServiceClient.listLocationsPagedCallable().futureCall(request);
+ * // Do something.
+ * for (Location element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ * }
+ */
+ public final UnaryCallable
+ listLocationsPagedCallable() {
+ return stub.listLocationsPagedCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Lists information about the supported locations for this service.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * ListLocationsRequest request =
+ * ListLocationsRequest.newBuilder()
+ * .setName("name3373707")
+ * .setFilter("filter-1274492040")
+ * .setPageSize(883849137)
+ * .setPageToken("pageToken873572522")
+ * .build();
+ * while (true) {
+ * ListLocationsResponse response =
+ * functionServiceClient.listLocationsCallable().call(request);
+ * for (Location element : response.getLocationsList()) {
+ * // doThingsWith(element);
+ * }
+ * String nextPageToken = response.getNextPageToken();
+ * if (!Strings.isNullOrEmpty(nextPageToken)) {
+ * request = request.toBuilder().setPageToken(nextPageToken).build();
+ * } else {
+ * break;
+ * }
+ * }
+ * }
+ * }
+ */
+ public final UnaryCallable listLocationsCallable() {
+ return stub.listLocationsCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Sets the access control policy on the specified resource. Replacesany existing policy.
+ *
+ * Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`errors.
+ *
+ *
Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * SetIamPolicyRequest request =
+ * SetIamPolicyRequest.newBuilder()
+ * .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .setPolicy(Policy.newBuilder().build())
+ * .setUpdateMask(FieldMask.newBuilder().build())
+ * .build();
+ * Policy response = functionServiceClient.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. Replacesany existing policy.
+ *
+ * Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`errors.
+ *
+ *
Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * SetIamPolicyRequest request =
+ * SetIamPolicyRequest.newBuilder()
+ * .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .setPolicy(Policy.newBuilder().build())
+ * .setUpdateMask(FieldMask.newBuilder().build())
+ * .build();
+ * ApiFuture future = functionServiceClient.setIamPolicyCallable().futureCall(request);
+ * // Do something.
+ * Policy response = future.get();
+ * }
+ * }
+ */
+ public final UnaryCallable setIamPolicyCallable() {
+ return stub.setIamPolicyCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Gets the access control policy for a resource. Returns an empty policyif the resource exists
+ * and does not have a policy set.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * GetIamPolicyRequest request =
+ * GetIamPolicyRequest.newBuilder()
+ * .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .setOptions(GetPolicyOptions.newBuilder().build())
+ * .build();
+ * Policy response = functionServiceClient.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 policyif the resource exists
+ * and does not have a policy set.
+ *
+ * Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * GetIamPolicyRequest request =
+ * GetIamPolicyRequest.newBuilder()
+ * .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .setOptions(GetPolicyOptions.newBuilder().build())
+ * .build();
+ * ApiFuture future = functionServiceClient.getIamPolicyCallable().futureCall(request);
+ * // Do something.
+ * Policy response = future.get();
+ * }
+ * }
+ */
+ public final UnaryCallable getIamPolicyCallable() {
+ return stub.getIamPolicyCallable();
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD.
+ /**
+ * Returns permissions that a caller has on the specified resource. If theresource does not exist,
+ * this will return an empty set ofpermissions, not a `NOT_FOUND` error.
+ *
+ * Note: This operation is designed to be used for buildingpermission-aware UIs and
+ * command-line tools, not for authorizationchecking. This operation may "fail open" without
+ * warning.
+ *
+ *
Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * TestIamPermissionsRequest request =
+ * TestIamPermissionsRequest.newBuilder()
+ * .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .addAllPermissions(new ArrayList())
+ * .build();
+ * TestIamPermissionsResponse response = functionServiceClient.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 theresource does not exist,
+ * this will return an empty set ofpermissions, not a `NOT_FOUND` error.
+ *
+ * Note: This operation is designed to be used for buildingpermission-aware UIs and
+ * command-line tools, not for authorizationchecking. This operation may "fail open" without
+ * warning.
+ *
+ *
Sample code:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * TestIamPermissionsRequest request =
+ * TestIamPermissionsRequest.newBuilder()
+ * .setResource(FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]").toString())
+ * .addAllPermissions(new ArrayList())
+ * .build();
+ * ApiFuture future =
+ * functionServiceClient.testIamPermissionsCallable().futureCall(request);
+ * // Do something.
+ * TestIamPermissionsResponse response = future.get();
+ * }
+ * }
+ */
+ public final UnaryCallable
+ testIamPermissionsCallable() {
+ return stub.testIamPermissionsCallable();
+ }
+
+ @Override
+ public final void close() {
+ stub.close();
+ }
+
+ @Override
+ public void shutdown() {
+ stub.shutdown();
+ }
+
+ @Override
+ public boolean isShutdown() {
+ return stub.isShutdown();
+ }
+
+ @Override
+ public boolean isTerminated() {
+ return stub.isTerminated();
+ }
+
+ @Override
+ public void shutdownNow() {
+ stub.shutdownNow();
+ }
+
+ @Override
+ public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
+ return stub.awaitTermination(duration, unit);
+ }
+
+ public static class ListFunctionsPagedResponse
+ extends AbstractPagedListResponse<
+ ListFunctionsRequest,
+ ListFunctionsResponse,
+ Function,
+ ListFunctionsPage,
+ ListFunctionsFixedSizeCollection> {
+
+ public static ApiFuture createAsync(
+ PageContext context,
+ ApiFuture futureResponse) {
+ ApiFuture futurePage =
+ ListFunctionsPage.createEmptyPage().createPageAsync(context, futureResponse);
+ return ApiFutures.transform(
+ futurePage,
+ input -> new ListFunctionsPagedResponse(input),
+ MoreExecutors.directExecutor());
+ }
+
+ private ListFunctionsPagedResponse(ListFunctionsPage page) {
+ super(page, ListFunctionsFixedSizeCollection.createEmptyCollection());
+ }
+ }
+
+ public static class ListFunctionsPage
+ extends AbstractPage<
+ ListFunctionsRequest, ListFunctionsResponse, Function, ListFunctionsPage> {
+
+ private ListFunctionsPage(
+ PageContext context,
+ ListFunctionsResponse response) {
+ super(context, response);
+ }
+
+ private static ListFunctionsPage createEmptyPage() {
+ return new ListFunctionsPage(null, null);
+ }
+
+ @Override
+ protected ListFunctionsPage createPage(
+ PageContext context,
+ ListFunctionsResponse response) {
+ return new ListFunctionsPage(context, response);
+ }
+
+ @Override
+ public ApiFuture createPageAsync(
+ PageContext context,
+ ApiFuture futureResponse) {
+ return super.createPageAsync(context, futureResponse);
+ }
+ }
+
+ public static class ListFunctionsFixedSizeCollection
+ extends AbstractFixedSizeCollection<
+ ListFunctionsRequest,
+ ListFunctionsResponse,
+ Function,
+ ListFunctionsPage,
+ ListFunctionsFixedSizeCollection> {
+
+ private ListFunctionsFixedSizeCollection(List pages, int collectionSize) {
+ super(pages, collectionSize);
+ }
+
+ private static ListFunctionsFixedSizeCollection createEmptyCollection() {
+ return new ListFunctionsFixedSizeCollection(null, 0);
+ }
+
+ @Override
+ protected ListFunctionsFixedSizeCollection createCollection(
+ List pages, int collectionSize) {
+ return new ListFunctionsFixedSizeCollection(pages, collectionSize);
+ }
+ }
+
+ public static class ListLocationsPagedResponse
+ extends AbstractPagedListResponse<
+ ListLocationsRequest,
+ ListLocationsResponse,
+ Location,
+ ListLocationsPage,
+ ListLocationsFixedSizeCollection> {
+
+ public static ApiFuture createAsync(
+ PageContext context,
+ ApiFuture futureResponse) {
+ ApiFuture futurePage =
+ ListLocationsPage.createEmptyPage().createPageAsync(context, futureResponse);
+ return ApiFutures.transform(
+ futurePage,
+ input -> new ListLocationsPagedResponse(input),
+ MoreExecutors.directExecutor());
+ }
+
+ private ListLocationsPagedResponse(ListLocationsPage page) {
+ super(page, ListLocationsFixedSizeCollection.createEmptyCollection());
+ }
+ }
+
+ public static class ListLocationsPage
+ extends AbstractPage<
+ ListLocationsRequest, ListLocationsResponse, Location, ListLocationsPage> {
+
+ private ListLocationsPage(
+ PageContext context,
+ ListLocationsResponse response) {
+ super(context, response);
+ }
+
+ private static ListLocationsPage createEmptyPage() {
+ return new ListLocationsPage(null, null);
+ }
+
+ @Override
+ protected ListLocationsPage createPage(
+ PageContext context,
+ ListLocationsResponse response) {
+ return new ListLocationsPage(context, response);
+ }
+
+ @Override
+ public ApiFuture createPageAsync(
+ PageContext context,
+ ApiFuture futureResponse) {
+ return super.createPageAsync(context, futureResponse);
+ }
+ }
+
+ public static class ListLocationsFixedSizeCollection
+ extends AbstractFixedSizeCollection<
+ ListLocationsRequest,
+ ListLocationsResponse,
+ Location,
+ ListLocationsPage,
+ ListLocationsFixedSizeCollection> {
+
+ private ListLocationsFixedSizeCollection(List pages, int collectionSize) {
+ super(pages, collectionSize);
+ }
+
+ private static ListLocationsFixedSizeCollection createEmptyCollection() {
+ return new ListLocationsFixedSizeCollection(null, 0);
+ }
+
+ @Override
+ protected ListLocationsFixedSizeCollection createCollection(
+ List pages, int collectionSize) {
+ return new ListLocationsFixedSizeCollection(pages, collectionSize);
+ }
+ }
+}
diff --git a/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/FunctionServiceSettings.java b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/FunctionServiceSettings.java
new file mode 100644
index 00000000..af930bf9
--- /dev/null
+++ b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/FunctionServiceSettings.java
@@ -0,0 +1,376 @@
+/*
+ * 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.cloud.functions.v2;
+
+import static com.google.cloud.functions.v2.FunctionServiceClient.ListFunctionsPagedResponse;
+import static com.google.cloud.functions.v2.FunctionServiceClient.ListLocationsPagedResponse;
+
+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.httpjson.InstantiatingHttpJsonChannelProvider;
+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.OperationCallSettings;
+import com.google.api.gax.rpc.PagedCallSettings;
+import com.google.api.gax.rpc.TransportChannelProvider;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.cloud.functions.v2.stub.FunctionServiceStubSettings;
+import com.google.cloud.location.ListLocationsRequest;
+import com.google.cloud.location.ListLocationsResponse;
+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.longrunning.Operation;
+import com.google.protobuf.Empty;
+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 FunctionServiceClient}.
+ *
+ * The default instance has everything set to sensible defaults:
+ *
+ *
+ * - The default service address (cloudfunctions.googleapis.com) and default port (443) are
+ * used.
+ *
- Credentials are acquired automatically through Application Default Credentials.
+ *
- Retries are configured for idempotent methods but not for non-idempotent methods.
+ *
+ *
+ * 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 getFunction to 30 seconds:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * FunctionServiceSettings.Builder functionServiceSettingsBuilder =
+ * FunctionServiceSettings.newBuilder();
+ * functionServiceSettingsBuilder
+ * .getFunctionSettings()
+ * .setRetrySettings(
+ * functionServiceSettingsBuilder
+ * .getFunctionSettings()
+ * .getRetrySettings()
+ * .toBuilder()
+ * .setTotalTimeout(Duration.ofSeconds(30))
+ * .build());
+ * FunctionServiceSettings functionServiceSettings = functionServiceSettingsBuilder.build();
+ * }
+ */
+@Generated("by gapic-generator-java")
+public class FunctionServiceSettings extends ClientSettings {
+
+ /** Returns the object with the settings used for calls to getFunction. */
+ public UnaryCallSettings getFunctionSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).getFunctionSettings();
+ }
+
+ /** Returns the object with the settings used for calls to listFunctions. */
+ public PagedCallSettings
+ listFunctionsSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).listFunctionsSettings();
+ }
+
+ /** Returns the object with the settings used for calls to createFunction. */
+ public UnaryCallSettings createFunctionSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).createFunctionSettings();
+ }
+
+ /** Returns the object with the settings used for calls to createFunction. */
+ public OperationCallSettings
+ createFunctionOperationSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).createFunctionOperationSettings();
+ }
+
+ /** Returns the object with the settings used for calls to updateFunction. */
+ public UnaryCallSettings updateFunctionSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).updateFunctionSettings();
+ }
+
+ /** Returns the object with the settings used for calls to updateFunction. */
+ public OperationCallSettings
+ updateFunctionOperationSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).updateFunctionOperationSettings();
+ }
+
+ /** Returns the object with the settings used for calls to deleteFunction. */
+ public UnaryCallSettings deleteFunctionSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).deleteFunctionSettings();
+ }
+
+ /** Returns the object with the settings used for calls to deleteFunction. */
+ public OperationCallSettings
+ deleteFunctionOperationSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).deleteFunctionOperationSettings();
+ }
+
+ /** Returns the object with the settings used for calls to generateUploadUrl. */
+ public UnaryCallSettings
+ generateUploadUrlSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).generateUploadUrlSettings();
+ }
+
+ /** Returns the object with the settings used for calls to generateDownloadUrl. */
+ public UnaryCallSettings
+ generateDownloadUrlSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).generateDownloadUrlSettings();
+ }
+
+ /** Returns the object with the settings used for calls to listRuntimes. */
+ public UnaryCallSettings listRuntimesSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).listRuntimesSettings();
+ }
+
+ /** Returns the object with the settings used for calls to listLocations. */
+ public PagedCallSettings
+ listLocationsSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).listLocationsSettings();
+ }
+
+ /** Returns the object with the settings used for calls to setIamPolicy. */
+ public UnaryCallSettings setIamPolicySettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).setIamPolicySettings();
+ }
+
+ /** Returns the object with the settings used for calls to getIamPolicy. */
+ public UnaryCallSettings getIamPolicySettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).getIamPolicySettings();
+ }
+
+ /** Returns the object with the settings used for calls to testIamPermissions. */
+ public UnaryCallSettings
+ testIamPermissionsSettings() {
+ return ((FunctionServiceStubSettings) getStubSettings()).testIamPermissionsSettings();
+ }
+
+ public static final FunctionServiceSettings create(FunctionServiceStubSettings stub)
+ throws IOException {
+ return new FunctionServiceSettings.Builder(stub.toBuilder()).build();
+ }
+
+ /** Returns a builder for the default ExecutorProvider for this service. */
+ public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
+ return FunctionServiceStubSettings.defaultExecutorProviderBuilder();
+ }
+
+ /** Returns the default service endpoint. */
+ public static String getDefaultEndpoint() {
+ return FunctionServiceStubSettings.getDefaultEndpoint();
+ }
+
+ /** Returns the default service scopes. */
+ public static List getDefaultServiceScopes() {
+ return FunctionServiceStubSettings.getDefaultServiceScopes();
+ }
+
+ /** Returns a builder for the default credentials for this service. */
+ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
+ return FunctionServiceStubSettings.defaultCredentialsProviderBuilder();
+ }
+
+ /** Returns a builder for the default gRPC ChannelProvider for this service. */
+ public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
+ return FunctionServiceStubSettings.defaultGrpcTransportProviderBuilder();
+ }
+
+ /** Returns a builder for the default REST ChannelProvider for this service. */
+ @BetaApi
+ public static InstantiatingHttpJsonChannelProvider.Builder
+ defaultHttpJsonTransportProviderBuilder() {
+ return FunctionServiceStubSettings.defaultHttpJsonTransportProviderBuilder();
+ }
+
+ public static TransportChannelProvider defaultTransportChannelProvider() {
+ return FunctionServiceStubSettings.defaultTransportChannelProvider();
+ }
+
+ @BetaApi("The surface for customizing headers is not stable yet and may change in the future.")
+ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
+ return FunctionServiceStubSettings.defaultApiClientHeaderProviderBuilder();
+ }
+
+ /** 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);
+ }
+
+ /** Returns a builder containing all the values of this settings class. */
+ public Builder toBuilder() {
+ return new Builder(this);
+ }
+
+ protected FunctionServiceSettings(Builder settingsBuilder) throws IOException {
+ super(settingsBuilder);
+ }
+
+ /** Builder for FunctionServiceSettings. */
+ public static class Builder extends ClientSettings.Builder {
+
+ protected Builder() throws IOException {
+ this(((ClientContext) null));
+ }
+
+ protected Builder(ClientContext clientContext) {
+ super(FunctionServiceStubSettings.newBuilder(clientContext));
+ }
+
+ protected Builder(FunctionServiceSettings settings) {
+ super(settings.getStubSettings().toBuilder());
+ }
+
+ protected Builder(FunctionServiceStubSettings.Builder stubSettings) {
+ super(stubSettings);
+ }
+
+ private static Builder createDefault() {
+ return new Builder(FunctionServiceStubSettings.newBuilder());
+ }
+
+ @BetaApi
+ private static Builder createHttpJsonDefault() {
+ return new Builder(FunctionServiceStubSettings.newHttpJsonBuilder());
+ }
+
+ public FunctionServiceStubSettings.Builder getStubSettingsBuilder() {
+ return ((FunctionServiceStubSettings.Builder) getStubSettings());
+ }
+
+ /**
+ * Applies the given settings updater function to all of the unary API methods in this service.
+ *
+ * Note: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction, Void> settingsUpdater) {
+ super.applyToAllUnaryMethods(
+ getStubSettingsBuilder().unaryMethodSettingsBuilders(), settingsUpdater);
+ return this;
+ }
+
+ /** Returns the builder for the settings used for calls to getFunction. */
+ public UnaryCallSettings.Builder getFunctionSettings() {
+ return getStubSettingsBuilder().getFunctionSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to listFunctions. */
+ public PagedCallSettings.Builder<
+ ListFunctionsRequest, ListFunctionsResponse, ListFunctionsPagedResponse>
+ listFunctionsSettings() {
+ return getStubSettingsBuilder().listFunctionsSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to createFunction. */
+ public UnaryCallSettings.Builder createFunctionSettings() {
+ return getStubSettingsBuilder().createFunctionSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to createFunction. */
+ public OperationCallSettings.Builder
+ createFunctionOperationSettings() {
+ return getStubSettingsBuilder().createFunctionOperationSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to updateFunction. */
+ public UnaryCallSettings.Builder updateFunctionSettings() {
+ return getStubSettingsBuilder().updateFunctionSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to updateFunction. */
+ public OperationCallSettings.Builder
+ updateFunctionOperationSettings() {
+ return getStubSettingsBuilder().updateFunctionOperationSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to deleteFunction. */
+ public UnaryCallSettings.Builder deleteFunctionSettings() {
+ return getStubSettingsBuilder().deleteFunctionSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to deleteFunction. */
+ public OperationCallSettings.Builder
+ deleteFunctionOperationSettings() {
+ return getStubSettingsBuilder().deleteFunctionOperationSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to generateUploadUrl. */
+ public UnaryCallSettings.Builder
+ generateUploadUrlSettings() {
+ return getStubSettingsBuilder().generateUploadUrlSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to generateDownloadUrl. */
+ public UnaryCallSettings.Builder
+ generateDownloadUrlSettings() {
+ return getStubSettingsBuilder().generateDownloadUrlSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to listRuntimes. */
+ public UnaryCallSettings.Builder
+ listRuntimesSettings() {
+ return getStubSettingsBuilder().listRuntimesSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to listLocations. */
+ public PagedCallSettings.Builder<
+ ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
+ listLocationsSettings() {
+ return getStubSettingsBuilder().listLocationsSettings();
+ }
+
+ /** Returns the builder for the settings used for calls to setIamPolicy. */
+ public UnaryCallSettings.Builder setIamPolicySettings() {
+ return getStubSettingsBuilder().setIamPolicySettings();
+ }
+
+ /** Returns the builder for the settings used for calls to getIamPolicy. */
+ public UnaryCallSettings.Builder getIamPolicySettings() {
+ return getStubSettingsBuilder().getIamPolicySettings();
+ }
+
+ /** Returns the builder for the settings used for calls to testIamPermissions. */
+ public UnaryCallSettings.Builder
+ testIamPermissionsSettings() {
+ return getStubSettingsBuilder().testIamPermissionsSettings();
+ }
+
+ @Override
+ public FunctionServiceSettings build() throws IOException {
+ return new FunctionServiceSettings(this);
+ }
+ }
+}
diff --git a/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/gapic_metadata.json b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/gapic_metadata.json
new file mode 100644
index 00000000..97bf66fa
--- /dev/null
+++ b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/gapic_metadata.json
@@ -0,0 +1,54 @@
+{
+ "schema": "1.0",
+ "comment": "This file maps proto services/RPCs to the corresponding library clients/methods",
+ "language": "java",
+ "protoPackage": "google.cloud.functions.v2",
+ "libraryPackage": "com.google.cloud.functions.v2",
+ "services": {
+ "FunctionService": {
+ "clients": {
+ "grpc": {
+ "libraryClient": "FunctionServiceClient",
+ "rpcs": {
+ "CreateFunction": {
+ "methods": ["createFunctionAsync", "createFunctionAsync", "createFunctionAsync", "createFunctionOperationCallable", "createFunctionCallable"]
+ },
+ "DeleteFunction": {
+ "methods": ["deleteFunctionAsync", "deleteFunctionAsync", "deleteFunctionAsync", "deleteFunctionOperationCallable", "deleteFunctionCallable"]
+ },
+ "GenerateDownloadUrl": {
+ "methods": ["generateDownloadUrl", "generateDownloadUrlCallable"]
+ },
+ "GenerateUploadUrl": {
+ "methods": ["generateUploadUrl", "generateUploadUrlCallable"]
+ },
+ "GetFunction": {
+ "methods": ["getFunction", "getFunction", "getFunction", "getFunctionCallable"]
+ },
+ "GetIamPolicy": {
+ "methods": ["getIamPolicy", "getIamPolicyCallable"]
+ },
+ "ListFunctions": {
+ "methods": ["listFunctions", "listFunctions", "listFunctions", "listFunctionsPagedCallable", "listFunctionsCallable"]
+ },
+ "ListLocations": {
+ "methods": ["listLocations", "listLocationsPagedCallable", "listLocationsCallable"]
+ },
+ "ListRuntimes": {
+ "methods": ["listRuntimes", "listRuntimes", "listRuntimes", "listRuntimesCallable"]
+ },
+ "SetIamPolicy": {
+ "methods": ["setIamPolicy", "setIamPolicyCallable"]
+ },
+ "TestIamPermissions": {
+ "methods": ["testIamPermissions", "testIamPermissionsCallable"]
+ },
+ "UpdateFunction": {
+ "methods": ["updateFunctionAsync", "updateFunctionAsync", "updateFunctionOperationCallable", "updateFunctionCallable"]
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/package-info.java b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/package-info.java
new file mode 100644
index 00000000..5fa55e94
--- /dev/null
+++ b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/package-info.java
@@ -0,0 +1,45 @@
+/*
+ * 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.
+ */
+
+/**
+ * A client to Cloud Functions API
+ *
+ * The interfaces provided are listed below, along with usage samples.
+ *
+ *
======================= FunctionServiceClient =======================
+ *
+ *
Service Description: Google Cloud Functions is used to deploy functions that are executed by
+ * Google in response to various events. Data connected with that event is passed to a function as
+ * the input data.
+ *
+ *
A **function** is a resource which describes a function that should be
+ * executed and how it is triggered.
+ *
+ *
Sample for FunctionServiceClient:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * try (FunctionServiceClient functionServiceClient = FunctionServiceClient.create()) {
+ * FunctionName name = FunctionName.of("[PROJECT]", "[LOCATION]", "[FUNCTION]");
+ * Function response = functionServiceClient.getFunction(name);
+ * }
+ * }
+ */
+@Generated("by gapic-generator-java")
+package com.google.cloud.functions.v2;
+
+import javax.annotation.Generated;
diff --git a/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/FunctionServiceStub.java b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/FunctionServiceStub.java
new file mode 100644
index 00000000..f29a7aa8
--- /dev/null
+++ b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/FunctionServiceStub.java
@@ -0,0 +1,146 @@
+/*
+ * 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.cloud.functions.v2.stub;
+
+import static com.google.cloud.functions.v2.FunctionServiceClient.ListFunctionsPagedResponse;
+import static com.google.cloud.functions.v2.FunctionServiceClient.ListLocationsPagedResponse;
+
+import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.rpc.OperationCallable;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.functions.v2.CreateFunctionRequest;
+import com.google.cloud.functions.v2.DeleteFunctionRequest;
+import com.google.cloud.functions.v2.Function;
+import com.google.cloud.functions.v2.GenerateDownloadUrlRequest;
+import com.google.cloud.functions.v2.GenerateDownloadUrlResponse;
+import com.google.cloud.functions.v2.GenerateUploadUrlRequest;
+import com.google.cloud.functions.v2.GenerateUploadUrlResponse;
+import com.google.cloud.functions.v2.GetFunctionRequest;
+import com.google.cloud.functions.v2.ListFunctionsRequest;
+import com.google.cloud.functions.v2.ListFunctionsResponse;
+import com.google.cloud.functions.v2.ListRuntimesRequest;
+import com.google.cloud.functions.v2.ListRuntimesResponse;
+import com.google.cloud.functions.v2.OperationMetadata;
+import com.google.cloud.functions.v2.UpdateFunctionRequest;
+import com.google.cloud.location.ListLocationsRequest;
+import com.google.cloud.location.ListLocationsResponse;
+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.longrunning.Operation;
+import com.google.longrunning.stub.OperationsStub;
+import com.google.protobuf.Empty;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * Base stub class for the FunctionService service API.
+ *
+ * This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator-java")
+public abstract class FunctionServiceStub implements BackgroundResource {
+
+ public OperationsStub getOperationsStub() {
+ return null;
+ }
+
+ public com.google.api.gax.httpjson.longrunning.stub.OperationsStub getHttpJsonOperationsStub() {
+ return null;
+ }
+
+ public UnaryCallable getFunctionCallable() {
+ throw new UnsupportedOperationException("Not implemented: getFunctionCallable()");
+ }
+
+ public UnaryCallable
+ listFunctionsPagedCallable() {
+ throw new UnsupportedOperationException("Not implemented: listFunctionsPagedCallable()");
+ }
+
+ public UnaryCallable listFunctionsCallable() {
+ throw new UnsupportedOperationException("Not implemented: listFunctionsCallable()");
+ }
+
+ public OperationCallable
+ createFunctionOperationCallable() {
+ throw new UnsupportedOperationException("Not implemented: createFunctionOperationCallable()");
+ }
+
+ public UnaryCallable createFunctionCallable() {
+ throw new UnsupportedOperationException("Not implemented: createFunctionCallable()");
+ }
+
+ public OperationCallable
+ updateFunctionOperationCallable() {
+ throw new UnsupportedOperationException("Not implemented: updateFunctionOperationCallable()");
+ }
+
+ public UnaryCallable updateFunctionCallable() {
+ throw new UnsupportedOperationException("Not implemented: updateFunctionCallable()");
+ }
+
+ public OperationCallable
+ deleteFunctionOperationCallable() {
+ throw new UnsupportedOperationException("Not implemented: deleteFunctionOperationCallable()");
+ }
+
+ public UnaryCallable deleteFunctionCallable() {
+ throw new UnsupportedOperationException("Not implemented: deleteFunctionCallable()");
+ }
+
+ public UnaryCallable
+ generateUploadUrlCallable() {
+ throw new UnsupportedOperationException("Not implemented: generateUploadUrlCallable()");
+ }
+
+ public UnaryCallable
+ generateDownloadUrlCallable() {
+ throw new UnsupportedOperationException("Not implemented: generateDownloadUrlCallable()");
+ }
+
+ public UnaryCallable listRuntimesCallable() {
+ throw new UnsupportedOperationException("Not implemented: listRuntimesCallable()");
+ }
+
+ public UnaryCallable
+ listLocationsPagedCallable() {
+ throw new UnsupportedOperationException("Not implemented: listLocationsPagedCallable()");
+ }
+
+ public UnaryCallable listLocationsCallable() {
+ throw new UnsupportedOperationException("Not implemented: listLocationsCallable()");
+ }
+
+ public UnaryCallable setIamPolicyCallable() {
+ throw new UnsupportedOperationException("Not implemented: setIamPolicyCallable()");
+ }
+
+ public UnaryCallable getIamPolicyCallable() {
+ throw new UnsupportedOperationException("Not implemented: getIamPolicyCallable()");
+ }
+
+ public UnaryCallable
+ testIamPermissionsCallable() {
+ throw new UnsupportedOperationException("Not implemented: testIamPermissionsCallable()");
+ }
+
+ @Override
+ public abstract void close();
+}
diff --git a/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/FunctionServiceStubSettings.java b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/FunctionServiceStubSettings.java
new file mode 100644
index 00000000..14d9b30d
--- /dev/null
+++ b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/FunctionServiceStubSettings.java
@@ -0,0 +1,864 @@
+/*
+ * 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.cloud.functions.v2.stub;
+
+import static com.google.cloud.functions.v2.FunctionServiceClient.ListFunctionsPagedResponse;
+import static com.google.cloud.functions.v2.FunctionServiceClient.ListLocationsPagedResponse;
+
+import com.google.api.core.ApiFunction;
+import com.google.api.core.ApiFuture;
+import com.google.api.core.BetaApi;
+import com.google.api.gax.core.GaxProperties;
+import com.google.api.gax.core.GoogleCredentialsProvider;
+import com.google.api.gax.core.InstantiatingExecutorProvider;
+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.grpc.ProtoOperationTransformers;
+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.longrunning.OperationSnapshot;
+import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
+import com.google.api.gax.retrying.RetrySettings;
+import com.google.api.gax.rpc.ApiCallContext;
+import com.google.api.gax.rpc.ApiClientHeaderProvider;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.OperationCallSettings;
+import com.google.api.gax.rpc.PageContext;
+import com.google.api.gax.rpc.PagedCallSettings;
+import com.google.api.gax.rpc.PagedListDescriptor;
+import com.google.api.gax.rpc.PagedListResponseFactory;
+import com.google.api.gax.rpc.StatusCode;
+import com.google.api.gax.rpc.StubSettings;
+import com.google.api.gax.rpc.TransportChannelProvider;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.functions.v2.CreateFunctionRequest;
+import com.google.cloud.functions.v2.DeleteFunctionRequest;
+import com.google.cloud.functions.v2.Function;
+import com.google.cloud.functions.v2.GenerateDownloadUrlRequest;
+import com.google.cloud.functions.v2.GenerateDownloadUrlResponse;
+import com.google.cloud.functions.v2.GenerateUploadUrlRequest;
+import com.google.cloud.functions.v2.GenerateUploadUrlResponse;
+import com.google.cloud.functions.v2.GetFunctionRequest;
+import com.google.cloud.functions.v2.ListFunctionsRequest;
+import com.google.cloud.functions.v2.ListFunctionsResponse;
+import com.google.cloud.functions.v2.ListRuntimesRequest;
+import com.google.cloud.functions.v2.ListRuntimesResponse;
+import com.google.cloud.functions.v2.OperationMetadata;
+import com.google.cloud.functions.v2.UpdateFunctionRequest;
+import com.google.cloud.location.ListLocationsRequest;
+import com.google.cloud.location.ListLocationsResponse;
+import com.google.cloud.location.Location;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
+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.longrunning.Operation;
+import com.google.protobuf.Empty;
+import java.io.IOException;
+import java.util.List;
+import javax.annotation.Generated;
+import org.threeten.bp.Duration;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * Settings class to configure an instance of {@link FunctionServiceStub}.
+ *
+ * The default instance has everything set to sensible defaults:
+ *
+ *
+ * - The default service address (cloudfunctions.googleapis.com) and default port (443) are
+ * used.
+ *
- Credentials are acquired automatically through Application Default Credentials.
+ *
- Retries are configured for idempotent methods but not for non-idempotent methods.
+ *
+ *
+ * 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 getFunction to 30 seconds:
+ *
+ *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
+ * FunctionServiceStubSettings.Builder functionServiceSettingsBuilder =
+ * FunctionServiceStubSettings.newBuilder();
+ * functionServiceSettingsBuilder
+ * .getFunctionSettings()
+ * .setRetrySettings(
+ * functionServiceSettingsBuilder
+ * .getFunctionSettings()
+ * .getRetrySettings()
+ * .toBuilder()
+ * .setTotalTimeout(Duration.ofSeconds(30))
+ * .build());
+ * FunctionServiceStubSettings functionServiceSettings = functionServiceSettingsBuilder.build();
+ * }
+ */
+@Generated("by gapic-generator-java")
+public class FunctionServiceStubSettings extends StubSettings {
+ /** The default scopes of the service. */
+ private static final ImmutableList DEFAULT_SERVICE_SCOPES =
+ ImmutableList.builder().add("https://www.googleapis.com/auth/cloud-platform").build();
+
+ private final UnaryCallSettings getFunctionSettings;
+ private final PagedCallSettings<
+ ListFunctionsRequest, ListFunctionsResponse, ListFunctionsPagedResponse>
+ listFunctionsSettings;
+ private final UnaryCallSettings createFunctionSettings;
+ private final OperationCallSettings
+ createFunctionOperationSettings;
+ private final UnaryCallSettings updateFunctionSettings;
+ private final OperationCallSettings
+ updateFunctionOperationSettings;
+ private final UnaryCallSettings deleteFunctionSettings;
+ private final OperationCallSettings
+ deleteFunctionOperationSettings;
+ private final UnaryCallSettings
+ generateUploadUrlSettings;
+ private final UnaryCallSettings
+ generateDownloadUrlSettings;
+ private final UnaryCallSettings listRuntimesSettings;
+ private final PagedCallSettings<
+ ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
+ listLocationsSettings;
+ private final UnaryCallSettings setIamPolicySettings;
+ private final UnaryCallSettings getIamPolicySettings;
+ private final UnaryCallSettings
+ testIamPermissionsSettings;
+
+ private static final PagedListDescriptor
+ LIST_FUNCTIONS_PAGE_STR_DESC =
+ new PagedListDescriptor() {
+ @Override
+ public String emptyToken() {
+ return "";
+ }
+
+ @Override
+ public ListFunctionsRequest injectToken(ListFunctionsRequest payload, String token) {
+ return ListFunctionsRequest.newBuilder(payload).setPageToken(token).build();
+ }
+
+ @Override
+ public ListFunctionsRequest injectPageSize(ListFunctionsRequest payload, int pageSize) {
+ return ListFunctionsRequest.newBuilder(payload).setPageSize(pageSize).build();
+ }
+
+ @Override
+ public Integer extractPageSize(ListFunctionsRequest payload) {
+ return payload.getPageSize();
+ }
+
+ @Override
+ public String extractNextToken(ListFunctionsResponse payload) {
+ return payload.getNextPageToken();
+ }
+
+ @Override
+ public Iterable extractResources(ListFunctionsResponse payload) {
+ return payload.getFunctionsList() == null
+ ? ImmutableList.of()
+ : payload.getFunctionsList();
+ }
+ };
+
+ private static final PagedListDescriptor
+ LIST_LOCATIONS_PAGE_STR_DESC =
+ new PagedListDescriptor() {
+ @Override
+ public String emptyToken() {
+ return "";
+ }
+
+ @Override
+ public ListLocationsRequest injectToken(ListLocationsRequest payload, String token) {
+ return ListLocationsRequest.newBuilder(payload).setPageToken(token).build();
+ }
+
+ @Override
+ public ListLocationsRequest injectPageSize(ListLocationsRequest payload, int pageSize) {
+ return ListLocationsRequest.newBuilder(payload).setPageSize(pageSize).build();
+ }
+
+ @Override
+ public Integer extractPageSize(ListLocationsRequest payload) {
+ return payload.getPageSize();
+ }
+
+ @Override
+ public String extractNextToken(ListLocationsResponse payload) {
+ return payload.getNextPageToken();
+ }
+
+ @Override
+ public Iterable extractResources(ListLocationsResponse payload) {
+ return payload.getLocationsList() == null
+ ? ImmutableList.of()
+ : payload.getLocationsList();
+ }
+ };
+
+ private static final PagedListResponseFactory<
+ ListFunctionsRequest, ListFunctionsResponse, ListFunctionsPagedResponse>
+ LIST_FUNCTIONS_PAGE_STR_FACT =
+ new PagedListResponseFactory<
+ ListFunctionsRequest, ListFunctionsResponse, ListFunctionsPagedResponse>() {
+ @Override
+ public ApiFuture getFuturePagedResponse(
+ UnaryCallable callable,
+ ListFunctionsRequest request,
+ ApiCallContext context,
+ ApiFuture futureResponse) {
+ PageContext pageContext =
+ PageContext.create(callable, LIST_FUNCTIONS_PAGE_STR_DESC, request, context);
+ return ListFunctionsPagedResponse.createAsync(pageContext, futureResponse);
+ }
+ };
+
+ private static final PagedListResponseFactory<
+ ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
+ LIST_LOCATIONS_PAGE_STR_FACT =
+ new PagedListResponseFactory<
+ ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>() {
+ @Override
+ public ApiFuture getFuturePagedResponse(
+ UnaryCallable callable,
+ ListLocationsRequest request,
+ ApiCallContext context,
+ ApiFuture futureResponse) {
+ PageContext pageContext =
+ PageContext.create(callable, LIST_LOCATIONS_PAGE_STR_DESC, request, context);
+ return ListLocationsPagedResponse.createAsync(pageContext, futureResponse);
+ }
+ };
+
+ /** Returns the object with the settings used for calls to getFunction. */
+ public UnaryCallSettings getFunctionSettings() {
+ return getFunctionSettings;
+ }
+
+ /** Returns the object with the settings used for calls to listFunctions. */
+ public PagedCallSettings
+ listFunctionsSettings() {
+ return listFunctionsSettings;
+ }
+
+ /** Returns the object with the settings used for calls to createFunction. */
+ public UnaryCallSettings createFunctionSettings() {
+ return createFunctionSettings;
+ }
+
+ /** Returns the object with the settings used for calls to createFunction. */
+ public OperationCallSettings
+ createFunctionOperationSettings() {
+ return createFunctionOperationSettings;
+ }
+
+ /** Returns the object with the settings used for calls to updateFunction. */
+ public UnaryCallSettings updateFunctionSettings() {
+ return updateFunctionSettings;
+ }
+
+ /** Returns the object with the settings used for calls to updateFunction. */
+ public OperationCallSettings
+ updateFunctionOperationSettings() {
+ return updateFunctionOperationSettings;
+ }
+
+ /** Returns the object with the settings used for calls to deleteFunction. */
+ public UnaryCallSettings deleteFunctionSettings() {
+ return deleteFunctionSettings;
+ }
+
+ /** Returns the object with the settings used for calls to deleteFunction. */
+ public OperationCallSettings
+ deleteFunctionOperationSettings() {
+ return deleteFunctionOperationSettings;
+ }
+
+ /** Returns the object with the settings used for calls to generateUploadUrl. */
+ public UnaryCallSettings
+ generateUploadUrlSettings() {
+ return generateUploadUrlSettings;
+ }
+
+ /** Returns the object with the settings used for calls to generateDownloadUrl. */
+ public UnaryCallSettings
+ generateDownloadUrlSettings() {
+ return generateDownloadUrlSettings;
+ }
+
+ /** Returns the object with the settings used for calls to listRuntimes. */
+ public UnaryCallSettings listRuntimesSettings() {
+ return listRuntimesSettings;
+ }
+
+ /** Returns the object with the settings used for calls to listLocations. */
+ public PagedCallSettings
+ listLocationsSettings() {
+ return listLocationsSettings;
+ }
+
+ /** Returns the object with the settings used for calls to setIamPolicy. */
+ public UnaryCallSettings setIamPolicySettings() {
+ return setIamPolicySettings;
+ }
+
+ /** Returns the object with the settings used for calls to getIamPolicy. */
+ public UnaryCallSettings getIamPolicySettings() {
+ return getIamPolicySettings;
+ }
+
+ /** Returns the object with the settings used for calls to testIamPermissions. */
+ public UnaryCallSettings
+ testIamPermissionsSettings() {
+ return testIamPermissionsSettings;
+ }
+
+ public FunctionServiceStub createStub() throws IOException {
+ if (getTransportChannelProvider()
+ .getTransportName()
+ .equals(GrpcTransportChannel.getGrpcTransportName())) {
+ return GrpcFunctionServiceStub.create(this);
+ }
+ if (getTransportChannelProvider()
+ .getTransportName()
+ .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
+ return HttpJsonFunctionServiceStub.create(this);
+ }
+ throw new UnsupportedOperationException(
+ String.format(
+ "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
+ }
+
+ /** Returns a builder for the default ExecutorProvider for this service. */
+ public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() {
+ return InstantiatingExecutorProvider.newBuilder();
+ }
+
+ /** Returns the default service endpoint. */
+ public static String getDefaultEndpoint() {
+ return "cloudfunctions.googleapis.com:443";
+ }
+
+ /** Returns the default mTLS service endpoint. */
+ public static String getDefaultMtlsEndpoint() {
+ return "cloudfunctions.mtls.googleapis.com:443";
+ }
+
+ /** Returns the default service scopes. */
+ public static List getDefaultServiceScopes() {
+ return DEFAULT_SERVICE_SCOPES;
+ }
+
+ /** Returns a builder for the default credentials for this service. */
+ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() {
+ return GoogleCredentialsProvider.newBuilder()
+ .setScopesToApply(DEFAULT_SERVICE_SCOPES)
+ .setUseJwtAccessWithScope(true);
+ }
+
+ /** 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 defaultGrpcApiClientHeaderProviderBuilder() {
+ return ApiClientHeaderProvider.newBuilder()
+ .setGeneratedLibToken(
+ "gapic", GaxProperties.getLibraryVersion(FunctionServiceStubSettings.class))
+ .setTransportToken(
+ GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
+ }
+
+ @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(FunctionServiceStubSettings.class))
+ .setTransportToken(
+ GaxHttpJsonProperties.getHttpJsonTokenName(),
+ GaxHttpJsonProperties.getHttpJsonVersion());
+ }
+
+ public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
+ return FunctionServiceStubSettings.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);
+ }
+
+ /** Returns a builder containing all the values of this settings class. */
+ public Builder toBuilder() {
+ return new Builder(this);
+ }
+
+ protected FunctionServiceStubSettings(Builder settingsBuilder) throws IOException {
+ super(settingsBuilder);
+
+ getFunctionSettings = settingsBuilder.getFunctionSettings().build();
+ listFunctionsSettings = settingsBuilder.listFunctionsSettings().build();
+ createFunctionSettings = settingsBuilder.createFunctionSettings().build();
+ createFunctionOperationSettings = settingsBuilder.createFunctionOperationSettings().build();
+ updateFunctionSettings = settingsBuilder.updateFunctionSettings().build();
+ updateFunctionOperationSettings = settingsBuilder.updateFunctionOperationSettings().build();
+ deleteFunctionSettings = settingsBuilder.deleteFunctionSettings().build();
+ deleteFunctionOperationSettings = settingsBuilder.deleteFunctionOperationSettings().build();
+ generateUploadUrlSettings = settingsBuilder.generateUploadUrlSettings().build();
+ generateDownloadUrlSettings = settingsBuilder.generateDownloadUrlSettings().build();
+ listRuntimesSettings = settingsBuilder.listRuntimesSettings().build();
+ listLocationsSettings = settingsBuilder.listLocationsSettings().build();
+ setIamPolicySettings = settingsBuilder.setIamPolicySettings().build();
+ getIamPolicySettings = settingsBuilder.getIamPolicySettings().build();
+ testIamPermissionsSettings = settingsBuilder.testIamPermissionsSettings().build();
+ }
+
+ /** Builder for FunctionServiceStubSettings. */
+ public static class Builder extends StubSettings.Builder {
+ private final ImmutableList> unaryMethodSettingsBuilders;
+ private final UnaryCallSettings.Builder getFunctionSettings;
+ private final PagedCallSettings.Builder<
+ ListFunctionsRequest, ListFunctionsResponse, ListFunctionsPagedResponse>
+ listFunctionsSettings;
+ private final UnaryCallSettings.Builder
+ createFunctionSettings;
+ private final OperationCallSettings.Builder
+ createFunctionOperationSettings;
+ private final UnaryCallSettings.Builder
+ updateFunctionSettings;
+ private final OperationCallSettings.Builder
+ updateFunctionOperationSettings;
+ private final UnaryCallSettings.Builder
+ deleteFunctionSettings;
+ private final OperationCallSettings.Builder
+ deleteFunctionOperationSettings;
+ private final UnaryCallSettings.Builder
+ generateUploadUrlSettings;
+ private final UnaryCallSettings.Builder
+ generateDownloadUrlSettings;
+ private final UnaryCallSettings.Builder
+ listRuntimesSettings;
+ private final PagedCallSettings.Builder<
+ ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
+ listLocationsSettings;
+ private final UnaryCallSettings.Builder setIamPolicySettings;
+ private final UnaryCallSettings.Builder getIamPolicySettings;
+ private final UnaryCallSettings.Builder
+ testIamPermissionsSettings;
+ private static final ImmutableMap>
+ RETRYABLE_CODE_DEFINITIONS;
+
+ static {
+ ImmutableMap.Builder> definitions =
+ ImmutableMap.builder();
+ definitions.put("no_retry_codes", ImmutableSet.copyOf(Lists.newArrayList()));
+ RETRYABLE_CODE_DEFINITIONS = definitions.build();
+ }
+
+ private static final ImmutableMap RETRY_PARAM_DEFINITIONS;
+
+ static {
+ ImmutableMap.Builder definitions = ImmutableMap.builder();
+ RetrySettings settings = null;
+ settings = RetrySettings.newBuilder().setRpcTimeoutMultiplier(1.0).build();
+ definitions.put("no_retry_params", settings);
+ RETRY_PARAM_DEFINITIONS = definitions.build();
+ }
+
+ protected Builder() {
+ this(((ClientContext) null));
+ }
+
+ protected Builder(ClientContext clientContext) {
+ super(clientContext);
+
+ getFunctionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ listFunctionsSettings = PagedCallSettings.newBuilder(LIST_FUNCTIONS_PAGE_STR_FACT);
+ createFunctionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ createFunctionOperationSettings = OperationCallSettings.newBuilder();
+ updateFunctionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ updateFunctionOperationSettings = OperationCallSettings.newBuilder();
+ deleteFunctionSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ deleteFunctionOperationSettings = OperationCallSettings.newBuilder();
+ generateUploadUrlSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ generateDownloadUrlSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ listRuntimesSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ listLocationsSettings = PagedCallSettings.newBuilder(LIST_LOCATIONS_PAGE_STR_FACT);
+ setIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ getIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+ testIamPermissionsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder();
+
+ unaryMethodSettingsBuilders =
+ ImmutableList.>of(
+ getFunctionSettings,
+ listFunctionsSettings,
+ createFunctionSettings,
+ updateFunctionSettings,
+ deleteFunctionSettings,
+ generateUploadUrlSettings,
+ generateDownloadUrlSettings,
+ listRuntimesSettings,
+ listLocationsSettings,
+ setIamPolicySettings,
+ getIamPolicySettings,
+ testIamPermissionsSettings);
+ initDefaults(this);
+ }
+
+ protected Builder(FunctionServiceStubSettings settings) {
+ super(settings);
+
+ getFunctionSettings = settings.getFunctionSettings.toBuilder();
+ listFunctionsSettings = settings.listFunctionsSettings.toBuilder();
+ createFunctionSettings = settings.createFunctionSettings.toBuilder();
+ createFunctionOperationSettings = settings.createFunctionOperationSettings.toBuilder();
+ updateFunctionSettings = settings.updateFunctionSettings.toBuilder();
+ updateFunctionOperationSettings = settings.updateFunctionOperationSettings.toBuilder();
+ deleteFunctionSettings = settings.deleteFunctionSettings.toBuilder();
+ deleteFunctionOperationSettings = settings.deleteFunctionOperationSettings.toBuilder();
+ generateUploadUrlSettings = settings.generateUploadUrlSettings.toBuilder();
+ generateDownloadUrlSettings = settings.generateDownloadUrlSettings.toBuilder();
+ listRuntimesSettings = settings.listRuntimesSettings.toBuilder();
+ listLocationsSettings = settings.listLocationsSettings.toBuilder();
+ setIamPolicySettings = settings.setIamPolicySettings.toBuilder();
+ getIamPolicySettings = settings.getIamPolicySettings.toBuilder();
+ testIamPermissionsSettings = settings.testIamPermissionsSettings.toBuilder();
+
+ unaryMethodSettingsBuilders =
+ ImmutableList.>of(
+ getFunctionSettings,
+ listFunctionsSettings,
+ createFunctionSettings,
+ updateFunctionSettings,
+ deleteFunctionSettings,
+ generateUploadUrlSettings,
+ generateDownloadUrlSettings,
+ listRuntimesSettings,
+ listLocationsSettings,
+ setIamPolicySettings,
+ getIamPolicySettings,
+ testIamPermissionsSettings);
+ }
+
+ private static Builder createDefault() {
+ Builder builder = new Builder(((ClientContext) null));
+
+ builder.setTransportChannelProvider(defaultTransportChannelProvider());
+ builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
+ builder.setInternalHeaderProvider(defaultApiClientHeaderProviderBuilder().build());
+ builder.setEndpoint(getDefaultEndpoint());
+ builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
+ builder.setSwitchToMtlsEndpointAllowed(true);
+
+ 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
+ .getFunctionSettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .listFunctionsSettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .createFunctionSettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .updateFunctionSettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .deleteFunctionSettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .generateUploadUrlSettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .generateDownloadUrlSettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .listRuntimesSettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .listLocationsSettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .setIamPolicySettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .getIamPolicySettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .testIamPermissionsSettings()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"));
+
+ builder
+ .createFunctionOperationSettings()
+ .setInitialCallSettings(
+ UnaryCallSettings
+ .newUnaryCallSettingsBuilder()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
+ .build())
+ .setResponseTransformer(
+ ProtoOperationTransformers.ResponseTransformer.create(Function.class))
+ .setMetadataTransformer(
+ ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
+ .setPollingAlgorithm(
+ OperationTimedPollAlgorithm.create(
+ RetrySettings.newBuilder()
+ .setInitialRetryDelay(Duration.ofMillis(5000L))
+ .setRetryDelayMultiplier(1.5)
+ .setMaxRetryDelay(Duration.ofMillis(45000L))
+ .setInitialRpcTimeout(Duration.ZERO)
+ .setRpcTimeoutMultiplier(1.0)
+ .setMaxRpcTimeout(Duration.ZERO)
+ .setTotalTimeout(Duration.ofMillis(300000L))
+ .build()));
+
+ builder
+ .updateFunctionOperationSettings()
+ .setInitialCallSettings(
+ UnaryCallSettings
+ .newUnaryCallSettingsBuilder()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
+ .build())
+ .setResponseTransformer(
+ ProtoOperationTransformers.ResponseTransformer.create(Function.class))
+ .setMetadataTransformer(
+ ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
+ .setPollingAlgorithm(
+ OperationTimedPollAlgorithm.create(
+ RetrySettings.newBuilder()
+ .setInitialRetryDelay(Duration.ofMillis(5000L))
+ .setRetryDelayMultiplier(1.5)
+ .setMaxRetryDelay(Duration.ofMillis(45000L))
+ .setInitialRpcTimeout(Duration.ZERO)
+ .setRpcTimeoutMultiplier(1.0)
+ .setMaxRpcTimeout(Duration.ZERO)
+ .setTotalTimeout(Duration.ofMillis(300000L))
+ .build()));
+
+ builder
+ .deleteFunctionOperationSettings()
+ .setInitialCallSettings(
+ UnaryCallSettings
+ .newUnaryCallSettingsBuilder()
+ .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes"))
+ .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params"))
+ .build())
+ .setResponseTransformer(
+ ProtoOperationTransformers.ResponseTransformer.create(Empty.class))
+ .setMetadataTransformer(
+ ProtoOperationTransformers.MetadataTransformer.create(OperationMetadata.class))
+ .setPollingAlgorithm(
+ OperationTimedPollAlgorithm.create(
+ RetrySettings.newBuilder()
+ .setInitialRetryDelay(Duration.ofMillis(5000L))
+ .setRetryDelayMultiplier(1.5)
+ .setMaxRetryDelay(Duration.ofMillis(45000L))
+ .setInitialRpcTimeout(Duration.ZERO)
+ .setRpcTimeoutMultiplier(1.0)
+ .setMaxRpcTimeout(Duration.ZERO)
+ .setTotalTimeout(Duration.ofMillis(300000L))
+ .build()));
+
+ return builder;
+ }
+
+ /**
+ * Applies the given settings updater function to all of the unary API methods in this service.
+ *
+ * Note: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction, Void> settingsUpdater) {
+ super.applyToAllUnaryMethods(unaryMethodSettingsBuilders, settingsUpdater);
+ return this;
+ }
+
+ public ImmutableList> unaryMethodSettingsBuilders() {
+ return unaryMethodSettingsBuilders;
+ }
+
+ /** Returns the builder for the settings used for calls to getFunction. */
+ public UnaryCallSettings.Builder getFunctionSettings() {
+ return getFunctionSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to listFunctions. */
+ public PagedCallSettings.Builder<
+ ListFunctionsRequest, ListFunctionsResponse, ListFunctionsPagedResponse>
+ listFunctionsSettings() {
+ return listFunctionsSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to createFunction. */
+ public UnaryCallSettings.Builder createFunctionSettings() {
+ return createFunctionSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to createFunction. */
+ @BetaApi(
+ "The surface for use by generated code is not stable yet and may change in the future.")
+ public OperationCallSettings.Builder
+ createFunctionOperationSettings() {
+ return createFunctionOperationSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to updateFunction. */
+ public UnaryCallSettings.Builder updateFunctionSettings() {
+ return updateFunctionSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to updateFunction. */
+ @BetaApi(
+ "The surface for use by generated code is not stable yet and may change in the future.")
+ public OperationCallSettings.Builder
+ updateFunctionOperationSettings() {
+ return updateFunctionOperationSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to deleteFunction. */
+ public UnaryCallSettings.Builder deleteFunctionSettings() {
+ return deleteFunctionSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to deleteFunction. */
+ @BetaApi(
+ "The surface for use by generated code is not stable yet and may change in the future.")
+ public OperationCallSettings.Builder
+ deleteFunctionOperationSettings() {
+ return deleteFunctionOperationSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to generateUploadUrl. */
+ public UnaryCallSettings.Builder
+ generateUploadUrlSettings() {
+ return generateUploadUrlSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to generateDownloadUrl. */
+ public UnaryCallSettings.Builder
+ generateDownloadUrlSettings() {
+ return generateDownloadUrlSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to listRuntimes. */
+ public UnaryCallSettings.Builder
+ listRuntimesSettings() {
+ return listRuntimesSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to listLocations. */
+ public PagedCallSettings.Builder<
+ ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>
+ listLocationsSettings() {
+ return listLocationsSettings;
+ }
+
+ /** Returns the builder for the settings used for calls to setIamPolicy. */
+ public UnaryCallSettings.Builder setIamPolicySettings() {
+ return setIamPolicySettings;
+ }
+
+ /** Returns the builder for the settings used for calls to getIamPolicy. */
+ public UnaryCallSettings.Builder getIamPolicySettings() {
+ return getIamPolicySettings;
+ }
+
+ /** Returns the builder for the settings used for calls to testIamPermissions. */
+ public UnaryCallSettings.Builder
+ testIamPermissionsSettings() {
+ return testIamPermissionsSettings;
+ }
+
+ @Override
+ public FunctionServiceStubSettings build() throws IOException {
+ return new FunctionServiceStubSettings(this);
+ }
+ }
+}
diff --git a/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/GrpcFunctionServiceCallableFactory.java b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/GrpcFunctionServiceCallableFactory.java
new file mode 100644
index 00000000..e575ade6
--- /dev/null
+++ b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/GrpcFunctionServiceCallableFactory.java
@@ -0,0 +1,113 @@
+/*
+ * 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.cloud.functions.v2.stub;
+
+import com.google.api.gax.grpc.GrpcCallSettings;
+import com.google.api.gax.grpc.GrpcCallableFactory;
+import com.google.api.gax.grpc.GrpcStubCallableFactory;
+import com.google.api.gax.rpc.BatchingCallSettings;
+import com.google.api.gax.rpc.BidiStreamingCallable;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.ClientStreamingCallable;
+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.StreamingCallSettings;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.longrunning.Operation;
+import com.google.longrunning.stub.OperationsStub;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * gRPC callable factory implementation for the FunctionService service API.
+ *
+ * This class is for advanced usage.
+ */
+@Generated("by gapic-generator-java")
+public class GrpcFunctionServiceCallableFactory implements GrpcStubCallableFactory {
+
+ @Override
+ public UnaryCallable createUnaryCallable(
+ GrpcCallSettings grpcCallSettings,
+ UnaryCallSettings callSettings,
+ ClientContext clientContext) {
+ return GrpcCallableFactory.createUnaryCallable(grpcCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public
+ UnaryCallable createPagedCallable(
+ GrpcCallSettings grpcCallSettings,
+ PagedCallSettings callSettings,
+ ClientContext clientContext) {
+ return GrpcCallableFactory.createPagedCallable(grpcCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public UnaryCallable createBatchingCallable(
+ GrpcCallSettings grpcCallSettings,
+ BatchingCallSettings callSettings,
+ ClientContext clientContext) {
+ return GrpcCallableFactory.createBatchingCallable(
+ grpcCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public
+ OperationCallable createOperationCallable(
+ GrpcCallSettings grpcCallSettings,
+ OperationCallSettings callSettings,
+ ClientContext clientContext,
+ OperationsStub operationsStub) {
+ return GrpcCallableFactory.createOperationCallable(
+ grpcCallSettings, callSettings, clientContext, operationsStub);
+ }
+
+ @Override
+ public
+ BidiStreamingCallable createBidiStreamingCallable(
+ GrpcCallSettings grpcCallSettings,
+ StreamingCallSettings callSettings,
+ ClientContext clientContext) {
+ return GrpcCallableFactory.createBidiStreamingCallable(
+ grpcCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public
+ ServerStreamingCallable createServerStreamingCallable(
+ GrpcCallSettings grpcCallSettings,
+ ServerStreamingCallSettings callSettings,
+ ClientContext clientContext) {
+ return GrpcCallableFactory.createServerStreamingCallable(
+ grpcCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public
+ ClientStreamingCallable createClientStreamingCallable(
+ GrpcCallSettings grpcCallSettings,
+ StreamingCallSettings callSettings,
+ ClientContext clientContext) {
+ return GrpcCallableFactory.createClientStreamingCallable(
+ grpcCallSettings, callSettings, clientContext);
+ }
+}
diff --git a/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/GrpcFunctionServiceStub.java b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/GrpcFunctionServiceStub.java
new file mode 100644
index 00000000..c152a91c
--- /dev/null
+++ b/google-cloud-functions/src/main/java/com/google/cloud/functions/v2/stub/GrpcFunctionServiceStub.java
@@ -0,0 +1,584 @@
+/*
+ * 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.cloud.functions.v2.stub;
+
+import static com.google.cloud.functions.v2.FunctionServiceClient.ListFunctionsPagedResponse;
+import static com.google.cloud.functions.v2.FunctionServiceClient.ListLocationsPagedResponse;
+
+import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.core.BackgroundResourceAggregation;
+import com.google.api.gax.grpc.GrpcCallSettings;
+import com.google.api.gax.grpc.GrpcStubCallableFactory;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.OperationCallable;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.functions.v2.CreateFunctionRequest;
+import com.google.cloud.functions.v2.DeleteFunctionRequest;
+import com.google.cloud.functions.v2.Function;
+import com.google.cloud.functions.v2.GenerateDownloadUrlRequest;
+import com.google.cloud.functions.v2.GenerateDownloadUrlResponse;
+import com.google.cloud.functions.v2.GenerateUploadUrlRequest;
+import com.google.cloud.functions.v2.GenerateUploadUrlResponse;
+import com.google.cloud.functions.v2.GetFunctionRequest;
+import com.google.cloud.functions.v2.ListFunctionsRequest;
+import com.google.cloud.functions.v2.ListFunctionsResponse;
+import com.google.cloud.functions.v2.ListRuntimesRequest;
+import com.google.cloud.functions.v2.ListRuntimesResponse;
+import com.google.cloud.functions.v2.OperationMetadata;
+import com.google.cloud.functions.v2.UpdateFunctionRequest;
+import com.google.cloud.location.ListLocationsRequest;
+import com.google.cloud.location.ListLocationsResponse;
+import com.google.common.collect.ImmutableMap;
+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.longrunning.Operation;
+import com.google.longrunning.stub.GrpcOperationsStub;
+import com.google.protobuf.Empty;
+import io.grpc.MethodDescriptor;
+import io.grpc.protobuf.ProtoUtils;
+import java.io.IOException;
+import java.util.concurrent.TimeUnit;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * gRPC stub implementation for the FunctionService service API.
+ *
+ * This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator-java")
+public class GrpcFunctionServiceStub extends FunctionServiceStub {
+ private static final MethodDescriptor getFunctionMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.cloud.functions.v2.FunctionService/GetFunction")
+ .setRequestMarshaller(ProtoUtils.marshaller(GetFunctionRequest.getDefaultInstance()))
+ .setResponseMarshaller(ProtoUtils.marshaller(Function.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor
+ listFunctionsMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.cloud.functions.v2.FunctionService/ListFunctions")
+ .setRequestMarshaller(
+ ProtoUtils.marshaller(ListFunctionsRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ ProtoUtils.marshaller(ListFunctionsResponse.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor
+ createFunctionMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.cloud.functions.v2.FunctionService/CreateFunction")
+ .setRequestMarshaller(
+ ProtoUtils.marshaller(CreateFunctionRequest.getDefaultInstance()))
+ .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor
+ updateFunctionMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.cloud.functions.v2.FunctionService/UpdateFunction")
+ .setRequestMarshaller(
+ ProtoUtils.marshaller(UpdateFunctionRequest.getDefaultInstance()))
+ .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor
+ deleteFunctionMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.cloud.functions.v2.FunctionService/DeleteFunction")
+ .setRequestMarshaller(
+ ProtoUtils.marshaller(DeleteFunctionRequest.getDefaultInstance()))
+ .setResponseMarshaller(ProtoUtils.marshaller(Operation.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor
+ generateUploadUrlMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.cloud.functions.v2.FunctionService/GenerateUploadUrl")
+ .setRequestMarshaller(
+ ProtoUtils.marshaller(GenerateUploadUrlRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ ProtoUtils.marshaller(GenerateUploadUrlResponse.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor
+ generateDownloadUrlMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.cloud.functions.v2.FunctionService/GenerateDownloadUrl")
+ .setRequestMarshaller(
+ ProtoUtils.marshaller(GenerateDownloadUrlRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ ProtoUtils.marshaller(GenerateDownloadUrlResponse.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor
+ listRuntimesMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.cloud.functions.v2.FunctionService/ListRuntimes")
+ .setRequestMarshaller(ProtoUtils.marshaller(ListRuntimesRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ ProtoUtils.marshaller(ListRuntimesResponse.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor
+ listLocationsMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.cloud.location.Locations/ListLocations")
+ .setRequestMarshaller(
+ ProtoUtils.marshaller(ListLocationsRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ ProtoUtils.marshaller(ListLocationsResponse.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor setIamPolicyMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.iam.v1.IAMPolicy/SetIamPolicy")
+ .setRequestMarshaller(ProtoUtils.marshaller(SetIamPolicyRequest.getDefaultInstance()))
+ .setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor getIamPolicyMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.iam.v1.IAMPolicy/GetIamPolicy")
+ .setRequestMarshaller(ProtoUtils.marshaller(GetIamPolicyRequest.getDefaultInstance()))
+ .setResponseMarshaller(ProtoUtils.marshaller(Policy.getDefaultInstance()))
+ .build();
+
+ private static final MethodDescriptor
+ testIamPermissionsMethodDescriptor =
+ MethodDescriptor.newBuilder()
+ .setType(MethodDescriptor.MethodType.UNARY)
+ .setFullMethodName("google.iam.v1.IAMPolicy/TestIamPermissions")
+ .setRequestMarshaller(
+ ProtoUtils.marshaller(TestIamPermissionsRequest.getDefaultInstance()))
+ .setResponseMarshaller(
+ ProtoUtils.marshaller(TestIamPermissionsResponse.getDefaultInstance()))
+ .build();
+
+ private final UnaryCallable getFunctionCallable;
+ private final UnaryCallable listFunctionsCallable;
+ private final UnaryCallable
+ listFunctionsPagedCallable;
+ private final UnaryCallable createFunctionCallable;
+ private final OperationCallable
+ createFunctionOperationCallable;
+ private final UnaryCallable updateFunctionCallable;
+ private final OperationCallable
+ updateFunctionOperationCallable;
+ private final UnaryCallable deleteFunctionCallable;
+ private final OperationCallable
+ deleteFunctionOperationCallable;
+ private final UnaryCallable