diff --git a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java index 24059b7d54a5..29931e513a6e 100644 --- a/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java +++ b/sdk-platform-java/gapic-generator-java/src/main/java/com/google/api/generator/gapic/protoparser/Parser.java @@ -139,6 +139,7 @@ enum SelectiveGapicType { static final ImmutableList RESUMABLE_UPLOAD_ALLOWLIST_PATTERNS = ImmutableList.of( Pattern.compile("^google\\.showcase\\.v1beta1\\.ResumableUploadService\\.UploadMedia$"), + Pattern.compile("^google\\.showcase\\.v1beta1\\.MediaService\\.UploadMedia$"), Pattern.compile( "^google\\.ads\\.googleads\\.v\\d+\\.services\\.YouTubeVideoUploadService\\.CreateYouTubeVideoUpload$")); diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/GrpcServiceStubClassComposerTest.java b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/GrpcServiceStubClassComposerTest.java index 423eca5430a0..aee3130283d2 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/GrpcServiceStubClassComposerTest.java +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/GrpcServiceStubClassComposerTest.java @@ -129,7 +129,7 @@ void generateGrpcServiceStubClass_resumableUpload() { Service service = context.services().get(0); GapicClass clazz = GrpcServiceStubClassComposer.instance().generate(context, service); - Assert.assertGoldenClass(this.getClass(), clazz, "GrpcResumableUploadServiceStub.golden"); + Assert.assertGoldenClass(this.getClass(), clazz, "GrpcMediaServiceStub.golden"); Assert.assertEmptySamples(clazz.samples()); } } diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceClientClassComposerTest.java b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceClientClassComposerTest.java index c679df2d30ea..1e5670bce8e2 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceClientClassComposerTest.java +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceClientClassComposerTest.java @@ -66,7 +66,7 @@ private static Stream data() { "v1beta1", 1), Arguments.of( - "ResumableUploadServiceClient", + "MediaServiceClient", GrpcTestProtoLoader.instance().parseShowcaseResumableUpload(), "localhost:7469", "v1beta1", diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceSettingsClassComposerTest.java b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceSettingsClassComposerTest.java index d70b43bb3b9f..2b6376bee514 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceSettingsClassComposerTest.java +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceSettingsClassComposerTest.java @@ -47,7 +47,7 @@ static Stream data() { "v1beta1", 1), Arguments.of( - "ResumableUploadServiceSettings", + "MediaServiceSettings", TestProtoLoader.instance().parseShowcaseResumableUpload(), "localhost:7469", "v1beta1", diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceStubClassComposerTest.java b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceStubClassComposerTest.java index 5c8d522ec286..3d5561f7e56e 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceStubClassComposerTest.java +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceStubClassComposerTest.java @@ -41,7 +41,7 @@ static Stream data() { "", 1), Arguments.of( - "ResumableUploadServiceStub", + "MediaServiceStub", TestProtoLoader.instance().parseShowcaseResumableUpload(), "", "", diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceStubSettingsClassComposerTest.java b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceStubSettingsClassComposerTest.java index 3e7a017403f3..4224047ab64a 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceStubSettingsClassComposerTest.java +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/ServiceStubSettingsClassComposerTest.java @@ -70,7 +70,7 @@ static Stream data() { "v2", 0), Arguments.of( - "ResumableUploadServiceStubSettings", + "MediaServiceStubSettings", GrpcTestProtoLoader.instance().parseShowcaseResumableUpload(), "localhost:7469", "v1beta1", diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/GrpcMediaServiceStub.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/GrpcMediaServiceStub.golden new file mode 100644 index 000000000000..1bb2533d80b7 --- /dev/null +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/GrpcMediaServiceStub.golden @@ -0,0 +1,162 @@ +package com.google.showcase.v1beta1.stub; + +import com.google.api.core.BetaApi; +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.ResumableUploadCallable; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.common.collect.ImmutableList; +import com.google.longrunning.stub.GrpcOperationsStub; +import com.google.showcase.v1beta1.GetMediaMetadataRequest; +import com.google.showcase.v1beta1.GetMediaMetadataResponse; +import com.google.showcase.v1beta1.UploadMediaRequest; +import com.google.showcase.v1beta1.UploadMediaResponse; +import io.grpc.MethodDescriptor; +import io.grpc.protobuf.ProtoUtils; +import java.io.IOException; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; +import org.jspecify.annotations.NullMarked; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * gRPC stub implementation for the MediaService service API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@NullMarked +@BetaApi +@Generated("by gapic-generator-java") +public class GrpcMediaServiceStub extends MediaServiceStub { + private static final MethodDescriptor + getMediaMetadataMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName("google.showcase.v1beta1.MediaService/GetMediaMetadata") + .setRequestMarshaller( + ProtoUtils.marshaller(GetMediaMetadataRequest.getDefaultInstance())) + .setResponseMarshaller( + ProtoUtils.marshaller(GetMediaMetadataResponse.getDefaultInstance())) + .setSampledToLocalTracing(true) + .build(); + + private final UnaryCallable + getMediaMetadataCallable; + + private final BackgroundResource backgroundResources; + private final GrpcOperationsStub operationsStub; + private final HttpJsonMediaServiceResumableUploadStub resumableUploadStub; + private final GrpcStubCallableFactory callableFactory; + + public static final GrpcMediaServiceStub create(MediaServiceStubSettings settings) + throws IOException { + return new GrpcMediaServiceStub(settings, ClientContext.create(settings)); + } + + public static final GrpcMediaServiceStub create(ClientContext clientContext) throws IOException { + return new GrpcMediaServiceStub(MediaServiceStubSettings.newBuilder().build(), clientContext); + } + + public static final GrpcMediaServiceStub create( + ClientContext clientContext, GrpcStubCallableFactory callableFactory) throws IOException { + return new GrpcMediaServiceStub( + MediaServiceStubSettings.newBuilder().build(), clientContext, callableFactory); + } + + /** + * Constructs an instance of GrpcMediaServiceStub, using the given settings. This is protected so + * that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected GrpcMediaServiceStub(MediaServiceStubSettings settings, ClientContext clientContext) + throws IOException { + this(settings, clientContext, new GrpcMediaServiceCallableFactory()); + } + + /** + * Constructs an instance of GrpcMediaServiceStub, using the given settings. This is protected so + * that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected GrpcMediaServiceStub( + MediaServiceStubSettings settings, + ClientContext clientContext, + GrpcStubCallableFactory callableFactory) + throws IOException { + this.callableFactory = callableFactory; + this.operationsStub = GrpcOperationsStub.create(clientContext, callableFactory); + + GrpcCallSettings + getMediaMetadataTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(getMediaMetadataMethodDescriptor) + .build(); + + this.getMediaMetadataCallable = + callableFactory.createUnaryCallable( + getMediaMetadataTransportSettings, settings.getMediaMetadataSettings(), clientContext); + + this.resumableUploadStub = HttpJsonMediaServiceResumableUploadStub.create(settings); + + this.backgroundResources = + new BackgroundResourceAggregation( + ImmutableList.builder() + .addAll(clientContext.getBackgroundResources()) + .add(resumableUploadStub) + .build()); + } + + public GrpcOperationsStub getOperationsStub() { + return operationsStub; + } + + @Override + public UnaryCallable + getMediaMetadataCallable() { + return getMediaMetadataCallable; + } + + @Override + public ResumableUploadCallable uploadMediaCallable() { + return resumableUploadStub.uploadMediaCallable(); + } + + @Override + public final void close() { + try { + backgroundResources.close(); + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + throw new IllegalStateException("Failed to close resource", e); + } + } + + @Override + public void shutdown() { + backgroundResources.shutdown(); + } + + @Override + public boolean isShutdown() { + return backgroundResources.isShutdown(); + } + + @Override + public boolean isTerminated() { + return backgroundResources.isTerminated(); + } + + @Override + public void shutdownNow() { + backgroundResources.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return backgroundResources.awaitTermination(duration, unit); + } +} diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/GrpcResumableUploadServiceStub.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/GrpcResumableUploadServiceStub.golden deleted file mode 100644 index 13ea1cd6f20d..000000000000 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/GrpcResumableUploadServiceStub.golden +++ /dev/null @@ -1,128 +0,0 @@ -package com.google.showcase.v1beta1.stub; - -import com.google.api.core.BetaApi; -import com.google.api.gax.core.BackgroundResource; -import com.google.api.gax.core.BackgroundResourceAggregation; -import com.google.api.gax.grpc.GrpcStubCallableFactory; -import com.google.api.gax.rpc.ClientContext; -import com.google.api.gax.rpc.ResumableUploadCallable; -import com.google.common.collect.ImmutableList; -import com.google.longrunning.stub.GrpcOperationsStub; -import com.google.showcase.v1beta1.UploadMediaRequest; -import com.google.showcase.v1beta1.UploadMediaResponse; -import java.io.IOException; -import java.util.concurrent.TimeUnit; -import javax.annotation.Generated; -import org.jspecify.annotations.NullMarked; - -// AUTO-GENERATED DOCUMENTATION AND CLASS. -/** - * gRPC stub implementation for the ResumableUploadService service API. - * - *

This class is for advanced usage and reflects the underlying API directly. - */ -@NullMarked -@BetaApi -@Generated("by gapic-generator-java") -public class GrpcResumableUploadServiceStub extends ResumableUploadServiceStub { - - private final BackgroundResource backgroundResources; - private final GrpcOperationsStub operationsStub; - private final HttpJsonResumableUploadServiceResumableUploadStub resumableUploadStub; - private final GrpcStubCallableFactory callableFactory; - - public static final GrpcResumableUploadServiceStub create( - ResumableUploadServiceStubSettings settings) throws IOException { - return new GrpcResumableUploadServiceStub(settings, ClientContext.create(settings)); - } - - public static final GrpcResumableUploadServiceStub create(ClientContext clientContext) - throws IOException { - return new GrpcResumableUploadServiceStub( - ResumableUploadServiceStubSettings.newBuilder().build(), clientContext); - } - - public static final GrpcResumableUploadServiceStub create( - ClientContext clientContext, GrpcStubCallableFactory callableFactory) throws IOException { - return new GrpcResumableUploadServiceStub( - ResumableUploadServiceStubSettings.newBuilder().build(), clientContext, callableFactory); - } - - /** - * Constructs an instance of GrpcResumableUploadServiceStub, using the given settings. This is - * protected so that it is easy to make a subclass, but otherwise, the static factory methods - * should be preferred. - */ - protected GrpcResumableUploadServiceStub( - ResumableUploadServiceStubSettings settings, ClientContext clientContext) throws IOException { - this(settings, clientContext, new GrpcResumableUploadServiceCallableFactory()); - } - - /** - * Constructs an instance of GrpcResumableUploadServiceStub, using the given settings. This is - * protected so that it is easy to make a subclass, but otherwise, the static factory methods - * should be preferred. - */ - protected GrpcResumableUploadServiceStub( - ResumableUploadServiceStubSettings settings, - ClientContext clientContext, - GrpcStubCallableFactory callableFactory) - throws IOException { - this.callableFactory = callableFactory; - this.operationsStub = GrpcOperationsStub.create(clientContext, callableFactory); - - this.resumableUploadStub = HttpJsonResumableUploadServiceResumableUploadStub.create(settings); - - this.backgroundResources = - new BackgroundResourceAggregation( - ImmutableList.builder() - .addAll(clientContext.getBackgroundResources()) - .add(resumableUploadStub) - .build()); - } - - public GrpcOperationsStub getOperationsStub() { - return operationsStub; - } - - @Override - public ResumableUploadCallable uploadMediaCallable() { - return resumableUploadStub.uploadMediaCallable(); - } - - @Override - public final void close() { - try { - backgroundResources.close(); - } catch (RuntimeException e) { - throw e; - } catch (Exception e) { - throw new IllegalStateException("Failed to close resource", e); - } - } - - @Override - public void shutdown() { - backgroundResources.shutdown(); - } - - @Override - public boolean isShutdown() { - return backgroundResources.isShutdown(); - } - - @Override - public boolean isTerminated() { - return backgroundResources.isTerminated(); - } - - @Override - public void shutdownNow() { - backgroundResources.shutdownNow(); - } - - @Override - public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { - return backgroundResources.awaitTermination(duration, unit); - } -} diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceClient.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceClient.golden new file mode 100644 index 000000000000..b2bc17dfda3a --- /dev/null +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceClient.golden @@ -0,0 +1,266 @@ +package com.google.showcase.v1beta1; + +import com.google.api.core.BetaApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.rpc.ApiExceptions; +import com.google.api.gax.rpc.ResumableUploadCallSettings; +import com.google.api.gax.rpc.ResumableUploadCallable; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.showcase.v1beta1.stub.MediaServiceStub; +import com.google.showcase.v1beta1.stub.MediaServiceStubSettings; +import java.io.IOException; +import java.io.InputStream; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; +import org.jspecify.annotations.NullMarked; +import org.jspecify.annotations.Nullable; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * This class provides the ability to make remote calls to the backing service through method calls + * that map to API methods. Sample code to get started: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * try (MediaServiceClient mediaServiceClient = MediaServiceClient.create()) {
+ *   GetMediaMetadataRequest request =
+ *       GetMediaMetadataRequest.newBuilder().setName("name3373707").build();
+ *   GetMediaMetadataResponse response = mediaServiceClient.getMediaMetadata(request);
+ * }
+ * }
+ * + *

Note: close() needs to be called on the MediaServiceClient object to clean up resources such + * as threads. In the example above, try-with-resources is used, which automatically calls close(). + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
Methods
MethodDescriptionMethod Variants

UploadMedia

+ *

Request object method variants only take one parameter, a request object, which must be constructed before the call.

+ *
    + *
  • uploadMedia(UploadMediaRequest request, InputStream payload, ResumableUploadCallSettings callSettings) + *

+ *

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

+ *
    + *
  • uploadMediaCallable() + *

+ *

GetMediaMetadata

+ *

Request object method variants only take one parameter, a request object, which must be constructed before the call.

+ *
    + *
  • getMediaMetadata(GetMediaMetadataRequest request) + *

+ *

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

+ *
    + *
  • getMediaMetadataCallable() + *

+ *
+ * + *

See the individual methods for example code. + * + *

Many parameters require resource names to be formatted in a particular way. To assist with + * these names, this class includes a format method for each type of name, and additionally a parse + * method to extract the individual identifiers contained within names that are returned. + * + *

This class can be customized by passing in a custom instance of MediaServiceSettings to + * create(). For example: + * + *

To customize credentials: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * MediaServiceSettings mediaServiceSettings =
+ *     MediaServiceSettings.newBuilder()
+ *         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
+ *         .build();
+ * MediaServiceClient mediaServiceClient = MediaServiceClient.create(mediaServiceSettings);
+ * }
+ * + *

To customize the endpoint: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * MediaServiceSettings mediaServiceSettings =
+ *     MediaServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
+ * MediaServiceClient mediaServiceClient = MediaServiceClient.create(mediaServiceSettings);
+ * }
+ * + *

Please refer to the GitHub repository's samples for more quickstart code snippets. + */ +@NullMarked +@BetaApi +@Generated("by gapic-generator-java") +public class MediaServiceClient implements BackgroundResource { + private final @Nullable MediaServiceSettings settings; + private final MediaServiceStub stub; + + /** Constructs an instance of MediaServiceClient with default settings. */ + public static final MediaServiceClient create() throws IOException { + return create(MediaServiceSettings.newBuilder().build()); + } + + /** + * Constructs an instance of MediaServiceClient, using the given settings. The channels are + * created based on the settings passed in, or defaults for any settings that are not set. + */ + public static final MediaServiceClient create(MediaServiceSettings settings) throws IOException { + return new MediaServiceClient(settings); + } + + /** + * Constructs an instance of MediaServiceClient, using the given stub for making calls. This is + * for advanced usage - prefer using create(MediaServiceSettings). + */ + public static final MediaServiceClient create(MediaServiceStub stub) { + return new MediaServiceClient(stub); + } + + /** + * Constructs an instance of MediaServiceClient, using the given settings. This is protected so + * that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected MediaServiceClient(MediaServiceSettings settings) throws IOException { + this.settings = settings; + this.stub = ((MediaServiceStubSettings) settings.getStubSettings()).createStub(); + } + + protected MediaServiceClient(MediaServiceStub stub) { + this.settings = null; + this.stub = stub; + } + + public final @Nullable MediaServiceSettings getSettings() { + return settings; + } + + public MediaServiceStub getStub() { + return stub; + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * @param request The request object containing all of the parameters for the API call. + * @param payload The payload data stream to upload. + * @param callSettings The call settings to apply to this upload, or null to use defaults. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final UploadMediaResponse uploadMedia( + UploadMediaRequest request, + InputStream payload, + @Nullable ResumableUploadCallSettings callSettings) { + return ApiExceptions.callAndTranslateApiException( + uploadMediaCallable().futureCall(request, payload, callSettings)); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** */ + public final ResumableUploadCallable + uploadMediaCallable() { + return stub.uploadMediaCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Sample code: + * + *

{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (MediaServiceClient mediaServiceClient = MediaServiceClient.create()) {
+   *   GetMediaMetadataRequest request =
+   *       GetMediaMetadataRequest.newBuilder().setName("name3373707").build();
+   *   GetMediaMetadataResponse response = mediaServiceClient.getMediaMetadata(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 GetMediaMetadataResponse getMediaMetadata(GetMediaMetadataRequest request) { + return getMediaMetadataCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Sample code: + * + *
{@code
+   * // This snippet has been automatically generated and should be regarded as a code template only.
+   * // It will require modifications to work:
+   * // - It may require correct/in-range values for request initialization.
+   * // - It may require specifying regional endpoints when creating the service client as shown in
+   * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+   * try (MediaServiceClient mediaServiceClient = MediaServiceClient.create()) {
+   *   GetMediaMetadataRequest request =
+   *       GetMediaMetadataRequest.newBuilder().setName("name3373707").build();
+   *   ApiFuture future =
+   *       mediaServiceClient.getMediaMetadataCallable().futureCall(request);
+   *   // Do something.
+   *   GetMediaMetadataResponse response = future.get();
+   * }
+   * }
+ */ + public final UnaryCallable + getMediaMetadataCallable() { + return stub.getMediaMetadataCallable(); + } + + @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); + } +} diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceSettings.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceSettings.golden similarity index 51% rename from sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceSettings.golden rename to sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceSettings.golden index e1a5addf3cf9..5896d25b7c07 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceSettings.golden +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceSettings.golden @@ -12,7 +12,7 @@ import com.google.api.gax.rpc.ResumableUploadCallSettings; import com.google.api.gax.rpc.StubSettings; import com.google.api.gax.rpc.TransportChannelProvider; import com.google.api.gax.rpc.UnaryCallSettings; -import com.google.showcase.v1beta1.stub.ResumableUploadServiceStubSettings; +import com.google.showcase.v1beta1.stub.MediaServiceStubSettings; import java.io.IOException; import java.util.List; import javax.annotation.Generated; @@ -21,7 +21,7 @@ import org.jspecify.annotations.Nullable; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** - * Settings class to configure an instance of {@link ResumableUploadServiceClient}. + * Settings class to configure an instance of {@link MediaServiceClient}. * *

The default instance has everything set to sensible defaults: * @@ -33,53 +33,93 @@ import org.jspecify.annotations.Nullable; * *

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 + * [RetrySettings](https://cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.retrying.RetrySettings) + * of getMediaMetadata: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * MediaServiceSettings.Builder mediaServiceSettingsBuilder = MediaServiceSettings.newBuilder();
+ * mediaServiceSettingsBuilder
+ *     .getMediaMetadataSettings()
+ *     .setRetrySettings(
+ *         mediaServiceSettingsBuilder
+ *             .getMediaMetadataSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setInitialRetryDelayDuration(Duration.ofSeconds(1))
+ *             .setInitialRpcTimeoutDuration(Duration.ofSeconds(5))
+ *             .setMaxAttempts(5)
+ *             .setMaxRetryDelayDuration(Duration.ofSeconds(30))
+ *             .setMaxRpcTimeoutDuration(Duration.ofSeconds(60))
+ *             .setRetryDelayMultiplier(1.3)
+ *             .setRpcTimeoutMultiplier(1.5)
+ *             .setTotalTimeoutDuration(Duration.ofSeconds(300))
+ *             .build());
+ * MediaServiceSettings mediaServiceSettings = mediaServiceSettingsBuilder.build();
+ * }
+ * + * Please refer to the [Client Side Retry + * Guide](https://docs.cloud.google.com/java/docs/client-retries) for additional support in setting + * retries. */ @NullMarked @BetaApi @Generated("by gapic-generator-java") -public class ResumableUploadServiceSettings extends ClientSettings { +public class MediaServiceSettings extends ClientSettings { /** Returns the object with the settings used for calls to uploadMedia. */ public ResumableUploadCallSettings uploadMediaSettings() { - return ((ResumableUploadServiceStubSettings) getStubSettings()).uploadMediaSettings(); + return ((MediaServiceStubSettings) getStubSettings()).uploadMediaSettings(); } - public static final ResumableUploadServiceSettings create(ResumableUploadServiceStubSettings stub) + /** Returns the object with the settings used for calls to getMediaMetadata. */ + public UnaryCallSettings + getMediaMetadataSettings() { + return ((MediaServiceStubSettings) getStubSettings()).getMediaMetadataSettings(); + } + + public static final MediaServiceSettings create(MediaServiceStubSettings stub) throws IOException { - return new ResumableUploadServiceSettings.Builder(stub.toBuilder()).build(); + return new MediaServiceSettings.Builder(stub.toBuilder()).build(); } /** Returns a builder for the default ExecutorProvider for this service. */ public static InstantiatingExecutorProvider.Builder defaultExecutorProviderBuilder() { - return ResumableUploadServiceStubSettings.defaultExecutorProviderBuilder(); + return MediaServiceStubSettings.defaultExecutorProviderBuilder(); } /** Returns the default service endpoint. */ public static String getDefaultEndpoint() { - return ResumableUploadServiceStubSettings.getDefaultEndpoint(); + return MediaServiceStubSettings.getDefaultEndpoint(); } /** Returns the default service scopes. */ public static List getDefaultServiceScopes() { - return ResumableUploadServiceStubSettings.getDefaultServiceScopes(); + return MediaServiceStubSettings.getDefaultServiceScopes(); } /** Returns a builder for the default credentials for this service. */ public static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilder() { - return ResumableUploadServiceStubSettings.defaultCredentialsProviderBuilder(); + return MediaServiceStubSettings.defaultCredentialsProviderBuilder(); } /** Returns a builder for the default ChannelProvider for this service. */ public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() { - return ResumableUploadServiceStubSettings.defaultGrpcTransportProviderBuilder(); + return MediaServiceStubSettings.defaultGrpcTransportProviderBuilder(); } public static TransportChannelProvider defaultTransportChannelProvider() { - return ResumableUploadServiceStubSettings.defaultTransportChannelProvider(); + return MediaServiceStubSettings.defaultTransportChannelProvider(); } public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { - return ResumableUploadServiceStubSettings.defaultApiClientHeaderProviderBuilder(); + return MediaServiceStubSettings.defaultApiClientHeaderProviderBuilder(); } /** Returns a new builder for this class. */ @@ -97,36 +137,35 @@ public class ResumableUploadServiceSettings extends ClientSettings { + /** Builder for MediaServiceSettings. */ + public static class Builder extends ClientSettings.Builder { protected Builder() throws IOException { this(((ClientContext) null)); } protected Builder(@Nullable ClientContext clientContext) { - super(ResumableUploadServiceStubSettings.newBuilder(clientContext)); + super(MediaServiceStubSettings.newBuilder(clientContext)); } - protected Builder(ResumableUploadServiceSettings settings) { + protected Builder(MediaServiceSettings settings) { super(settings.getStubSettings().toBuilder()); } - protected Builder(ResumableUploadServiceStubSettings.Builder stubSettings) { + protected Builder(MediaServiceStubSettings.Builder stubSettings) { super(stubSettings); } private static Builder createDefault() { - return new Builder(ResumableUploadServiceStubSettings.newBuilder()); + return new Builder(MediaServiceStubSettings.newBuilder()); } - public ResumableUploadServiceStubSettings.Builder getStubSettingsBuilder() { - return ((ResumableUploadServiceStubSettings.Builder) getStubSettings()); + public MediaServiceStubSettings.Builder getStubSettingsBuilder() { + return ((MediaServiceStubSettings.Builder) getStubSettings()); } /** @@ -146,9 +185,15 @@ public class ResumableUploadServiceSettings extends ClientSettings + getMediaMetadataSettings() { + return getStubSettingsBuilder().getMediaMetadataSettings(); + } + @Override - public ResumableUploadServiceSettings build() throws IOException { - return new ResumableUploadServiceSettings(this); + public MediaServiceSettings build() throws IOException { + return new MediaServiceSettings(this); } } } diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceStub.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceStub.golden similarity index 61% rename from sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceStub.golden rename to sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceStub.golden index 02423b36738e..783f559a4a63 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceStub.golden +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceStub.golden @@ -3,6 +3,9 @@ package com.google.showcase.v1beta1.stub; import com.google.api.core.BetaApi; import com.google.api.gax.core.BackgroundResource; import com.google.api.gax.rpc.ResumableUploadCallable; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.showcase.v1beta1.GetMediaMetadataRequest; +import com.google.showcase.v1beta1.GetMediaMetadataResponse; import com.google.showcase.v1beta1.UploadMediaRequest; import com.google.showcase.v1beta1.UploadMediaResponse; import javax.annotation.Generated; @@ -10,19 +13,24 @@ import org.jspecify.annotations.NullMarked; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** - * Base stub class for the ResumableUploadService service API. + * Base stub class for the MediaService service API. * *

This class is for advanced usage and reflects the underlying API directly. */ @NullMarked @BetaApi @Generated("by gapic-generator-java") -public abstract class ResumableUploadServiceStub implements BackgroundResource { +public abstract class MediaServiceStub implements BackgroundResource { public ResumableUploadCallable uploadMediaCallable() { throw new UnsupportedOperationException("Not implemented: uploadMediaCallable()"); } + public UnaryCallable + getMediaMetadataCallable() { + throw new UnsupportedOperationException("Not implemented: getMediaMetadataCallable()"); + } + @Override public abstract void close(); } diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceStubSettings.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceStubSettings.golden similarity index 67% rename from sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceStubSettings.golden rename to sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceStubSettings.golden index 8c0d11ad8dce..0268dde6d76a 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceStubSettings.golden +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/MediaServiceStubSettings.golden @@ -24,6 +24,8 @@ 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.showcase.v1beta1.GetMediaMetadataRequest; +import com.google.showcase.v1beta1.GetMediaMetadataResponse; import java.io.IOException; import java.time.Duration; import java.util.List; @@ -33,7 +35,7 @@ import org.jspecify.annotations.Nullable; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** - * Settings class to configure an instance of {@link ResumableUploadServiceStub}. + * Settings class to configure an instance of {@link MediaServiceStub}. * *

The default instance has everything set to sensible defaults: * @@ -45,29 +47,71 @@ import org.jspecify.annotations.Nullable; * *

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 + * [RetrySettings](https://cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.retrying.RetrySettings) + * of getMediaMetadata: + * + *

{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * MediaServiceStubSettings.Builder mediaServiceSettingsBuilder =
+ *     MediaServiceStubSettings.newBuilder();
+ * mediaServiceSettingsBuilder
+ *     .getMediaMetadataSettings()
+ *     .setRetrySettings(
+ *         mediaServiceSettingsBuilder
+ *             .getMediaMetadataSettings()
+ *             .getRetrySettings()
+ *             .toBuilder()
+ *             .setInitialRetryDelayDuration(Duration.ofSeconds(1))
+ *             .setInitialRpcTimeoutDuration(Duration.ofSeconds(5))
+ *             .setMaxAttempts(5)
+ *             .setMaxRetryDelayDuration(Duration.ofSeconds(30))
+ *             .setMaxRpcTimeoutDuration(Duration.ofSeconds(60))
+ *             .setRetryDelayMultiplier(1.3)
+ *             .setRpcTimeoutMultiplier(1.5)
+ *             .setTotalTimeoutDuration(Duration.ofSeconds(300))
+ *             .build());
+ * MediaServiceStubSettings mediaServiceSettings = mediaServiceSettingsBuilder.build();
+ * }
+ * + * Please refer to the [Client Side Retry + * Guide](https://docs.cloud.google.com/java/docs/client-retries) for additional support in setting + * retries. */ @NullMarked @BetaApi @Generated("by gapic-generator-java") @SuppressWarnings("CanonicalDuration") -public class ResumableUploadServiceStubSettings - extends StubSettings { +public class MediaServiceStubSettings extends StubSettings { /** The default scopes of the service. */ private static final ImmutableList DEFAULT_SERVICE_SCOPES = ImmutableList.builder().build(); private final ResumableUploadCallSettings uploadMediaSettings; + private final UnaryCallSettings + getMediaMetadataSettings; /** Returns the object with the settings used for calls to uploadMedia. */ public ResumableUploadCallSettings uploadMediaSettings() { return uploadMediaSettings; } - public ResumableUploadServiceStub createStub() throws IOException { + /** Returns the object with the settings used for calls to getMediaMetadata. */ + public UnaryCallSettings + getMediaMetadataSettings() { + return getMediaMetadataSettings; + } + + public MediaServiceStub createStub() throws IOException { if (getTransportChannelProvider() .getTransportName() .equals(GrpcTransportChannel.getGrpcTransportName())) { - return GrpcResumableUploadServiceStub.create(this); + return GrpcMediaServiceStub.create(this); } throw new UnsupportedOperationException( String.format( @@ -115,7 +159,7 @@ public class ResumableUploadServiceStubSettings public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() { return ApiClientHeaderProvider.newBuilder() .setGeneratedLibToken( - "gapic", GaxProperties.getLibraryVersion(ResumableUploadServiceStubSettings.class)) + "gapic", GaxProperties.getLibraryVersion(MediaServiceStubSettings.class)) .setTransportToken( GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion()); } @@ -135,10 +179,11 @@ public class ResumableUploadServiceStubSettings return new Builder(this); } - protected ResumableUploadServiceStubSettings(Builder settingsBuilder) throws IOException { + protected MediaServiceStubSettings(Builder settingsBuilder) throws IOException { super(settingsBuilder); uploadMediaSettings = settingsBuilder.uploadMediaSettings().build(); + getMediaMetadataSettings = settingsBuilder.getMediaMetadataSettings().build(); } @Override @@ -146,11 +191,12 @@ public class ResumableUploadServiceStubSettings return LibraryMetadata.newBuilder().build(); } - /** Builder for ResumableUploadServiceStubSettings. */ - public static class Builder - extends StubSettings.Builder { + /** Builder for MediaServiceStubSettings. */ + public static class Builder extends StubSettings.Builder { private final ImmutableList> unaryMethodSettingsBuilders; private final ResumableUploadCallSettings.Builder uploadMediaSettings; + private final UnaryCallSettings.Builder + getMediaMetadataSettings; private static final ImmutableMap> RETRYABLE_CODE_DEFINITIONS; @@ -179,17 +225,21 @@ public class ResumableUploadServiceStubSettings super(clientContext); uploadMediaSettings = ResumableUploadCallSettings.newBuilder(); + getMediaMetadataSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); - unaryMethodSettingsBuilders = ImmutableList.>of(); + unaryMethodSettingsBuilders = + ImmutableList.>of(getMediaMetadataSettings); initDefaults(this); } - protected Builder(ResumableUploadServiceStubSettings settings) { + protected Builder(MediaServiceStubSettings settings) { super(settings); uploadMediaSettings = settings.uploadMediaSettings.toBuilder(); + getMediaMetadataSettings = settings.getMediaMetadataSettings.toBuilder(); - unaryMethodSettingsBuilders = ImmutableList.>of(); + unaryMethodSettingsBuilders = + ImmutableList.>of(getMediaMetadataSettings); } private static Builder createDefault() { @@ -207,6 +257,11 @@ public class ResumableUploadServiceStubSettings private static Builder initDefaults(Builder builder) { builder.uploadMediaSettings().setGlobalTimeout(Duration.ofMillis(5000L)); + builder + .getMediaMetadataSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + return builder; } @@ -237,9 +292,15 @@ public class ResumableUploadServiceStubSettings return uploadMediaSettings; } + /** Returns the builder for the settings used for calls to getMediaMetadata. */ + public UnaryCallSettings.Builder + getMediaMetadataSettings() { + return getMediaMetadataSettings; + } + @Override - public ResumableUploadServiceStubSettings build() throws IOException { - return new ResumableUploadServiceStubSettings(this); + public MediaServiceStubSettings build() throws IOException { + return new MediaServiceStubSettings(this); } } } diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceClient.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceClient.golden deleted file mode 100644 index f4d14ad1c74f..000000000000 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/ResumableUploadServiceClient.golden +++ /dev/null @@ -1,204 +0,0 @@ -package com.google.showcase.v1beta1; - -import com.google.api.core.BetaApi; -import com.google.api.gax.core.BackgroundResource; -import com.google.api.gax.rpc.ApiExceptions; -import com.google.api.gax.rpc.ResumableUploadCallSettings; -import com.google.api.gax.rpc.ResumableUploadCallable; -import com.google.showcase.v1beta1.stub.ResumableUploadServiceStub; -import com.google.showcase.v1beta1.stub.ResumableUploadServiceStubSettings; -import java.io.IOException; -import java.io.InputStream; -import java.util.concurrent.TimeUnit; -import javax.annotation.Generated; -import org.jspecify.annotations.NullMarked; -import org.jspecify.annotations.Nullable; - -// AUTO-GENERATED DOCUMENTATION AND CLASS. -/** - * This class provides the ability to make remote calls to the backing service through method calls - * that map to API methods. Sample code to get started: - * - *
{@code
- * // This snippet has been automatically generated and should be regarded as a code template only.
- * // It will require modifications to work:
- * // - It may require correct/in-range values for request initialization.
- * // - It may require specifying regional endpoints when creating the service client as shown in
- * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
- * try (ResumableUploadServiceClient resumableUploadServiceClient =
- *     ResumableUploadServiceClient.create()) {}
- * }
- * - *

Note: close() needs to be called on the ResumableUploadServiceClient object to clean up - * resources such as threads. In the example above, try-with-resources is used, which automatically - * calls close(). - * - * - * - * - * - * - * - * - * - * - * - * - * - *
Methods
MethodDescriptionMethod Variants

UploadMedia

- *

Request object method variants only take one parameter, a request object, which must be constructed before the call.

- *
    - *
  • uploadMedia(UploadMediaRequest request, InputStream payload, ResumableUploadCallSettings callSettings) - *

- *

Callable method variants take no parameters and return an immutable API callable object, which can be used to initiate calls to the service.

- *
    - *
  • uploadMediaCallable() - *

- *
- * - *

See the individual methods for example code. - * - *

Many parameters require resource names to be formatted in a particular way. To assist with - * these names, this class includes a format method for each type of name, and additionally a parse - * method to extract the individual identifiers contained within names that are returned. - * - *

This class can be customized by passing in a custom instance of ResumableUploadServiceSettings - * to create(). For example: - * - *

To customize credentials: - * - *

{@code
- * // This snippet has been automatically generated and should be regarded as a code template only.
- * // It will require modifications to work:
- * // - It may require correct/in-range values for request initialization.
- * // - It may require specifying regional endpoints when creating the service client as shown in
- * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
- * ResumableUploadServiceSettings resumableUploadServiceSettings =
- *     ResumableUploadServiceSettings.newBuilder()
- *         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
- *         .build();
- * ResumableUploadServiceClient resumableUploadServiceClient =
- *     ResumableUploadServiceClient.create(resumableUploadServiceSettings);
- * }
- * - *

To customize the endpoint: - * - *

{@code
- * // This snippet has been automatically generated and should be regarded as a code template only.
- * // It will require modifications to work:
- * // - It may require correct/in-range values for request initialization.
- * // - It may require specifying regional endpoints when creating the service client as shown in
- * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
- * ResumableUploadServiceSettings resumableUploadServiceSettings =
- *     ResumableUploadServiceSettings.newBuilder().setEndpoint(myEndpoint).build();
- * ResumableUploadServiceClient resumableUploadServiceClient =
- *     ResumableUploadServiceClient.create(resumableUploadServiceSettings);
- * }
- * - *

Please refer to the GitHub repository's samples for more quickstart code snippets. - */ -@NullMarked -@BetaApi -@Generated("by gapic-generator-java") -public class ResumableUploadServiceClient implements BackgroundResource { - private final @Nullable ResumableUploadServiceSettings settings; - private final ResumableUploadServiceStub stub; - - /** Constructs an instance of ResumableUploadServiceClient with default settings. */ - public static final ResumableUploadServiceClient create() throws IOException { - return create(ResumableUploadServiceSettings.newBuilder().build()); - } - - /** - * Constructs an instance of ResumableUploadServiceClient, using the given settings. The channels - * are created based on the settings passed in, or defaults for any settings that are not set. - */ - public static final ResumableUploadServiceClient create(ResumableUploadServiceSettings settings) - throws IOException { - return new ResumableUploadServiceClient(settings); - } - - /** - * Constructs an instance of ResumableUploadServiceClient, using the given stub for making calls. - * This is for advanced usage - prefer using create(ResumableUploadServiceSettings). - */ - public static final ResumableUploadServiceClient create(ResumableUploadServiceStub stub) { - return new ResumableUploadServiceClient(stub); - } - - /** - * Constructs an instance of ResumableUploadServiceClient, using the given settings. This is - * protected so that it is easy to make a subclass, but otherwise, the static factory methods - * should be preferred. - */ - protected ResumableUploadServiceClient(ResumableUploadServiceSettings settings) - throws IOException { - this.settings = settings; - this.stub = ((ResumableUploadServiceStubSettings) settings.getStubSettings()).createStub(); - } - - protected ResumableUploadServiceClient(ResumableUploadServiceStub stub) { - this.settings = null; - this.stub = stub; - } - - public final @Nullable ResumableUploadServiceSettings getSettings() { - return settings; - } - - public ResumableUploadServiceStub getStub() { - return stub; - } - - // AUTO-GENERATED DOCUMENTATION AND METHOD. - /** - * @param request The request object containing all of the parameters for the API call. - * @param payload The payload data stream to upload. - * @param callSettings The call settings to apply to this upload, or null to use defaults. - * @throws com.google.api.gax.rpc.ApiException if the remote call fails - */ - public final UploadMediaResponse uploadMedia( - UploadMediaRequest request, - InputStream payload, - @Nullable ResumableUploadCallSettings callSettings) { - return ApiExceptions.callAndTranslateApiException( - uploadMediaCallable().futureCall(request, payload, callSettings)); - } - - // AUTO-GENERATED DOCUMENTATION AND METHOD. - /** */ - public final ResumableUploadCallable - uploadMediaCallable() { - return stub.uploadMediaCallable(); - } - - @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); - } -} diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/AsyncGetMediaMetadata.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/AsyncGetMediaMetadata.golden new file mode 100644 index 000000000000..3aaa4847f251 --- /dev/null +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/AsyncGetMediaMetadata.golden @@ -0,0 +1,47 @@ +/* + * Copyright 2025 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.showcase.v1beta1.samples; + +// [START goldensample_generated_MediaService_GetMediaMetadata_async] +import com.google.api.core.ApiFuture; +import com.google.showcase.v1beta1.GetMediaMetadataRequest; +import com.google.showcase.v1beta1.GetMediaMetadataResponse; +import com.google.showcase.v1beta1.MediaServiceClient; + +public class AsyncGetMediaMetadata { + + public static void main(String[] args) throws Exception { + asyncGetMediaMetadata(); + } + + public static void asyncGetMediaMetadata() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + try (MediaServiceClient mediaServiceClient = MediaServiceClient.create()) { + GetMediaMetadataRequest request = + GetMediaMetadataRequest.newBuilder().setName("name3373707").build(); + ApiFuture future = + mediaServiceClient.getMediaMetadataCallable().futureCall(request); + // Do something. + GetMediaMetadataResponse response = future.get(); + } + } +} +// [END goldensample_generated_MediaService_GetMediaMetadata_async] diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/resumableuploadserviceclient/SyncCreateSetCredentialsProvider.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/SyncCreateSetCredentialsProvider.golden similarity index 72% rename from sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/resumableuploadserviceclient/SyncCreateSetCredentialsProvider.golden rename to sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/SyncCreateSetCredentialsProvider.golden index 61f79a3354cf..666a031c4b0e 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/resumableuploadserviceclient/SyncCreateSetCredentialsProvider.golden +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/SyncCreateSetCredentialsProvider.golden @@ -16,10 +16,10 @@ package com.google.showcase.v1beta1.samples; -// [START goldensample_generated_ResumableUploadService_Create_SetCredentialsProvider_sync] +// [START goldensample_generated_MediaService_Create_SetCredentialsProvider_sync] import com.google.api.gax.core.FixedCredentialsProvider; -import com.google.showcase.v1beta1.ResumableUploadServiceClient; -import com.google.showcase.v1beta1.ResumableUploadServiceSettings; +import com.google.showcase.v1beta1.MediaServiceClient; +import com.google.showcase.v1beta1.MediaServiceSettings; import com.google.showcase.v1beta1.myCredentials; public class SyncCreateSetCredentialsProvider { @@ -34,12 +34,11 @@ public class SyncCreateSetCredentialsProvider { // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library - ResumableUploadServiceSettings resumableUploadServiceSettings = - ResumableUploadServiceSettings.newBuilder() + MediaServiceSettings mediaServiceSettings = + MediaServiceSettings.newBuilder() .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials)) .build(); - ResumableUploadServiceClient resumableUploadServiceClient = - ResumableUploadServiceClient.create(resumableUploadServiceSettings); + MediaServiceClient mediaServiceClient = MediaServiceClient.create(mediaServiceSettings); } } -// [END goldensample_generated_ResumableUploadService_Create_SetCredentialsProvider_sync] +// [END goldensample_generated_MediaService_Create_SetCredentialsProvider_sync] diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/resumableuploadserviceclient/SyncCreateSetEndpoint.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/SyncCreateSetEndpoint.golden similarity index 69% rename from sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/resumableuploadserviceclient/SyncCreateSetEndpoint.golden rename to sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/SyncCreateSetEndpoint.golden index a41fe16336d8..896ae5a42623 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/resumableuploadserviceclient/SyncCreateSetEndpoint.golden +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/SyncCreateSetEndpoint.golden @@ -16,9 +16,9 @@ package com.google.showcase.v1beta1.samples; -// [START goldensample_generated_ResumableUploadService_Create_SetEndpoint_sync] -import com.google.showcase.v1beta1.ResumableUploadServiceClient; -import com.google.showcase.v1beta1.ResumableUploadServiceSettings; +// [START goldensample_generated_MediaService_Create_SetEndpoint_sync] +import com.google.showcase.v1beta1.MediaServiceClient; +import com.google.showcase.v1beta1.MediaServiceSettings; import com.google.showcase.v1beta1.myEndpoint; public class SyncCreateSetEndpoint { @@ -33,10 +33,9 @@ public class SyncCreateSetEndpoint { // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library - ResumableUploadServiceSettings resumableUploadServiceSettings = - ResumableUploadServiceSettings.newBuilder().setEndpoint(myEndpoint).build(); - ResumableUploadServiceClient resumableUploadServiceClient = - ResumableUploadServiceClient.create(resumableUploadServiceSettings); + MediaServiceSettings mediaServiceSettings = + MediaServiceSettings.newBuilder().setEndpoint(myEndpoint).build(); + MediaServiceClient mediaServiceClient = MediaServiceClient.create(mediaServiceSettings); } } -// [END goldensample_generated_ResumableUploadService_Create_SetEndpoint_sync] +// [END goldensample_generated_MediaService_Create_SetEndpoint_sync] diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/resumableuploadserviceclient/SyncEmtpy.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/SyncGetMediaMetadata.golden similarity index 60% rename from sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/resumableuploadserviceclient/SyncEmtpy.golden rename to sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/SyncGetMediaMetadata.golden index a3713f4609f3..63debf553848 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/resumableuploadserviceclient/SyncEmtpy.golden +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/mediaserviceclient/SyncGetMediaMetadata.golden @@ -16,23 +16,28 @@ package com.google.showcase.v1beta1.samples; -// [START goldensample_generated_ResumableUploadService_Emtpy_sync] -import com.google.showcase.v1beta1.ResumableUploadServiceClient; +// [START goldensample_generated_MediaService_GetMediaMetadata_sync] +import com.google.showcase.v1beta1.GetMediaMetadataRequest; +import com.google.showcase.v1beta1.GetMediaMetadataResponse; +import com.google.showcase.v1beta1.MediaServiceClient; -public class SyncEmtpy { +public class SyncGetMediaMetadata { public static void main(String[] args) throws Exception { - syncEmtpy(); + syncGetMediaMetadata(); } - public static void syncEmtpy() throws Exception { + public static void syncGetMediaMetadata() throws Exception { // This snippet has been automatically generated and should be regarded as a code template only. // It will require modifications to work: // - It may require correct/in-range values for request initialization. // - It may require specifying regional endpoints when creating the service client as shown in // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library - try (ResumableUploadServiceClient resumableUploadServiceClient = - ResumableUploadServiceClient.create()) {} + try (MediaServiceClient mediaServiceClient = MediaServiceClient.create()) { + GetMediaMetadataRequest request = + GetMediaMetadataRequest.newBuilder().setName("name3373707").build(); + GetMediaMetadataResponse response = mediaServiceClient.getMediaMetadata(request); + } } } -// [END goldensample_generated_ResumableUploadService_Emtpy_sync] +// [END goldensample_generated_MediaService_GetMediaMetadata_sync] diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/servicesettings/SyncGetMediaMetadata.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/servicesettings/SyncGetMediaMetadata.golden new file mode 100644 index 000000000000..c30dae507fe7 --- /dev/null +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/servicesettings/SyncGetMediaMetadata.golden @@ -0,0 +1,55 @@ +/* + * Copyright 2025 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.showcase.v1beta1.samples; + +// [START goldensample_generated_MediaServiceSettings_GetMediaMetadata_sync] +import com.google.showcase.v1beta1.MediaServiceSettings; +import java.time.Duration; + +public class SyncGetMediaMetadata { + + public static void main(String[] args) throws Exception { + syncGetMediaMetadata(); + } + + public static void syncGetMediaMetadata() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + MediaServiceSettings.Builder mediaServiceSettingsBuilder = MediaServiceSettings.newBuilder(); + mediaServiceSettingsBuilder + .getMediaMetadataSettings() + .setRetrySettings( + mediaServiceSettingsBuilder + .getMediaMetadataSettings() + .getRetrySettings() + .toBuilder() + .setInitialRetryDelayDuration(Duration.ofSeconds(1)) + .setInitialRpcTimeoutDuration(Duration.ofSeconds(5)) + .setMaxAttempts(5) + .setMaxRetryDelayDuration(Duration.ofSeconds(30)) + .setMaxRpcTimeoutDuration(Duration.ofSeconds(60)) + .setRetryDelayMultiplier(1.3) + .setRpcTimeoutMultiplier(1.5) + .setTotalTimeoutDuration(Duration.ofSeconds(300)) + .build()); + MediaServiceSettings mediaServiceSettings = mediaServiceSettingsBuilder.build(); + } +} +// [END goldensample_generated_MediaServiceSettings_GetMediaMetadata_sync] diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/servicesettings/stub/SyncGetMediaMetadata.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/servicesettings/stub/SyncGetMediaMetadata.golden new file mode 100644 index 000000000000..ac1f78c6aaec --- /dev/null +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/grpc/goldens/samples/servicesettings/stub/SyncGetMediaMetadata.golden @@ -0,0 +1,56 @@ +/* + * Copyright 2025 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.showcase.v1beta1.stub.samples; + +// [START goldensample_generated_MediaServiceStubSettings_GetMediaMetadata_sync] +import com.google.showcase.v1beta1.stub.MediaServiceStubSettings; +import java.time.Duration; + +public class SyncGetMediaMetadata { + + public static void main(String[] args) throws Exception { + syncGetMediaMetadata(); + } + + public static void syncGetMediaMetadata() throws Exception { + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in + // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library + MediaServiceStubSettings.Builder mediaServiceSettingsBuilder = + MediaServiceStubSettings.newBuilder(); + mediaServiceSettingsBuilder + .getMediaMetadataSettings() + .setRetrySettings( + mediaServiceSettingsBuilder + .getMediaMetadataSettings() + .getRetrySettings() + .toBuilder() + .setInitialRetryDelayDuration(Duration.ofSeconds(1)) + .setInitialRpcTimeoutDuration(Duration.ofSeconds(5)) + .setMaxAttempts(5) + .setMaxRetryDelayDuration(Duration.ofSeconds(30)) + .setMaxRpcTimeoutDuration(Duration.ofSeconds(60)) + .setRetryDelayMultiplier(1.3) + .setRpcTimeoutMultiplier(1.5) + .setTotalTimeoutDuration(Duration.ofSeconds(300)) + .build()); + MediaServiceStubSettings mediaServiceSettings = mediaServiceSettingsBuilder.build(); + } +} +// [END goldensample_generated_MediaServiceStubSettings_GetMediaMetadata_sync] diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceResumableUploadStubClassComposerTest.java b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceResumableUploadStubClassComposerTest.java index c1e1bd7536ad..958edae350de 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceResumableUploadStubClassComposerTest.java +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceResumableUploadStubClassComposerTest.java @@ -31,7 +31,7 @@ void generate_matchesGolden() { GapicClass clazz = HttpJsonServiceResumableUploadStubClassComposer.instance().generate(context, service); Assert.assertGoldenClass( - this.getClass(), clazz, "HttpJsonResumableUploadServiceResumableUploadStub.golden"); + this.getClass(), clazz, "HttpJsonMediaServiceResumableUploadStub.golden"); Assert.assertEmptySamples(clazz.samples()); } } diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceStubClassComposerTest.java b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceStubClassComposerTest.java index e195d2172665..b614078e8d05 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceStubClassComposerTest.java +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/HttpJsonServiceStubClassComposerTest.java @@ -234,7 +234,7 @@ void generateHttpJsonServiceStubClass_resumableUpload() { Service service = context.services().get(0); GapicClass clazz = composer.generate(context, service); - Assert.assertGoldenClass(this.getClass(), clazz, "HttpJsonResumableUploadServiceStub.golden"); + Assert.assertGoldenClass(this.getClass(), clazz, "HttpJsonMediaServiceStub.golden"); Assert.assertEmptySamples(clazz.samples()); } } diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonResumableUploadServiceResumableUploadStub.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonMediaServiceResumableUploadStub.golden similarity index 85% rename from sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonResumableUploadServiceResumableUploadStub.golden rename to sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonMediaServiceResumableUploadStub.golden index c7c46df4a873..675f821a5c3a 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonResumableUploadServiceResumableUploadStub.golden +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonMediaServiceResumableUploadStub.golden @@ -30,7 +30,7 @@ import org.jspecify.annotations.NullMarked; // AUTO-GENERATED DOCUMENTATION AND CLASS. /** - * REST stub transport for the resumable upload methods of ResumableUploadService. + * REST stub transport for the resumable upload methods of MediaService. * *

This class is for advanced usage and reflects the underlying API directly. */ @@ -38,13 +38,13 @@ import org.jspecify.annotations.NullMarked; @InternalApi @NullMarked @BetaApi -public class HttpJsonResumableUploadServiceResumableUploadStub implements BackgroundResource { +public class HttpJsonMediaServiceResumableUploadStub implements BackgroundResource { private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build(); private static final ApiMethodDescriptor uploadMediaMethodDescriptor = ApiMethodDescriptor.newBuilder() - .setFullMethodName("google.showcase.v1beta1.ResumableUploadService/UploadMedia") + .setFullMethodName("google.showcase.v1beta1.MediaService/UploadMedia") .setHttpMethod("POST") .setType(ApiMethodDescriptor.MethodType.UNARY) .setRequestFormatter( @@ -80,29 +80,27 @@ public class HttpJsonResumableUploadServiceResumableUploadStub implements Backgr private final ResumableUploadCallable uploadMediaCallable; - public static HttpJsonResumableUploadServiceResumableUploadStub create( - ResumableUploadServiceStubSettings settings) throws IOException { + public static HttpJsonMediaServiceResumableUploadStub create(MediaServiceStubSettings settings) + throws IOException { if (settings .getTransportChannelProvider() .getTransportName() .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) { - return new HttpJsonResumableUploadServiceResumableUploadStub( - ClientContext.create(settings), settings); + return new HttpJsonMediaServiceResumableUploadStub(ClientContext.create(settings), settings); } - return new HttpJsonResumableUploadServiceResumableUploadStub( + return new HttpJsonMediaServiceResumableUploadStub( deriveHttpJsonClientContext(settings), settings); } - private static ClientContext deriveHttpJsonClientContext( - ResumableUploadServiceStubSettings settings) throws IOException { + private static ClientContext deriveHttpJsonClientContext(MediaServiceStubSettings settings) + throws IOException { return ClientContext.create( settings .toBuilder() .setHttpJsonInternalHeaderProvider( ApiClientHeaderProvider.newBuilder() .setGeneratedLibToken( - "gapic", - GaxProperties.getLibraryVersion(ResumableUploadServiceStubSettings.class)) + "gapic", GaxProperties.getLibraryVersion(MediaServiceStubSettings.class)) .setTransportToken( GaxHttpJsonProperties.getHttpJsonTokenName(), GaxHttpJsonProperties.getHttpJsonVersion()) @@ -111,8 +109,8 @@ public class HttpJsonResumableUploadServiceResumableUploadStub implements Backgr .build()); } - private HttpJsonResumableUploadServiceResumableUploadStub( - ClientContext clientContext, ResumableUploadServiceStubSettings settings) { + private HttpJsonMediaServiceResumableUploadStub( + ClientContext clientContext, MediaServiceStubSettings settings) { HttpJsonCallSettings uploadMediaTransportSettings = HttpJsonCallSettings.newBuilder() .setMethodDescriptor(uploadMediaMethodDescriptor) diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonMediaServiceStub.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonMediaServiceStub.golden new file mode 100644 index 000000000000..2930ff87ae8c --- /dev/null +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonMediaServiceStub.golden @@ -0,0 +1,198 @@ +package com.google.showcase.v1beta1.stub; + +import com.google.api.core.BetaApi; +import com.google.api.core.InternalApi; +import com.google.api.gax.core.BackgroundResource; +import com.google.api.gax.core.BackgroundResourceAggregation; +import com.google.api.gax.httpjson.ApiMethodDescriptor; +import com.google.api.gax.httpjson.HttpJsonCallSettings; +import com.google.api.gax.httpjson.HttpJsonStubCallableFactory; +import com.google.api.gax.httpjson.ProtoMessageRequestFormatter; +import com.google.api.gax.httpjson.ProtoMessageResponseParser; +import com.google.api.gax.httpjson.ProtoRestSerializer; +import com.google.api.gax.rpc.ClientContext; +import com.google.api.gax.rpc.ResumableUploadCallable; +import com.google.api.gax.rpc.UnaryCallable; +import com.google.common.collect.ImmutableList; +import com.google.protobuf.TypeRegistry; +import com.google.showcase.v1beta1.GetMediaMetadataRequest; +import com.google.showcase.v1beta1.GetMediaMetadataResponse; +import com.google.showcase.v1beta1.UploadMediaRequest; +import com.google.showcase.v1beta1.UploadMediaResponse; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.TimeUnit; +import javax.annotation.Generated; +import org.jspecify.annotations.NullMarked; + +// AUTO-GENERATED DOCUMENTATION AND CLASS. +/** + * REST stub implementation for the MediaService service API. + * + *

This class is for advanced usage and reflects the underlying API directly. + */ +@NullMarked +@BetaApi +@Generated("by gapic-generator-java") +public class HttpJsonMediaServiceStub extends MediaServiceStub { + private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build(); + + private static final ApiMethodDescriptor + getMediaMetadataMethodDescriptor = + ApiMethodDescriptor.newBuilder() + .setFullMethodName("google.showcase.v1beta1.MediaService/GetMediaMetadata") + .setHttpMethod("POST") + .setType(ApiMethodDescriptor.MethodType.UNARY) + .setRequestFormatter( + ProtoMessageRequestFormatter.newBuilder() + .setPath( + "/v1beta1/files:read", + request -> { + Map fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setQueryParamsExtractor( + request -> { + Map> fields = new HashMap<>(); + ProtoRestSerializer serializer = + ProtoRestSerializer.create(); + return fields; + }) + .setRequestBodyExtractor( + request -> + ProtoRestSerializer.create() + .toBody("*", request.toBuilder().build(), false)) + .build()) + .setResponseParser( + ProtoMessageResponseParser.newBuilder() + .setDefaultInstance(GetMediaMetadataResponse.getDefaultInstance()) + .setDefaultTypeRegistry(typeRegistry) + .build()) + .build(); + + private final UnaryCallable + getMediaMetadataCallable; + + private final BackgroundResource backgroundResources; + private final HttpJsonMediaServiceResumableUploadStub resumableUploadStub; + private final HttpJsonStubCallableFactory callableFactory; + + public static final HttpJsonMediaServiceStub create(MediaServiceStubSettings settings) + throws IOException { + return new HttpJsonMediaServiceStub(settings, ClientContext.create(settings)); + } + + public static final HttpJsonMediaServiceStub create(ClientContext clientContext) + throws IOException { + return new HttpJsonMediaServiceStub( + MediaServiceStubSettings.newBuilder().build(), clientContext); + } + + public static final HttpJsonMediaServiceStub create( + ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException { + return new HttpJsonMediaServiceStub( + MediaServiceStubSettings.newBuilder().build(), clientContext, callableFactory); + } + + /** + * Constructs an instance of HttpJsonMediaServiceStub, using the given settings. This is protected + * so that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected HttpJsonMediaServiceStub(MediaServiceStubSettings settings, ClientContext clientContext) + throws IOException { + this(settings, clientContext, new HttpJsonMediaServiceCallableFactory()); + } + + /** + * Constructs an instance of HttpJsonMediaServiceStub, using the given settings. This is protected + * so that it is easy to make a subclass, but otherwise, the static factory methods should be + * preferred. + */ + protected HttpJsonMediaServiceStub( + MediaServiceStubSettings settings, + ClientContext clientContext, + HttpJsonStubCallableFactory callableFactory) + throws IOException { + this.callableFactory = callableFactory; + + HttpJsonCallSettings + getMediaMetadataTransportSettings = + HttpJsonCallSettings.newBuilder() + .setMethodDescriptor(getMediaMetadataMethodDescriptor) + .setTypeRegistry(typeRegistry) + .build(); + + this.getMediaMetadataCallable = + callableFactory.createUnaryCallable( + getMediaMetadataTransportSettings, settings.getMediaMetadataSettings(), clientContext); + + this.resumableUploadStub = HttpJsonMediaServiceResumableUploadStub.create(settings); + + this.backgroundResources = + new BackgroundResourceAggregation( + ImmutableList.builder() + .addAll(clientContext.getBackgroundResources()) + .add(resumableUploadStub) + .build()); + } + + @InternalApi + public static List getMethodDescriptors() { + List methodDescriptors = new ArrayList<>(); + methodDescriptors.add(getMediaMetadataMethodDescriptor); + return methodDescriptors; + } + + @Override + public UnaryCallable + getMediaMetadataCallable() { + return getMediaMetadataCallable; + } + + @Override + public ResumableUploadCallable uploadMediaCallable() { + return resumableUploadStub.uploadMediaCallable(); + } + + @Override + public final void close() { + try { + backgroundResources.close(); + } catch (RuntimeException e) { + throw e; + } catch (Exception e) { + throw new IllegalStateException("Failed to close resource", e); + } + } + + @Override + public void shutdown() { + backgroundResources.shutdown(); + } + + @Override + public boolean isShutdown() { + return backgroundResources.isShutdown(); + } + + @Override + public boolean isTerminated() { + return backgroundResources.isTerminated(); + } + + @Override + public void shutdownNow() { + backgroundResources.shutdownNow(); + } + + @Override + public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { + return backgroundResources.awaitTermination(duration, unit); + } +} diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonResumableUploadServiceStub.golden b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonResumableUploadServiceStub.golden deleted file mode 100644 index 620db8c00622..000000000000 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/composer/rest/goldens/HttpJsonResumableUploadServiceStub.golden +++ /dev/null @@ -1,133 +0,0 @@ -package com.google.showcase.v1beta1.stub; - -import com.google.api.core.BetaApi; -import com.google.api.core.InternalApi; -import com.google.api.gax.core.BackgroundResource; -import com.google.api.gax.core.BackgroundResourceAggregation; -import com.google.api.gax.httpjson.ApiMethodDescriptor; -import com.google.api.gax.httpjson.HttpJsonStubCallableFactory; -import com.google.api.gax.rpc.ClientContext; -import com.google.api.gax.rpc.ResumableUploadCallable; -import com.google.common.collect.ImmutableList; -import com.google.protobuf.TypeRegistry; -import com.google.showcase.v1beta1.UploadMediaRequest; -import com.google.showcase.v1beta1.UploadMediaResponse; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.TimeUnit; -import javax.annotation.Generated; -import org.jspecify.annotations.NullMarked; - -// AUTO-GENERATED DOCUMENTATION AND CLASS. -/** - * REST stub implementation for the ResumableUploadService service API. - * - *

This class is for advanced usage and reflects the underlying API directly. - */ -@NullMarked -@BetaApi -@Generated("by gapic-generator-java") -public class HttpJsonResumableUploadServiceStub extends ResumableUploadServiceStub { - private static final TypeRegistry typeRegistry = TypeRegistry.newBuilder().build(); - - private final BackgroundResource backgroundResources; - private final HttpJsonResumableUploadServiceResumableUploadStub resumableUploadStub; - private final HttpJsonStubCallableFactory callableFactory; - - public static final HttpJsonResumableUploadServiceStub create( - ResumableUploadServiceStubSettings settings) throws IOException { - return new HttpJsonResumableUploadServiceStub(settings, ClientContext.create(settings)); - } - - public static final HttpJsonResumableUploadServiceStub create(ClientContext clientContext) - throws IOException { - return new HttpJsonResumableUploadServiceStub( - ResumableUploadServiceStubSettings.newBuilder().build(), clientContext); - } - - public static final HttpJsonResumableUploadServiceStub create( - ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException { - return new HttpJsonResumableUploadServiceStub( - ResumableUploadServiceStubSettings.newBuilder().build(), clientContext, callableFactory); - } - - /** - * Constructs an instance of HttpJsonResumableUploadServiceStub, using the given settings. This is - * protected so that it is easy to make a subclass, but otherwise, the static factory methods - * should be preferred. - */ - protected HttpJsonResumableUploadServiceStub( - ResumableUploadServiceStubSettings settings, ClientContext clientContext) throws IOException { - this(settings, clientContext, new HttpJsonResumableUploadServiceCallableFactory()); - } - - /** - * Constructs an instance of HttpJsonResumableUploadServiceStub, using the given settings. This is - * protected so that it is easy to make a subclass, but otherwise, the static factory methods - * should be preferred. - */ - protected HttpJsonResumableUploadServiceStub( - ResumableUploadServiceStubSettings settings, - ClientContext clientContext, - HttpJsonStubCallableFactory callableFactory) - throws IOException { - this.callableFactory = callableFactory; - - this.resumableUploadStub = HttpJsonResumableUploadServiceResumableUploadStub.create(settings); - - this.backgroundResources = - new BackgroundResourceAggregation( - ImmutableList.builder() - .addAll(clientContext.getBackgroundResources()) - .add(resumableUploadStub) - .build()); - } - - @InternalApi - public static List getMethodDescriptors() { - List methodDescriptors = new ArrayList<>(); - return methodDescriptors; - } - - @Override - public ResumableUploadCallable uploadMediaCallable() { - return resumableUploadStub.uploadMediaCallable(); - } - - @Override - public final void close() { - try { - backgroundResources.close(); - } catch (RuntimeException e) { - throw e; - } catch (Exception e) { - throw new IllegalStateException("Failed to close resource", e); - } - } - - @Override - public void shutdown() { - backgroundResources.shutdown(); - } - - @Override - public boolean isShutdown() { - return backgroundResources.isShutdown(); - } - - @Override - public boolean isTerminated() { - return backgroundResources.isTerminated(); - } - - @Override - public void shutdownNow() { - backgroundResources.shutdownNow(); - } - - @Override - public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException { - return backgroundResources.awaitTermination(duration, unit); - } -} diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/protoparser/ParserTest.java b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/protoparser/ParserTest.java index 9cb113a34bc9..c167e7545a36 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/protoparser/ParserTest.java +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/gapic/protoparser/ParserTest.java @@ -55,7 +55,7 @@ import com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest; import com.google.selective.generate.v1beta1.SelectiveApiGenerationOuterClass; import com.google.showcase.v1beta1.EchoOuterClass; -import com.google.showcase.v1beta1.ResumableUpload; +import com.google.showcase.v1beta1.MediaProto; import com.google.showcase.v1beta1.TestingOuterClass; import com.google.testgapic.v1beta1.LockerProto; import java.nio.file.Path; @@ -207,7 +207,7 @@ void parseMethods_basic() { @Test void parseMethods_resumableUpload() { - FileDescriptor resumableUploadFileDescriptor = ResumableUpload.getDescriptor(); + FileDescriptor resumableUploadFileDescriptor = MediaProto.getDescriptor(); ServiceDescriptor resumableUploadService = resumableUploadFileDescriptor.getServices().get(0); Map messageTypes = Parser.parseMessages(resumableUploadFileDescriptor); Map resourceNames = @@ -227,10 +227,13 @@ void parseMethods_resumableUpload() { outputResourceNames, Transport.GRPC); - assertThat(methods).hasSize(1); + assertThat(methods).hasSize(2); Method uploadMethod = methods.get(0); assertThat(uploadMethod.name()).isEqualTo("UploadMedia"); assertThat(uploadMethod.isResumableUpload()).isTrue(); + Method metadataMethod = methods.get(1); + assertThat(metadataMethod.name()).isEqualTo("GetMediaMetadata"); + assertThat(metadataMethod.isResumableUpload()).isFalse(); } @Test diff --git a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/test/protoloader/TestProtoLoader.java b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/test/protoloader/TestProtoLoader.java index a8b7830949cd..d76b09c0f5b3 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/test/protoloader/TestProtoLoader.java +++ b/sdk-platform-java/gapic-generator-java/src/test/java/com/google/api/generator/test/protoloader/TestProtoLoader.java @@ -44,8 +44,8 @@ import com.google.selective.generate.v1beta1.SelectiveApiGenerationOuterClass; import com.google.showcase.v1beta1.EchoOuterClass; import com.google.showcase.v1beta1.IdentityOuterClass; +import com.google.showcase.v1beta1.MediaProto; import com.google.showcase.v1beta1.MessagingOuterClass; -import com.google.showcase.v1beta1.ResumableUpload; import com.google.showcase.v1beta1.TestingOuterClass; import com.google.test.callablenamingtype.CallableNameType; import com.google.testdata.v1.DeprecatedServiceOuterClass; @@ -280,9 +280,9 @@ public GapicContext parseShowcaseTesting() { } public GapicContext parseShowcaseResumableUpload() { - FileDescriptor fileDescriptor = ResumableUpload.getDescriptor(); + FileDescriptor fileDescriptor = MediaProto.getDescriptor(); ServiceDescriptor serviceDescriptor = fileDescriptor.getServices().get(0); - assertEquals("ResumableUploadService", serviceDescriptor.getName()); + assertEquals("MediaService", serviceDescriptor.getName()); Map messageTypes = Parser.parseMessages(fileDescriptor); Map resourceNames = Parser.parseResourceNames(fileDescriptor); diff --git a/sdk-platform-java/gapic-generator-java/src/test/proto/resumable_upload.proto b/sdk-platform-java/gapic-generator-java/src/test/proto/media.proto similarity index 74% rename from sdk-platform-java/gapic-generator-java/src/test/proto/resumable_upload.proto rename to sdk-platform-java/gapic-generator-java/src/test/proto/media.proto index 0f8c81a31545..b22c667da3a5 100644 --- a/sdk-platform-java/gapic-generator-java/src/test/proto/resumable_upload.proto +++ b/sdk-platform-java/gapic-generator-java/src/test/proto/media.proto @@ -19,13 +19,12 @@ package google.showcase.v1beta1; import "google/api/annotations.proto"; import "google/api/client.proto"; -option go_package = "github.com/googleapis/gapic-showcase/server/genproto"; option java_package = "com.google.showcase.v1beta1"; option java_multiple_files = true; -option ruby_package = "Google::Showcase::V1beta1"; +option java_outer_classname = "MediaProto"; // A service showcasing universal resumable upload protocol support. -service ResumableUploadService { +service MediaService { option (google.api.default_host) = "localhost:7469"; // A method with media_upload annotation enabled. @@ -35,6 +34,15 @@ service ResumableUploadService { body: "*" }; } + + // A method without resumable upload functionality. + rpc GetMediaMetadata(GetMediaMetadataRequest) + returns (GetMediaMetadataResponse) { + option (google.api.http) = { + post: "/v1beta1/files:read" + body: "*" + }; + } } message UploadMediaRequest { @@ -45,3 +53,12 @@ message UploadMediaResponse { string name = 1; int64 size = 2; } + +message GetMediaMetadataRequest { + string name = 1; +} + +message GetMediaMetadataResponse { + string name = 1; + string metadata = 3; +}