googleapis/gapic-generator

LRO polling settings have no effect in V2 of gapic.yaml

aohren opened this issue · 1 comments

I'm attempting to override the default LRO polling settings for a specific method of a specific service. The following config gives no error and lib generation succeeds, but the long_running section ultimately has no effect:

type: com.google.api.codegen.ConfigProto
config_schema_version: 2.0.0
interfaces:
- name: google.ads.googleads.v3.services.OfflineUserDataJobService
  methods:
  - name: RunOfflineUserDataJob
    long_running:
      initial_poll_delay_millis: 300000
      max_poll_delay_millis: 3600000
      poll_delay_multiplier: 1.25
      total_poll_timeout_millis: 43200000
language_settings:
  csharp:
    package_name: Google.Ads.GoogleAds.V3.Services
  go:
    package_name: google.golang.org/google/ads/googleads/v3/services
  java:
    package_name: com.google.ads.googleads.v3.services
  nodejs:
    package_name: v3.services
  php:
    package_name: Google\Ads\Googleads\V3\Services
  python:
    package_name: google.ads.googleads_v3.gapic.services
  ruby:
    package_name: Google::Ads::Googleads::V3::Services

In generated Java code, for example, the corresponding OfflineUserDataJobServiceStubSettings.java file does not contain RetrySettings according to above.

Is this supposed to work, or is there a different way of setting LRO settings in v2 gapic yaml?

It turns out this was due to a missing google.longrunning.operation_info annotation on RunOfflineUserDataJob in the service's protobuf definition. Adding that in caused the above settings to take effect properly.