1// Copyright 2019 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//      http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package generator
16
17// microgenConfig represents a single microgen target.
18type microgenConfig struct {
19	// inputDirectoryPath is the path to the input (.proto, etc) files, relative
20	// to googleapisDir.
21	inputDirectoryPath string
22
23	// importPath is the path that this library should be imported as.
24	importPath string
25
26	// pkg is the name that should be used in the package declaration.
27	pkg string
28
29	// gRPCServiceConfigPath is the path to the grpc service config for this
30	// target, relative to googleapisDir.
31	gRPCServiceConfigPath string
32
33	// apiServiceConfigPath is the path to the gapic service config for this
34	// target, relative to googleapisDir.
35	apiServiceConfigPath string
36
37	// releaseLevel is the release level of this target. Values incl ga,
38	// beta, alpha.
39	releaseLevel string
40
41	// stopGeneration is used to stop generating a given client. This might be
42	// useful if a client needs to be deprecated, but retained in the repo
43	// metadata.
44	stopGeneration bool
45
46	// disableMetadata is used to toggle generation of the gapic_metadata.json
47	// file for the client library.
48	disableMetadata bool
49}
50
51var microgenGapicConfigs = []*microgenConfig{
52	// Cloud APIs
53	{
54		inputDirectoryPath:    "google/cloud/texttospeech/v1",
55		pkg:                   "texttospeech",
56		importPath:            "cloud.google.com/go/texttospeech/apiv1",
57		gRPCServiceConfigPath: "google/cloud/texttospeech/v1/texttospeech_grpc_service_config.json",
58		apiServiceConfigPath:  "google/cloud/texttospeech/v1/texttospeech_v1.yaml",
59		releaseLevel:          "ga",
60	},
61	{
62		inputDirectoryPath:    "google/cloud/asset/v1",
63		pkg:                   "asset",
64		importPath:            "cloud.google.com/go/asset/apiv1",
65		gRPCServiceConfigPath: "google/cloud/asset/v1/cloudasset_grpc_service_config.json",
66		apiServiceConfigPath:  "google/cloud/asset/v1/cloudasset_v1.yaml",
67		releaseLevel:          "ga",
68	},
69	{
70		inputDirectoryPath:    "google/cloud/billing/v1",
71		pkg:                   "billing",
72		importPath:            "cloud.google.com/go/billing/apiv1",
73		gRPCServiceConfigPath: "google/cloud/billing/v1/cloud_billing_grpc_service_config.json",
74		apiServiceConfigPath:  "google/cloud/billing/v1/cloudbilling.yaml",
75		releaseLevel:          "ga",
76	},
77	{
78		inputDirectoryPath:    "google/cloud/language/v1",
79		pkg:                   "language",
80		importPath:            "cloud.google.com/go/language/apiv1",
81		gRPCServiceConfigPath: "google/cloud/language/v1/language_grpc_service_config.json",
82		apiServiceConfigPath:  "google/cloud/language/language_v1.yaml",
83		releaseLevel:          "ga",
84	},
85	{
86		inputDirectoryPath:    "google/cloud/language/v1beta2",
87		pkg:                   "language",
88		importPath:            "cloud.google.com/go/language/apiv1beta2",
89		gRPCServiceConfigPath: "google/cloud/language/v1beta2/language_grpc_service_config.json",
90		apiServiceConfigPath:  "google/cloud/language/v1beta2/language_v1beta2.yaml",
91		releaseLevel:          "beta",
92	},
93	{
94		inputDirectoryPath:    "google/cloud/memcache/v1",
95		pkg:                   "memcache",
96		importPath:            "cloud.google.com/go/memcache/apiv1",
97		gRPCServiceConfigPath: "google/cloud/memcache/v1/memcache_grpc_service_config.json",
98		apiServiceConfigPath:  "google/cloud/memcache/v1/memcache_v1.yaml",
99		// GA after 2021/02/20
100		releaseLevel: "beta",
101	},
102	{
103		inputDirectoryPath:    "google/cloud/memcache/v1beta2",
104		pkg:                   "memcache",
105		importPath:            "cloud.google.com/go/memcache/apiv1beta2",
106		gRPCServiceConfigPath: "google/cloud/memcache/v1beta2/memcache_grpc_service_config.json",
107		apiServiceConfigPath:  "google/cloud/memcache/v1beta2/memcache_v1beta2.yaml",
108		releaseLevel:          "beta",
109	},
110	{
111		inputDirectoryPath:    "google/cloud/phishingprotection/v1beta1",
112		pkg:                   "phishingprotection",
113		importPath:            "cloud.google.com/go/phishingprotection/apiv1beta1",
114		gRPCServiceConfigPath: "google/cloud/phishingprotection/v1beta1/phishingprotection_grpc_service_config.json",
115		apiServiceConfigPath:  "google/cloud/phishingprotection/v1beta1/phishingprotection_v1beta1.yaml",
116		releaseLevel:          "beta",
117	},
118	{
119		inputDirectoryPath:    "google/cloud/translate/v3",
120		pkg:                   "translate",
121		importPath:            "cloud.google.com/go/translate/apiv3",
122		gRPCServiceConfigPath: "google/cloud/translate/v3/translate_grpc_service_config.json",
123		apiServiceConfigPath:  "google/cloud/translate/v3/translate_v3.yaml",
124		releaseLevel:          "ga",
125	},
126	{
127		inputDirectoryPath:    "google/cloud/scheduler/v1",
128		pkg:                   "scheduler",
129		importPath:            "cloud.google.com/go/scheduler/apiv1",
130		gRPCServiceConfigPath: "google/cloud/scheduler/v1/cloudscheduler_grpc_service_config.json",
131		apiServiceConfigPath:  "google/cloud/scheduler/v1/cloudscheduler_v1.yaml",
132		releaseLevel:          "ga",
133	},
134	{
135		inputDirectoryPath:    "google/cloud/scheduler/v1beta1",
136		pkg:                   "scheduler",
137		importPath:            "cloud.google.com/go/scheduler/apiv1beta1",
138		gRPCServiceConfigPath: "google/cloud/scheduler/v1beta1/cloudscheduler_grpc_service_config.json",
139		apiServiceConfigPath:  "google/cloud/scheduler/v1beta1/cloudscheduler_v1beta1.yaml",
140		releaseLevel:          "beta",
141	},
142	{
143		inputDirectoryPath:    "google/cloud/speech/v1",
144		pkg:                   "speech",
145		importPath:            "cloud.google.com/go/speech/apiv1",
146		gRPCServiceConfigPath: "google/cloud/speech/v1/speech_grpc_service_config.json",
147		apiServiceConfigPath:  "google/cloud/speech/v1/speech_v1.yaml",
148		releaseLevel:          "ga",
149	},
150	{
151		inputDirectoryPath:    "google/cloud/speech/v1p1beta1",
152		pkg:                   "speech",
153		importPath:            "cloud.google.com/go/speech/apiv1p1beta1",
154		gRPCServiceConfigPath: "google/cloud/speech/v1p1beta1/speech_grpc_service_config.json",
155		apiServiceConfigPath:  "google/cloud/speech/v1p1beta1/speech_v1p1beta1.yaml",
156		releaseLevel:          "beta",
157	},
158	{
159		inputDirectoryPath:    "google/cloud/bigquery/connection/v1beta1",
160		pkg:                   "connection",
161		importPath:            "cloud.google.com/go/bigquery/connection/apiv1beta1",
162		gRPCServiceConfigPath: "google/cloud/bigquery/connection/v1beta1/bigqueryconnection_grpc_service_config.json",
163		apiServiceConfigPath:  "google/cloud/bigquery/connection/v1beta1/bigqueryconnection_v1beta1.yaml",
164		releaseLevel:          "beta",
165	},
166	{
167		inputDirectoryPath:    "google/cloud/bigquery/connection/v1",
168		pkg:                   "connection",
169		importPath:            "cloud.google.com/go/bigquery/connection/apiv1",
170		gRPCServiceConfigPath: "google/cloud/bigquery/connection/v1/bigqueryconnection_grpc_service_config.json",
171		apiServiceConfigPath:  "google/cloud/bigquery/connection/v1/bigqueryconnection_v1.yaml",
172		releaseLevel:          "ga",
173	},
174	{
175		inputDirectoryPath:    "google/cloud/bigquery/datatransfer/v1",
176		pkg:                   "datatransfer",
177		importPath:            "cloud.google.com/go/bigquery/datatransfer/apiv1",
178		gRPCServiceConfigPath: "google/cloud/bigquery/datatransfer/v1/bigquerydatatransfer_grpc_service_config.json",
179		apiServiceConfigPath:  "google/cloud/bigquery/datatransfer/v1/bigquerydatatransfer_v1.yaml",
180		releaseLevel:          "ga",
181	},
182	{
183		inputDirectoryPath:    "google/cloud/bigquery/reservation/v1beta1",
184		pkg:                   "reservation",
185		importPath:            "cloud.google.com/go/bigquery/reservation/apiv1beta1",
186		gRPCServiceConfigPath: "google/cloud/bigquery/reservation/v1beta1/bigqueryreservation_grpc_service_config.json",
187		apiServiceConfigPath:  "google/cloud/bigquery/reservation/v1beta1/bigqueryreservation_v1beta1.yaml",
188		releaseLevel:          "beta",
189	},
190	{
191		inputDirectoryPath:    "google/cloud/bigquery/reservation/v1",
192		pkg:                   "reservation",
193		importPath:            "cloud.google.com/go/bigquery/reservation/apiv1",
194		gRPCServiceConfigPath: "google/cloud/bigquery/reservation/v1/bigqueryreservation_grpc_service_config.json",
195		apiServiceConfigPath:  "google/cloud/bigquery/reservation/v1/bigqueryreservation_v1.yaml",
196		releaseLevel:          "ga",
197	},
198	{
199		inputDirectoryPath:    "google/cloud/bigquery/storage/v1alpha2",
200		pkg:                   "storage",
201		importPath:            "cloud.google.com/go/bigquery/storage/apiv1alpha2",
202		gRPCServiceConfigPath: "google/cloud/bigquery/storage/v1alpha2/bigquerystorage_grpc_service_config.json",
203		apiServiceConfigPath:  "google/cloud/bigquery/storage/v1alpha2/bigquerystorage_v1alpha2.yaml",
204		releaseLevel:          "alpha",
205	},
206	{
207		inputDirectoryPath:    "google/cloud/bigquery/storage/v1beta1",
208		pkg:                   "storage",
209		importPath:            "cloud.google.com/go/bigquery/storage/apiv1beta1",
210		gRPCServiceConfigPath: "google/cloud/bigquery/storage/v1beta1/bigquerystorage_grpc_service_config.json",
211		apiServiceConfigPath:  "google/cloud/bigquery/storage/v1beta1/bigquerystorage_v1beta1.yaml",
212		releaseLevel:          "beta",
213	},
214	{
215		inputDirectoryPath:    "google/cloud/bigquery/storage/v1beta2",
216		pkg:                   "storage",
217		importPath:            "cloud.google.com/go/bigquery/storage/apiv1beta2",
218		gRPCServiceConfigPath: "google/cloud/bigquery/storage/v1beta2/bigquerystorage_grpc_service_config.json",
219		apiServiceConfigPath:  "google/cloud/bigquery/storage/v1beta2/bigquerystorage_v1beta2.yaml",
220		releaseLevel:          "beta",
221	},
222	{
223		inputDirectoryPath:    "google/cloud/bigquery/storage/v1",
224		pkg:                   "storage",
225		importPath:            "cloud.google.com/go/bigquery/storage/apiv1",
226		gRPCServiceConfigPath: "google/cloud/bigquery/storage/v1/bigquerystorage_grpc_service_config.json",
227		apiServiceConfigPath:  "google/cloud/bigquery/storage/v1/bigquerystorage_v1.yaml",
228		releaseLevel:          "ga",
229	},
230	{
231		inputDirectoryPath:    "google/cloud/iot/v1",
232		pkg:                   "iot",
233		importPath:            "cloud.google.com/go/iot/apiv1",
234		gRPCServiceConfigPath: "google/cloud/iot/v1/cloudiot_grpc_service_config.json",
235		apiServiceConfigPath:  "google/cloud/iot/v1/cloudiot_v1.yaml",
236		releaseLevel:          "ga",
237	},
238	{
239		inputDirectoryPath:    "google/cloud/recommender/v1beta1",
240		pkg:                   "recommender",
241		importPath:            "cloud.google.com/go/recommender/apiv1beta1",
242		gRPCServiceConfigPath: "google/cloud/recommender/v1beta1/recommender_grpc_service_config.json",
243		apiServiceConfigPath:  "google/cloud/recommender/v1beta1/recommender_v1beta1.yaml",
244		releaseLevel:          "beta",
245	},
246	{
247		inputDirectoryPath:    "google/cloud/tasks/v2",
248		pkg:                   "cloudtasks",
249		importPath:            "cloud.google.com/go/cloudtasks/apiv2",
250		gRPCServiceConfigPath: "google/cloud/tasks/v2/cloudtasks_grpc_service_config.json",
251		apiServiceConfigPath:  "google/cloud/tasks/v2/cloudtasks_v2.yaml",
252		releaseLevel:          "ga",
253	},
254	{
255		inputDirectoryPath:    "google/cloud/tasks/v2beta2",
256		pkg:                   "cloudtasks",
257		importPath:            "cloud.google.com/go/cloudtasks/apiv2beta2",
258		gRPCServiceConfigPath: "google/cloud/tasks/v2beta2/cloudtasks_grpc_service_config.json",
259		apiServiceConfigPath:  "google/cloud/tasks/v2beta2/cloudtasks_v2beta2.yaml",
260		releaseLevel:          "beta",
261	},
262	{
263		inputDirectoryPath:    "google/cloud/tasks/v2beta3",
264		pkg:                   "cloudtasks",
265		importPath:            "cloud.google.com/go/cloudtasks/apiv2beta3",
266		gRPCServiceConfigPath: "google/cloud/tasks/v2beta3/cloudtasks_grpc_service_config.json",
267		apiServiceConfigPath:  "google/cloud/tasks/v2beta3/cloudtasks_v2beta3.yaml",
268		releaseLevel:          "beta",
269	},
270	{
271		inputDirectoryPath:    "google/cloud/videointelligence/v1",
272		pkg:                   "videointelligence",
273		importPath:            "cloud.google.com/go/videointelligence/apiv1",
274		gRPCServiceConfigPath: "google/cloud/videointelligence/v1/videointelligence_grpc_service_config.json",
275		apiServiceConfigPath:  "google/cloud/videointelligence/v1/videointelligence_v1.yaml",
276		releaseLevel:          "ga",
277	},
278	{
279		inputDirectoryPath:    "google/cloud/vision/v1",
280		pkg:                   "vision",
281		importPath:            "cloud.google.com/go/vision/apiv1",
282		gRPCServiceConfigPath: "google/cloud/vision/v1/vision_grpc_service_config.json",
283		apiServiceConfigPath:  "google/cloud/vision/v1/vision_v1.yaml",
284		releaseLevel:          "ga",
285	},
286	{
287		inputDirectoryPath:    "google/cloud/webrisk/v1",
288		pkg:                   "webrisk",
289		importPath:            "cloud.google.com/go/webrisk/apiv1",
290		gRPCServiceConfigPath: "google/cloud/webrisk/v1/webrisk_grpc_service_config.json",
291		apiServiceConfigPath:  "google/cloud/webrisk/v1/webrisk_v1.yaml",
292		releaseLevel:          "ga",
293	},
294	{
295		inputDirectoryPath:    "google/cloud/webrisk/v1beta1",
296		pkg:                   "webrisk",
297		importPath:            "cloud.google.com/go/webrisk/apiv1beta1",
298		gRPCServiceConfigPath: "google/cloud/webrisk/v1beta1/webrisk_grpc_service_config.json",
299		apiServiceConfigPath:  "google/cloud/webrisk/v1beta1/webrisk_v1beta1.yaml",
300		releaseLevel:          "beta",
301	},
302	{
303		inputDirectoryPath:    "google/cloud/secretmanager/v1",
304		pkg:                   "secretmanager",
305		importPath:            "cloud.google.com/go/secretmanager/apiv1",
306		gRPCServiceConfigPath: "google/cloud/secretmanager/v1/secretmanager_grpc_service_config.json",
307		apiServiceConfigPath:  "google/cloud/secretmanager/v1/secretmanager_v1.yaml",
308		releaseLevel:          "ga",
309	},
310	{
311		inputDirectoryPath:    "google/cloud/secrets/v1beta1",
312		pkg:                   "secretmanager",
313		importPath:            "cloud.google.com/go/secretmanager/apiv1beta1",
314		gRPCServiceConfigPath: "google/cloud/secrets/v1beta1/secretmanager_grpc_service_config.json",
315		apiServiceConfigPath:  "google/cloud/secrets/v1beta1/secretmanager_v1beta1.yaml",
316		releaseLevel:          "beta",
317	},
318	{
319		inputDirectoryPath:    "google/cloud/osconfig/v1",
320		pkg:                   "osconfig",
321		importPath:            "cloud.google.com/go/osconfig/apiv1",
322		gRPCServiceConfigPath: "google/cloud/osconfig/v1/osconfig_grpc_service_config.json",
323		apiServiceConfigPath:  "google/cloud/osconfig/v1/osconfig_v1.yaml",
324		releaseLevel:          "ga",
325	},
326	{
327		inputDirectoryPath:    "google/cloud/osconfig/v1beta",
328		pkg:                   "osconfig",
329		importPath:            "cloud.google.com/go/osconfig/apiv1beta",
330		gRPCServiceConfigPath: "google/cloud/osconfig/v1beta/osconfig_grpc_service_config.json",
331		apiServiceConfigPath:  "google/cloud/osconfig/v1beta/osconfig_v1beta.yaml",
332		releaseLevel:          "beta",
333	},
334	{
335		inputDirectoryPath:    "google/cloud/osconfig/agentendpoint/v1",
336		pkg:                   "agentendpoint",
337		importPath:            "cloud.google.com/go/osconfig/agentendpoint/apiv1",
338		gRPCServiceConfigPath: "google/cloud/osconfig/agentendpoint/v1/agentendpoint_grpc_service_config.json",
339		apiServiceConfigPath:  "google/cloud/osconfig/agentendpoint/v1/osconfig_v1.yaml",
340		releaseLevel:          "ga",
341	},
342	{
343		inputDirectoryPath:    "google/cloud/osconfig/agentendpoint/v1beta",
344		pkg:                   "agentendpoint",
345		importPath:            "cloud.google.com/go/osconfig/agentendpoint/apiv1beta",
346		gRPCServiceConfigPath: "google/cloud/osconfig/agentendpoint/v1beta/agentendpoint_grpc_service_config.json",
347		apiServiceConfigPath:  "google/cloud/osconfig/agentendpoint/v1beta/osconfig_v1beta.yaml",
348		releaseLevel:          "beta",
349	},
350	{
351		inputDirectoryPath:    "google/cloud/datacatalog/v1",
352		pkg:                   "datacatalog",
353		importPath:            "cloud.google.com/go/datacatalog/apiv1",
354		gRPCServiceConfigPath: "google/cloud/datacatalog/v1/datacatalog_grpc_service_config.json",
355		apiServiceConfigPath:  "google/cloud/datacatalog/v1/datacatalog_v1.yaml",
356		releaseLevel:          "ga",
357	},
358	{
359		inputDirectoryPath:    "google/cloud/datacatalog/v1beta1",
360		pkg:                   "datacatalog",
361		importPath:            "cloud.google.com/go/datacatalog/apiv1beta1",
362		gRPCServiceConfigPath: "google/cloud/datacatalog/v1beta1/datacatalog_grpc_service_config.json",
363		apiServiceConfigPath:  "google/cloud/datacatalog/v1beta1/datacatalog_v1beta1.yaml",
364		releaseLevel:          "beta",
365	},
366	{
367		inputDirectoryPath:    "google/cloud/dataproc/v1",
368		pkg:                   "dataproc",
369		importPath:            "cloud.google.com/go/dataproc/apiv1",
370		gRPCServiceConfigPath: "google/cloud/dataproc/v1/dataproc_grpc_service_config.json",
371		apiServiceConfigPath:  "google/cloud/dataproc/v1/dataproc_v1.yaml",
372		releaseLevel:          "ga",
373	},
374	{
375		inputDirectoryPath:    "google/cloud/dataproc/v1beta2",
376		pkg:                   "dataproc",
377		importPath:            "cloud.google.com/go/dataproc/apiv1beta2",
378		gRPCServiceConfigPath: "google/cloud/dataproc/v1beta2/dataproc_grpc_service_config.json",
379		apiServiceConfigPath:  "google/cloud/dataproc/v1beta2/dataproc_v1beta2.yaml",
380		releaseLevel:          "beta",
381	},
382	{
383		inputDirectoryPath:    "google/cloud/kms/v1",
384		pkg:                   "kms",
385		importPath:            "cloud.google.com/go/kms/apiv1",
386		gRPCServiceConfigPath: "google/cloud/kms/v1/cloudkms_grpc_service_config.json",
387		apiServiceConfigPath:  "google/cloud/kms/v1/cloudkms_v1.yaml",
388		releaseLevel:          "ga",
389	},
390	{
391		inputDirectoryPath:    "google/cloud/oslogin/v1",
392		pkg:                   "oslogin",
393		importPath:            "cloud.google.com/go/oslogin/apiv1",
394		gRPCServiceConfigPath: "google/cloud/oslogin/v1/oslogin_grpc_service_config.json",
395		apiServiceConfigPath:  "google/cloud/oslogin/v1/oslogin_v1.yaml",
396		releaseLevel:          "ga",
397	},
398	{
399		inputDirectoryPath:    "google/cloud/oslogin/v1beta",
400		pkg:                   "oslogin",
401		importPath:            "cloud.google.com/go/oslogin/apiv1beta",
402		gRPCServiceConfigPath: "google/cloud/oslogin/v1beta/oslogin_grpc_service_config.json",
403		apiServiceConfigPath:  "google/cloud/oslogin/v1beta/oslogin_v1beta.yaml",
404		releaseLevel:          "beta",
405	},
406	{
407		inputDirectoryPath:    "google/cloud/recaptchaenterprise/v1",
408		pkg:                   "recaptchaenterprise",
409		importPath:            "cloud.google.com/go/recaptchaenterprise/apiv1",
410		gRPCServiceConfigPath: "google/cloud/recaptchaenterprise/v1/recaptchaenterprise_grpc_service_config.json",
411		apiServiceConfigPath:  "google/cloud/recaptchaenterprise/v1/recaptchaenterprise_v1.yaml",
412		releaseLevel:          "ga",
413	},
414	{
415		inputDirectoryPath:    "google/cloud/recaptchaenterprise/v1beta1",
416		pkg:                   "recaptchaenterprise",
417		importPath:            "cloud.google.com/go/recaptchaenterprise/apiv1beta1",
418		gRPCServiceConfigPath: "google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_grpc_service_config.json",
419		apiServiceConfigPath:  "google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_v1beta1.yaml",
420		releaseLevel:          "beta",
421	},
422	{
423		inputDirectoryPath:    "google/cloud/redis/v1",
424		pkg:                   "redis",
425		importPath:            "cloud.google.com/go/redis/apiv1",
426		gRPCServiceConfigPath: "google/cloud/redis/v1/redis_grpc_service_config.json",
427		apiServiceConfigPath:  "google/cloud/redis/v1/redis_v1.yaml",
428		releaseLevel:          "ga",
429	},
430	{
431		inputDirectoryPath:    "google/cloud/redis/v1beta1",
432		pkg:                   "redis",
433		importPath:            "cloud.google.com/go/redis/apiv1beta1",
434		gRPCServiceConfigPath: "google/cloud/redis/v1beta1/redis_grpc_service_config.json",
435		apiServiceConfigPath:  "google/cloud/redis/v1beta1/redis_v1beta1.yaml",
436		releaseLevel:          "beta",
437	},
438	{
439		inputDirectoryPath:    "google/devtools/clouddebugger/v2",
440		pkg:                   "debugger",
441		importPath:            "cloud.google.com/go/debugger/apiv2",
442		gRPCServiceConfigPath: "google/devtools/clouddebugger/v2/clouddebugger_grpc_service_config.json",
443		apiServiceConfigPath:  "google/devtools/clouddebugger/v2/clouddebugger_v2.yaml",
444		releaseLevel:          "ga",
445	},
446	{
447		inputDirectoryPath:    "google/devtools/clouderrorreporting/v1beta1",
448		pkg:                   "errorreporting",
449		importPath:            "cloud.google.com/go/errorreporting/apiv1beta1",
450		gRPCServiceConfigPath: "google/devtools/clouderrorreporting/v1beta1/errorreporting_grpc_service_config.json",
451		apiServiceConfigPath:  "google/devtools/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1.yaml",
452		releaseLevel:          "beta",
453	},
454	{
455		inputDirectoryPath:    "google/devtools/cloudtrace/v1",
456		pkg:                   "trace",
457		importPath:            "cloud.google.com/go/trace/apiv1",
458		gRPCServiceConfigPath: "google/devtools/cloudtrace/v1/cloudtrace_grpc_service_config.json",
459		apiServiceConfigPath:  "google/devtools/cloudtrace/v1/cloudtrace_v1.yaml",
460		releaseLevel:          "ga",
461	},
462	{
463		inputDirectoryPath:    "google/devtools/cloudtrace/v2",
464		pkg:                   "trace",
465		importPath:            "cloud.google.com/go/trace/apiv2",
466		gRPCServiceConfigPath: "google/devtools/cloudtrace/v2/cloudtrace_grpc_service_config.json",
467		apiServiceConfigPath:  "google/devtools/cloudtrace/v2/cloudtrace_v2.yaml",
468		releaseLevel:          "ga",
469	},
470	{
471		inputDirectoryPath:    "google/privacy/dlp/v2",
472		pkg:                   "dlp",
473		importPath:            "cloud.google.com/go/dlp/apiv2",
474		gRPCServiceConfigPath: "google/privacy/dlp/v2/dlp_grpc_service_config.json",
475		apiServiceConfigPath:  "google/privacy/dlp/v2/dlp_v2.yaml",
476		releaseLevel:          "ga",
477	},
478	{
479		inputDirectoryPath:    "google/datastore/admin/v1",
480		pkg:                   "admin",
481		importPath:            "cloud.google.com/go/datastore/admin/apiv1",
482		gRPCServiceConfigPath: "google/datastore/admin/v1/datastore_admin_grpc_service_config.json",
483		apiServiceConfigPath:  "google/datastore/admin/v1/datastore_admin_v1.yaml",
484		releaseLevel:          "alpha",
485	},
486	{
487		inputDirectoryPath:    "google/spanner/admin/database/v1",
488		pkg:                   "database",
489		importPath:            "cloud.google.com/go/spanner/admin/database/apiv1",
490		gRPCServiceConfigPath: "google/spanner/admin/database/v1/spanner_admin_database_grpc_service_config.json",
491		apiServiceConfigPath:  "google/spanner/admin/database/v1/spanner_admin_database.yaml",
492		releaseLevel:          "ga",
493	},
494	{
495		inputDirectoryPath:    "google/spanner/admin/instance/v1",
496		pkg:                   "instance",
497		importPath:            "cloud.google.com/go/spanner/admin/instance/apiv1",
498		gRPCServiceConfigPath: "google/spanner/admin/instance/v1/spanner_admin_instance_grpc_service_config.json",
499		apiServiceConfigPath:  "google/spanner/admin/instance/v1/spanner_admin_instance.yaml",
500		releaseLevel:          "ga",
501	},
502	{
503		inputDirectoryPath:    "google/spanner/v1",
504		pkg:                   "spanner",
505		importPath:            "cloud.google.com/go/spanner/apiv1",
506		gRPCServiceConfigPath: "google/spanner/v1/spanner_grpc_service_config.json",
507		apiServiceConfigPath:  "google/spanner/v1/spanner.yaml",
508		releaseLevel:          "ga",
509	},
510	{
511		inputDirectoryPath:    "google/cloud/securitycenter/settings/v1beta1",
512		pkg:                   "settings",
513		importPath:            "cloud.google.com/go/securitycenter/settings/apiv1beta1",
514		gRPCServiceConfigPath: "google/cloud/securitycenter/settings/v1beta1/securitycenter_settings_grpc_service_config.json",
515		apiServiceConfigPath:  "google/cloud/securitycenter/settings/v1beta1/securitycenter_settings.yaml",
516		releaseLevel:          "beta",
517	},
518	{
519		inputDirectoryPath:    "google/cloud/securitycenter/v1",
520		pkg:                   "securitycenter",
521		importPath:            "cloud.google.com/go/securitycenter/apiv1",
522		gRPCServiceConfigPath: "google/cloud/securitycenter/v1/securitycenter_grpc_service_config.json",
523		apiServiceConfigPath:  "google/cloud/securitycenter/v1/securitycenter_v1.yaml",
524		releaseLevel:          "ga",
525	},
526	{
527		inputDirectoryPath:    "google/cloud/securitycenter/v1beta1",
528		pkg:                   "securitycenter",
529		importPath:            "cloud.google.com/go/securitycenter/apiv1beta1",
530		gRPCServiceConfigPath: "google/cloud/securitycenter/v1beta1/securitycenter_grpc_service_config.json",
531		apiServiceConfigPath:  "google/cloud/securitycenter/v1beta1/securitycenter_v1beta1.yaml",
532		releaseLevel:          "beta",
533	},
534	{
535		inputDirectoryPath:    "google/cloud/securitycenter/v1p1beta1",
536		pkg:                   "securitycenter",
537		importPath:            "cloud.google.com/go/securitycenter/apiv1p1beta1",
538		gRPCServiceConfigPath: "google/cloud/securitycenter/v1p1beta1/securitycenter_grpc_service_config.json",
539		apiServiceConfigPath:  "google/cloud/securitycenter/v1p1beta1/securitycenter_v1p1beta1.yaml",
540		releaseLevel:          "beta",
541	},
542	{
543		inputDirectoryPath:    "google/firestore/admin/v1",
544		pkg:                   "apiv1",
545		importPath:            "cloud.google.com/go/firestore/apiv1/admin",
546		gRPCServiceConfigPath: "google/firestore/admin/v1/firestore_admin_grpc_service_config.json",
547		apiServiceConfigPath:  "google/firestore/admin/firestore_admin_v1.yaml",
548		releaseLevel:          "ga",
549	},
550	{
551		inputDirectoryPath:    "google/firestore/v1",
552		pkg:                   "firestore",
553		importPath:            "cloud.google.com/go/firestore/apiv1",
554		gRPCServiceConfigPath: "google/firestore/v1/firestore_grpc_service_config.json",
555		apiServiceConfigPath:  "google/firestore/v1/firestore_v1.yaml",
556		releaseLevel:          "ga",
557	},
558	{
559		inputDirectoryPath:    "google/devtools/cloudbuild/v1",
560		pkg:                   "cloudbuild",
561		importPath:            "cloud.google.com/go/cloudbuild/apiv1/v2",
562		gRPCServiceConfigPath: "google/devtools/cloudbuild/v1/cloudbuild_grpc_service_config.json",
563		apiServiceConfigPath:  "google/devtools/cloudbuild/v1/cloudbuild_v1.yaml",
564		releaseLevel:          "ga",
565	},
566	{
567		inputDirectoryPath:    "google/cloud/dialogflow/cx/v3beta1",
568		pkg:                   "cx",
569		importPath:            "cloud.google.com/go/dialogflow/cx/apiv3beta1",
570		gRPCServiceConfigPath: "google/cloud/dialogflow/cx/v3beta1/dialogflow_grpc_service_config.json",
571		apiServiceConfigPath:  "google/cloud/dialogflow/cx/v3beta1/dialogflow_v3beta1.yaml",
572		releaseLevel:          "beta",
573	},
574	{
575		inputDirectoryPath:    "google/cloud/dialogflow/v2",
576		pkg:                   "dialogflow",
577		importPath:            "cloud.google.com/go/dialogflow/apiv2",
578		gRPCServiceConfigPath: "google/cloud/dialogflow/v2/dialogflow_grpc_service_config.json",
579		apiServiceConfigPath:  "google/cloud/dialogflow/v2/dialogflow_v2.yaml",
580		releaseLevel:          "ga",
581	},
582	{
583		inputDirectoryPath:    "google/iam/credentials/v1",
584		pkg:                   "credentials",
585		importPath:            "cloud.google.com/go/iam/credentials/apiv1",
586		gRPCServiceConfigPath: "google/iam/credentials/v1/iamcredentials_grpc_service_config.json",
587		apiServiceConfigPath:  "google/iam/credentials/v1/iamcredentials_v1.yaml",
588		releaseLevel:          "ga",
589	},
590	{
591		inputDirectoryPath:    "google/longrunning",
592		pkg:                   "longrunning",
593		importPath:            "cloud.google.com/go/longrunning/autogen",
594		gRPCServiceConfigPath: "google/longrunning/longrunning_grpc_service_config.json",
595		apiServiceConfigPath:  "google/longrunning/longrunning.yaml",
596		releaseLevel:          "alpha",
597	},
598	{
599		inputDirectoryPath:    "google/devtools/containeranalysis/v1beta1",
600		pkg:                   "containeranalysis",
601		importPath:            "cloud.google.com/go/containeranalysis/apiv1beta1",
602		gRPCServiceConfigPath: "google/devtools/containeranalysis/v1beta1/containeranalysis_grpc_service_config.json",
603		apiServiceConfigPath:  "google/devtools/containeranalysis/v1beta1/containeranalysis_v1beta1.yaml",
604		releaseLevel:          "beta",
605	},
606	{
607		// The grafeas v1beta1 client must be generated in the same package as containeranalysis v1beta1,
608		// but the proto is in a sub-directory of the containeranalysis v1beta1 protos.
609		inputDirectoryPath:    "google/devtools/containeranalysis/v1beta1/grafeas",
610		pkg:                   "containeranalysis",
611		importPath:            "cloud.google.com/go/containeranalysis/apiv1beta1",
612		gRPCServiceConfigPath: "google/devtools/containeranalysis/v1beta1/containeranalysis_grpc_service_config.json",
613		apiServiceConfigPath:  "google/devtools/containeranalysis/v1beta1/containeranalysis_v1beta1.yaml",
614		releaseLevel:          "beta",
615	},
616	{
617		inputDirectoryPath:    "google/cloud/recommender/v1",
618		pkg:                   "recommender",
619		importPath:            "cloud.google.com/go/recommender/apiv1",
620		gRPCServiceConfigPath: "google/cloud/recommender/v1/recommender_grpc_service_config.json",
621		apiServiceConfigPath:  "google/cloud/recommender/v1/recommender_v1.yaml",
622		releaseLevel:          "ga",
623	},
624	{
625		inputDirectoryPath:    "google/cloud/videointelligence/v1beta2",
626		pkg:                   "videointelligence",
627		importPath:            "cloud.google.com/go/videointelligence/apiv1beta2",
628		gRPCServiceConfigPath: "google/cloud/videointelligence/v1beta2/videointelligence_grpc_service_config.json",
629		apiServiceConfigPath:  "google/cloud/videointelligence/videointelligence_v1beta2.yaml",
630		releaseLevel:          "beta",
631	},
632	{
633		inputDirectoryPath:    "google/cloud/asset/v1p2beta1",
634		pkg:                   "asset",
635		importPath:            "cloud.google.com/go/asset/apiv1p2beta1",
636		gRPCServiceConfigPath: "google/cloud/asset/v1p2beta1/cloudasset_grpc_service_config.json",
637		apiServiceConfigPath:  "google/cloud/asset/v1p2beta1/cloudasset_v1p2beta1.yaml",
638		releaseLevel:          "beta",
639	},
640	{
641		inputDirectoryPath:    "google/cloud/asset/v1p5beta1",
642		pkg:                   "asset",
643		importPath:            "cloud.google.com/go/asset/apiv1p5beta1",
644		gRPCServiceConfigPath: "google/cloud/asset/v1p5beta1/cloudasset_grpc_service_config.json",
645		apiServiceConfigPath:  "google/cloud/asset/v1p5beta1/cloudasset_v1p5beta1.yaml",
646		releaseLevel:          "beta",
647	},
648	{
649		inputDirectoryPath:    "google/monitoring/v3",
650		pkg:                   "monitoring",
651		importPath:            "cloud.google.com/go/monitoring/apiv3/v2",
652		gRPCServiceConfigPath: "google/monitoring/v3/monitoring_grpc_service_config.json",
653		apiServiceConfigPath:  "google/monitoring/v3/monitoring.yaml",
654		releaseLevel:          "ga",
655	},
656	{
657		inputDirectoryPath:    "google/cloud/vision/v1p1beta1",
658		pkg:                   "vision",
659		importPath:            "cloud.google.com/go/vision/apiv1p1beta1",
660		gRPCServiceConfigPath: "google/cloud/vision/v1p1beta1/vision_grpc_service_config.json",
661		apiServiceConfigPath:  "google/cloud/vision/v1p1beta1/vision_v1p1beta1.yaml",
662		releaseLevel:          "beta",
663	},
664	{
665		inputDirectoryPath:    "google/logging/v2",
666		pkg:                   "logging",
667		importPath:            "cloud.google.com/go/logging/apiv2",
668		gRPCServiceConfigPath: "google/logging/v2/logging_grpc_service_config.json",
669		apiServiceConfigPath:  "google/logging/v2/logging.yaml",
670		releaseLevel:          "ga",
671	},
672	{
673		inputDirectoryPath:    "google/cloud/talent/v4",
674		pkg:                   "talent",
675		importPath:            "cloud.google.com/go/talent/apiv4",
676		gRPCServiceConfigPath: "google/cloud/talent/v4/talent_grpc_service_config.json",
677		apiServiceConfigPath:  "google/cloud/talent/v4/talent_gapic.yaml",
678		releaseLevel:          "beta",
679	},
680	{
681		inputDirectoryPath:    "google/cloud/talent/v4beta1",
682		pkg:                   "talent",
683		importPath:            "cloud.google.com/go/talent/apiv4beta1",
684		gRPCServiceConfigPath: "google/cloud/talent/v4beta1/talent_grpc_service_config.json",
685		apiServiceConfigPath:  "google/cloud/talent/v4beta1/jobs_v4beta1.yaml",
686		releaseLevel:          "beta",
687	},
688	{
689		inputDirectoryPath:    "google/pubsub/v1",
690		pkg:                   "pubsub",
691		importPath:            "cloud.google.com/go/pubsub/apiv1",
692		gRPCServiceConfigPath: "google/pubsub/v1/pubsub_grpc_service_config.json",
693		apiServiceConfigPath:  "google/pubsub/v1/pubsub_v1.yaml",
694		releaseLevel:          "ga",
695	},
696	{
697		inputDirectoryPath:    "google/cloud/pubsublite/v1",
698		pkg:                   "pubsublite",
699		importPath:            "cloud.google.com/go/pubsublite/apiv1",
700		gRPCServiceConfigPath: "google/cloud/pubsublite/v1/pubsublite_grpc_service_config.json",
701		apiServiceConfigPath:  "google/cloud/pubsublite/v1/gapic.yaml",
702		// Update to "ga" after the manual client (beta) for pubsublite is released.
703		// Also make sure the manual client is generated in .repo-metadata-full.json.
704		releaseLevel: "beta",
705	},
706	{
707		inputDirectoryPath:    "google/cloud/automl/v1",
708		pkg:                   "automl",
709		importPath:            "cloud.google.com/go/automl/apiv1",
710		gRPCServiceConfigPath: "google/cloud/automl/v1/automl_grpc_service_config.json",
711		apiServiceConfigPath:  "google/cloud/automl/v1/automl_v1.yaml",
712		releaseLevel:          "ga",
713	},
714	{
715		inputDirectoryPath:    "google/cloud/automl/v1beta1",
716		pkg:                   "automl",
717		importPath:            "cloud.google.com/go/automl/apiv1beta1",
718		gRPCServiceConfigPath: "google/cloud/automl/v1beta1/automl_grpc_service_config.json",
719		apiServiceConfigPath:  "google/cloud/automl/v1beta1/automl_v1beta1.yaml",
720		releaseLevel:          "beta",
721	},
722	{
723		inputDirectoryPath:    "google/container/v1",
724		pkg:                   "container",
725		importPath:            "cloud.google.com/go/container/apiv1",
726		gRPCServiceConfigPath: "google/container/v1/container_grpc_service_config.json",
727		apiServiceConfigPath:  "google/container/v1/container_v1.yaml",
728		releaseLevel:          "ga",
729	},
730	{
731		inputDirectoryPath:    "google/cloud/servicedirectory/v1",
732		pkg:                   "servicedirectory",
733		importPath:            "cloud.google.com/go/servicedirectory/apiv1",
734		gRPCServiceConfigPath: "google/cloud/servicedirectory/v1/servicedirectory_grpc_service_config.json",
735		apiServiceConfigPath:  "google/cloud/servicedirectory/v1/servicedirectory_v1.yaml",
736		releaseLevel:          "ga",
737	},
738	{
739		inputDirectoryPath:    "google/cloud/servicedirectory/v1beta1",
740		pkg:                   "servicedirectory",
741		importPath:            "cloud.google.com/go/servicedirectory/apiv1beta1",
742		gRPCServiceConfigPath: "google/cloud/servicedirectory/v1beta1/servicedirectory_grpc_service_config.json",
743		apiServiceConfigPath:  "google/cloud/servicedirectory/v1beta1/servicedirectory_v1beta1.yaml",
744		releaseLevel:          "beta",
745	},
746	{
747		inputDirectoryPath:    "google/cloud/gaming/v1",
748		pkg:                   "gaming",
749		importPath:            "cloud.google.com/go/gaming/apiv1",
750		gRPCServiceConfigPath: "google/cloud/gaming/v1/gaming_grpc_service_config.json",
751		apiServiceConfigPath:  "google/cloud/gaming/v1/gaming_gapic.yaml",
752		releaseLevel:          "ga",
753	},
754	{
755		inputDirectoryPath:    "google/cloud/gaming/v1beta",
756		pkg:                   "gaming",
757		importPath:            "cloud.google.com/go/gaming/apiv1beta",
758		gRPCServiceConfigPath: "google/cloud/gaming/v1beta/gaming_grpc_service_config.json",
759		apiServiceConfigPath:  "google/cloud/gaming/v1beta/gaming_gapic.yaml",
760		releaseLevel:          "beta",
761	},
762	{
763		inputDirectoryPath:    "google/cloud/policytroubleshooter/v1",
764		pkg:                   "policytroubleshooter",
765		importPath:            "cloud.google.com/go/policytroubleshooter/apiv1",
766		gRPCServiceConfigPath: "google/cloud/policytroubleshooter/v1/checker_grpc_service_config.json",
767		apiServiceConfigPath:  "google/cloud/policytroubleshooter/v1/policytroubleshooter_v1.yaml",
768		releaseLevel:          "ga",
769	},
770	{
771		inputDirectoryPath:    "google/monitoring/dashboard/v1",
772		pkg:                   "dashboard",
773		importPath:            "cloud.google.com/go/monitoring/dashboard/apiv1",
774		gRPCServiceConfigPath: "google/monitoring/dashboard/v1/dashboards_grpc_service_config.json",
775		apiServiceConfigPath:  "google/monitoring/dashboard/v1/monitoring_gapic.yaml",
776		releaseLevel:          "ga",
777	},
778	{
779		inputDirectoryPath:    "google/cloud/functions/v1",
780		pkg:                   "functions",
781		importPath:            "cloud.google.com/go/functions/apiv1",
782		gRPCServiceConfigPath: "google/cloud/functions/v1/functions_grpc_service_config.json",
783		apiServiceConfigPath:  "google/cloud/functions/v1/functions_gapic.yaml",
784		releaseLevel:          "ga",
785	},
786	{
787		inputDirectoryPath:    "google/cloud/networkconnectivity/v1alpha1",
788		pkg:                   "networkconnectivity",
789		importPath:            "cloud.google.com/go/networkconnectivity/apiv1alpha1",
790		gRPCServiceConfigPath: "google/cloud/networkconnectivity/v1alpha1/networkconnectivity_grpc_service_config.json",
791		apiServiceConfigPath:  "google/cloud/networkconnectivity/v1alpha1/networkconnectivity_v1alpha1.yaml",
792		releaseLevel:          "alpha",
793	},
794	{
795		inputDirectoryPath:    "google/cloud/notebooks/v1beta1",
796		pkg:                   "notebooks",
797		importPath:            "cloud.google.com/go/notebooks/apiv1beta1",
798		gRPCServiceConfigPath: "google/cloud/notebooks/v1beta1/notebooks_grpc_service_config.json",
799		apiServiceConfigPath:  "google/cloud/notebooks/v1beta1/notebooks_v1beta1.yaml",
800		releaseLevel:          "beta",
801	},
802	{
803		inputDirectoryPath:    "google/cloud/billing/budgets/v1",
804		pkg:                   "budgets",
805		importPath:            "cloud.google.com/go/billing/budgets/apiv1",
806		gRPCServiceConfigPath: "google/cloud/billing/budgets/v1/billingbudgets_grpc_service_config.json",
807		apiServiceConfigPath:  "google/cloud/billing/budgets/v1/billingbudgets.yaml",
808		releaseLevel:          "ga",
809	},
810	{
811		inputDirectoryPath:    "google/cloud/billing/budgets/v1beta1",
812		pkg:                   "budgets",
813		importPath:            "cloud.google.com/go/billing/budgets/apiv1beta1",
814		gRPCServiceConfigPath: "google/cloud/billing/budgets/v1beta1/billingbudgets_grpc_service_config.json",
815		apiServiceConfigPath:  "google/cloud/billing/budgets/v1beta1/billingbudgets_gapic.yaml",
816		releaseLevel:          "beta",
817	},
818	{
819		inputDirectoryPath:    "google/cloud/video/transcoder/v1beta1",
820		pkg:                   "transcoder",
821		importPath:            "cloud.google.com/go/video/transcoder/apiv1beta1",
822		gRPCServiceConfigPath: "google/cloud/video/transcoder/v1beta1/transcoder_grpc_service_config.json",
823		apiServiceConfigPath:  "google/cloud/video/transcoder/v1beta1/transcoder_gapic.yaml",
824		releaseLevel:          "beta",
825	},
826	{
827		inputDirectoryPath:    "google/cloud/workflows/v1beta",
828		pkg:                   "workflows",
829		importPath:            "cloud.google.com/go/workflows/apiv1beta",
830		gRPCServiceConfigPath: "google/cloud/workflows/v1beta/workflows_grpc_service_config.json",
831		apiServiceConfigPath:  "google/cloud/workflows/v1beta/workflows_gapic.yaml",
832		releaseLevel:          "beta",
833	},
834	{
835		inputDirectoryPath:    "google/cloud/workflows/executions/v1beta",
836		pkg:                   "executions",
837		importPath:            "cloud.google.com/go/workflows/executions/apiv1beta",
838		gRPCServiceConfigPath: "google/cloud/workflows/executions/v1beta/executions_grpc_service_config.json",
839		apiServiceConfigPath:  "google/cloud/workflows/executions/v1beta/executions_gapic.yaml",
840		releaseLevel:          "beta",
841	},
842	{
843		inputDirectoryPath:    "google/cloud/security/privateca/v1beta1",
844		pkg:                   "privateca",
845		importPath:            "cloud.google.com/go/security/privateca/apiv1beta1",
846		gRPCServiceConfigPath: "google/cloud/security/privateca/v1beta1/privateca_grpc_service_config.json",
847		apiServiceConfigPath:  "google/cloud/security/privateca/v1beta1/privateca_gapic.yaml",
848		releaseLevel:          "beta",
849	},
850	{
851		inputDirectoryPath:    "google/cloud/assuredworkloads/v1beta1",
852		pkg:                   "assuredworkloads",
853		importPath:            "cloud.google.com/go/assuredworkloads/apiv1beta1",
854		gRPCServiceConfigPath: "google/cloud/assuredworkloads/v1beta1/assuredworkloads_grpc_service_config.json",
855		apiServiceConfigPath:  "google/cloud/assuredworkloads/v1beta1/assuredworkloads_gapic.yaml",
856		releaseLevel:          "beta",
857	},
858	{
859		inputDirectoryPath:    "google/cloud/accessapproval/v1",
860		pkg:                   "accessapproval",
861		importPath:            "cloud.google.com/go/accessapproval/apiv1",
862		gRPCServiceConfigPath: "google/cloud/accessapproval/v1/accessapproval_grpc_service_config.json",
863		apiServiceConfigPath:  "google/cloud/accessapproval/v1/accessapproval_gapic.yaml",
864		releaseLevel:          "ga",
865	},
866	{
867		inputDirectoryPath:    "google/cloud/websecurityscanner/v1",
868		pkg:                   "websecurityscanner",
869		importPath:            "cloud.google.com/go/websecurityscanner/apiv1",
870		gRPCServiceConfigPath: "google/cloud/websecurityscanner/v1/websecurityscanner_grpc_service_config.json",
871		apiServiceConfigPath:  "google/cloud/websecurityscanner/v1/websecurityscanner_v1.yaml",
872		releaseLevel:          "ga",
873	},
874	{
875		inputDirectoryPath:    "google/cloud/managedidentities/v1",
876		pkg:                   "managedidentities",
877		importPath:            "cloud.google.com/go/managedidentities/apiv1",
878		gRPCServiceConfigPath: "google/cloud/managedidentities/v1/managedidentities_grpc_service_config.json",
879		apiServiceConfigPath:  "google/cloud/managedidentities/v1/managedidentities_v1.yaml",
880		releaseLevel:          "ga",
881	},
882	{
883		inputDirectoryPath:    "google/devtools/artifactregistry/v1beta2",
884		pkg:                   "artifactregistry",
885		importPath:            "cloud.google.com/go/artifactregistry/apiv1beta2",
886		gRPCServiceConfigPath: "google/devtools/artifactregistry/v1beta2/artifactregistry_grpc_service_config.json",
887		apiServiceConfigPath:  "google/devtools/artifactregistry/v1beta2/artifactregistry_v1beta2.yaml",
888		releaseLevel:          "ga",
889	},
890	{
891		inputDirectoryPath:    "google/cloud/retail/v2",
892		pkg:                   "retail",
893		importPath:            "cloud.google.com/go/retail/apiv2",
894		gRPCServiceConfigPath: "google/cloud/retail/v2/retail_grpc_service_config.json",
895		apiServiceConfigPath:  "google/cloud/retail/v2/retail_v2.yaml",
896		releaseLevel:          "ga",
897	},
898	{
899		inputDirectoryPath:   "google/appengine/v1",
900		pkg:                  "appengine",
901		importPath:           "cloud.google.com/go/appengine/apiv1",
902		apiServiceConfigPath: "google/appengine/v1/appengine.yaml",
903		releaseLevel:         "ga",
904	},
905	{
906		inputDirectoryPath:    "google/cloud/binaryauthorization/v1beta1",
907		pkg:                   "binaryauthorization",
908		importPath:            "cloud.google.com/go/binaryauthorization/apiv1beta1",
909		gRPCServiceConfigPath: "google/cloud/binaryauthorization/v1beta1/binaryauthorization_grpc_service_config.json",
910		apiServiceConfigPath:  "google/cloud/binaryauthorization/v1beta1/binaryauthorization_v1beta1.yaml",
911		releaseLevel:          "beta",
912	},
913	{
914		inputDirectoryPath:    "google/cloud/channel/v1",
915		pkg:                   "channel",
916		importPath:            "cloud.google.com/go/channel/apiv1",
917		gRPCServiceConfigPath: "google/cloud/channel/v1/cloudchannel_grpc_service_config.json",
918		apiServiceConfigPath:  "google/cloud/channel/v1/cloudchannel_v1.yaml",
919		releaseLevel:          "ga",
920	},
921	{
922		inputDirectoryPath:   "google/cloud/resourcemanager/v2",
923		pkg:                  "resourcemanager",
924		importPath:           "cloud.google.com/go/resourcemanager/apiv2",
925		apiServiceConfigPath: "google/cloud/resourcemanager/v2/cloudresourcemanager_v2.yaml",
926		// GA after 2021/02/19
927		releaseLevel: "beta",
928	},
929	{
930		inputDirectoryPath:    "google/cloud/datalabeling/v1beta1",
931		pkg:                   "datalabeling",
932		importPath:            "cloud.google.com/go/datalabeling/apiv1beta1",
933		gRPCServiceConfigPath: "google/cloud/datalabeling/v1beta1/datalabeling_grpc_service_config.json",
934		apiServiceConfigPath:  "google/cloud/datalabeling/v1beta1/datalabeling_v1beta1.yaml",
935		releaseLevel:          "beta",
936	},
937	{
938		inputDirectoryPath:    "google/cloud/dataqna/v1alpha",
939		pkg:                   "dataqna",
940		importPath:            "cloud.google.com/go/dataqna/apiv1alpha",
941		gRPCServiceConfigPath: "google/cloud/dataqna/v1alpha/dataqna_grpc_service_config.json",
942		apiServiceConfigPath:  "google/cloud/dataqna/v1alpha/dataqna_v1alpha.yaml",
943		releaseLevel:          "alpha",
944	},
945	{
946		inputDirectoryPath:    "google/cloud/documentai/v1beta3",
947		pkg:                   "documentai",
948		importPath:            "cloud.google.com/go/documentai/apiv1beta3",
949		gRPCServiceConfigPath: "google/cloud/documentai/v1beta3/documentai_v1beta3_grpc_service_config.json",
950		apiServiceConfigPath:  "google/cloud/documentai/v1beta3/documentai_v1beta3.yaml",
951		releaseLevel:          "beta",
952	},
953	{
954		inputDirectoryPath:    "google/api/servicemanagement/v1",
955		pkg:                   "servicemanagement",
956		importPath:            "cloud.google.com/go/servicemanagement/apiv1",
957		gRPCServiceConfigPath: "google/api/servicemanagement/v1/servicemanagement_grpc_service_config.json",
958		apiServiceConfigPath:  "google/api/servicemanagement/v1/servicemanagement_gapic.yaml",
959		// GA after 2021/02/26
960		releaseLevel: "beta",
961	},
962	{
963		inputDirectoryPath:    "google/cloud/domains/v1beta1",
964		pkg:                   "domains",
965		importPath:            "cloud.google.com/go/domains/apiv1beta1",
966		gRPCServiceConfigPath: "google/cloud/domains/v1beta1/domains_grpc_service_config.json",
967		apiServiceConfigPath:  "google/cloud/domains/v1beta1/domains_v1beta1.yaml",
968		releaseLevel:          "beta",
969	},
970	{
971		inputDirectoryPath:    "google/cloud/mediatranslation/v1beta1",
972		pkg:                   "mediatranslation",
973		importPath:            "cloud.google.com/go/mediatranslation/apiv1beta1",
974		gRPCServiceConfigPath: "google/cloud/mediatranslation/v1beta1/mediatranslation_grpc_service_config.json",
975		apiServiceConfigPath:  "google/cloud/mediatranslation/v1beta1/mediatranslation_v1beta1.yaml",
976		releaseLevel:          "beta",
977	},
978	{
979		inputDirectoryPath:   "google/api/servicecontrol/v1",
980		pkg:                  "servicecontrol",
981		importPath:           "cloud.google.com/go/servicecontrol/apiv1",
982		apiServiceConfigPath: "google/api/servicecontrol/v1/servicecontrol_gapic.yaml",
983		// GA after 2021/03/01
984		releaseLevel: "beta",
985	},
986	{
987		inputDirectoryPath:    "google/cloud/orgpolicy/v2",
988		pkg:                   "orgpolicy",
989		importPath:            "cloud.google.com/go/orgpolicy/apiv2",
990		gRPCServiceConfigPath: "google/cloud/orgpolicy/v2/orgpolicy_grpc_service_config.json",
991		apiServiceConfigPath:  "google/cloud/orgpolicy/v2/orgpolicy_v2.yaml",
992		// GA after 2021/03/02
993		releaseLevel: "beta",
994	},
995	{
996		inputDirectoryPath:    "google/cloud/recommendationengine/v1beta1",
997		pkg:                   "recommendationengine",
998		importPath:            "cloud.google.com/go/recommendationengine/apiv1beta1",
999		gRPCServiceConfigPath: "google/cloud/recommendationengine/v1beta1/recommendationengine_grpc_service_config.json",
1000		apiServiceConfigPath:  "google/cloud/recommendationengine/v1beta1/recommendationengine_v1beta1.yaml",
1001		releaseLevel:          "beta",
1002	},
1003	{
1004		inputDirectoryPath:    "google/cloud/gkehub/v1beta1",
1005		pkg:                   "gkehub",
1006		importPath:            "cloud.google.com/go/gkehub/apiv1beta1",
1007		gRPCServiceConfigPath: "google/cloud/gkehub/v1beta1/membership_grpc_service_config.json",
1008		apiServiceConfigPath:  "google/cloud/gkehub/v1beta1/gkehub_v1beta1.yaml",
1009		releaseLevel:          "beta",
1010	},
1011	{
1012		inputDirectoryPath:    "google/cloud/apigateway/v1",
1013		pkg:                   "apigateway",
1014		importPath:            "cloud.google.com/go/apigateway/apiv1",
1015		gRPCServiceConfigPath: "google/cloud/apigateway/v1/apigateway_grpc_service_config.json",
1016		apiServiceConfigPath:  "google/cloud/apigateway/v1/apigateway_v1.yaml",
1017		// GA after 2021/03/23
1018		releaseLevel: "beta",
1019	},
1020	{
1021		inputDirectoryPath:    "google/cloud/metastore/v1alpha",
1022		pkg:                   "metastore",
1023		importPath:            "cloud.google.com/go/metastore/apiv1alpha",
1024		gRPCServiceConfigPath: "google/cloud/metastore/v1alpha/metastore_grpc_service_config.json",
1025		apiServiceConfigPath:  "google/cloud/metastore/v1alpha/metastore_v1alpha.yaml",
1026		releaseLevel:          "alpha",
1027	},
1028	{
1029		inputDirectoryPath:    "google/cloud/metastore/v1beta",
1030		pkg:                   "metastore",
1031		importPath:            "cloud.google.com/go/metastore/apiv1beta",
1032		gRPCServiceConfigPath: "google/cloud/metastore/v1beta/metastore_grpc_service_config.json",
1033		apiServiceConfigPath:  "google/cloud/metastore/v1beta/metastore_v1beta.yaml",
1034		releaseLevel:          "beta",
1035	},
1036
1037	// Non-Cloud APIs
1038	{
1039		inputDirectoryPath:    "google/analytics/admin/v1alpha",
1040		pkg:                   "admin",
1041		importPath:            "cloud.google.com/go/analytics/admin/apiv1alpha",
1042		gRPCServiceConfigPath: "google/analytics/admin/v1alpha/admin_grpc_service_config.json",
1043		apiServiceConfigPath:  "google/analytics/admin/v1alpha/analyticsadmin_gapic.yaml",
1044		releaseLevel:          "alpha",
1045	},
1046	{
1047		inputDirectoryPath:    "google/analytics/data/v1alpha",
1048		pkg:                   "data",
1049		importPath:            "cloud.google.com/go/analytics/data/apiv1alpha",
1050		gRPCServiceConfigPath: "google/analytics/data/v1alpha/analytics_data_grpc_service_config.json",
1051		apiServiceConfigPath:  "google/analytics/data/v1alpha/analyticsdata_gapic.yaml",
1052		releaseLevel:          "alpha",
1053	},
1054	{
1055		inputDirectoryPath:    "google/area120/tables/v1alpha1",
1056		pkg:                   "tables",
1057		importPath:            "cloud.google.com/go/area120/tables/apiv1alpha1",
1058		gRPCServiceConfigPath: "google/area120/tables/v1alpha1/tables_grpc_service_config.json",
1059		apiServiceConfigPath:  "google/area120/tables/v1alpha1/area120tables_v1alpha1.yaml",
1060		releaseLevel:          "alpha",
1061	},
1062}
1063