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/inputDirectoryPath.
31	gRPCServiceConfigPath string
32
33	// apiServiceConfigPath is the path to the gapic service config for this
34	// target, relative to googleapisDir/inputDirectoryPath.
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	// transports is a list of transports to generate a client for. Acceptable
51	// values are 'grpc' and 'rest'
52	transports []string
53
54	// googleapisDiscovery indicates if the protos reside in googleapis-discovery
55	// or not. Default is false, and will be looked up in googleapis.
56	googleapisDiscovery bool
57}
58
59var microgenGapicConfigs = []*microgenConfig{
60	// Cloud APIs
61	{
62		inputDirectoryPath:   "google/cloud/compute/v1",
63		pkg:                  "compute",
64		importPath:           "cloud.google.com/go/compute/apiv1",
65		apiServiceConfigPath: "compute_v1.yaml",
66		transports:           []string{"rest"},
67		// TODO: Change to "ga" when ready.
68		releaseLevel:        "beta",
69		googleapisDiscovery: true,
70	},
71	{
72		inputDirectoryPath:    "google/cloud/texttospeech/v1",
73		pkg:                   "texttospeech",
74		importPath:            "cloud.google.com/go/texttospeech/apiv1",
75		gRPCServiceConfigPath: "texttospeech_grpc_service_config.json",
76		apiServiceConfigPath:  "texttospeech_v1.yaml",
77		releaseLevel:          "ga",
78	},
79	{
80		inputDirectoryPath:    "google/cloud/asset/v1",
81		pkg:                   "asset",
82		importPath:            "cloud.google.com/go/asset/apiv1",
83		gRPCServiceConfigPath: "cloudasset_grpc_service_config.json",
84		apiServiceConfigPath:  "cloudasset_v1.yaml",
85		releaseLevel:          "ga",
86	},
87	{
88		inputDirectoryPath:    "google/cloud/billing/v1",
89		pkg:                   "billing",
90		importPath:            "cloud.google.com/go/billing/apiv1",
91		gRPCServiceConfigPath: "cloud_billing_grpc_service_config.json",
92		apiServiceConfigPath:  "cloudbilling.yaml",
93		releaseLevel:          "ga",
94	},
95	{
96		inputDirectoryPath:    "google/cloud/language/v1",
97		pkg:                   "language",
98		importPath:            "cloud.google.com/go/language/apiv1",
99		gRPCServiceConfigPath: "language_grpc_service_config.json",
100		apiServiceConfigPath:  "language_v1.yaml",
101		releaseLevel:          "ga",
102	},
103	{
104		inputDirectoryPath:    "google/cloud/language/v1beta2",
105		pkg:                   "language",
106		importPath:            "cloud.google.com/go/language/apiv1beta2",
107		gRPCServiceConfigPath: "language_grpc_service_config.json",
108		apiServiceConfigPath:  "language_v1beta2.yaml",
109		releaseLevel:          "beta",
110	},
111	{
112		inputDirectoryPath:    "google/cloud/memcache/v1",
113		pkg:                   "memcache",
114		importPath:            "cloud.google.com/go/memcache/apiv1",
115		gRPCServiceConfigPath: "memcache_grpc_service_config.json",
116		apiServiceConfigPath:  "memcache_v1.yaml",
117		releaseLevel:          "ga",
118	},
119	{
120		inputDirectoryPath:    "google/cloud/memcache/v1beta2",
121		pkg:                   "memcache",
122		importPath:            "cloud.google.com/go/memcache/apiv1beta2",
123		gRPCServiceConfigPath: "memcache_grpc_service_config.json",
124		apiServiceConfigPath:  "memcache_v1beta2.yaml",
125		releaseLevel:          "beta",
126	},
127	{
128		inputDirectoryPath:    "google/cloud/phishingprotection/v1beta1",
129		pkg:                   "phishingprotection",
130		importPath:            "cloud.google.com/go/phishingprotection/apiv1beta1",
131		gRPCServiceConfigPath: "phishingprotection_grpc_service_config.json",
132		apiServiceConfigPath:  "phishingprotection_v1beta1.yaml",
133		releaseLevel:          "beta",
134	},
135	{
136		inputDirectoryPath:    "google/cloud/translate/v3",
137		pkg:                   "translate",
138		importPath:            "cloud.google.com/go/translate/apiv3",
139		gRPCServiceConfigPath: "translate_grpc_service_config.json",
140		apiServiceConfigPath:  "translate_v3.yaml",
141		releaseLevel:          "ga",
142	},
143	{
144		inputDirectoryPath:    "google/cloud/scheduler/v1",
145		pkg:                   "scheduler",
146		importPath:            "cloud.google.com/go/scheduler/apiv1",
147		gRPCServiceConfigPath: "cloudscheduler_grpc_service_config.json",
148		apiServiceConfigPath:  "cloudscheduler_v1.yaml",
149		releaseLevel:          "ga",
150	},
151	{
152		inputDirectoryPath:    "google/cloud/scheduler/v1beta1",
153		pkg:                   "scheduler",
154		importPath:            "cloud.google.com/go/scheduler/apiv1beta1",
155		gRPCServiceConfigPath: "cloudscheduler_grpc_service_config.json",
156		apiServiceConfigPath:  "cloudscheduler_v1beta1.yaml",
157		releaseLevel:          "beta",
158	},
159	{
160		inputDirectoryPath:    "google/cloud/speech/v1",
161		pkg:                   "speech",
162		importPath:            "cloud.google.com/go/speech/apiv1",
163		gRPCServiceConfigPath: "speech_grpc_service_config.json",
164		apiServiceConfigPath:  "speech_v1.yaml",
165		releaseLevel:          "ga",
166	},
167	{
168		inputDirectoryPath:    "google/cloud/speech/v1p1beta1",
169		pkg:                   "speech",
170		importPath:            "cloud.google.com/go/speech/apiv1p1beta1",
171		gRPCServiceConfigPath: "speech_grpc_service_config.json",
172		apiServiceConfigPath:  "speech_v1p1beta1.yaml",
173		releaseLevel:          "beta",
174	},
175	{
176		inputDirectoryPath:    "google/cloud/bigquery/connection/v1beta1",
177		pkg:                   "connection",
178		importPath:            "cloud.google.com/go/bigquery/connection/apiv1beta1",
179		gRPCServiceConfigPath: "bigqueryconnection_grpc_service_config.json",
180		apiServiceConfigPath:  "bigqueryconnection_v1beta1.yaml",
181		releaseLevel:          "beta",
182	},
183	{
184		inputDirectoryPath:    "google/cloud/bigquery/connection/v1",
185		pkg:                   "connection",
186		importPath:            "cloud.google.com/go/bigquery/connection/apiv1",
187		gRPCServiceConfigPath: "bigqueryconnection_grpc_service_config.json",
188		apiServiceConfigPath:  "bigqueryconnection_v1.yaml",
189		releaseLevel:          "ga",
190	},
191	{
192		inputDirectoryPath:    "google/cloud/bigquery/datatransfer/v1",
193		pkg:                   "datatransfer",
194		importPath:            "cloud.google.com/go/bigquery/datatransfer/apiv1",
195		gRPCServiceConfigPath: "bigquerydatatransfer_grpc_service_config.json",
196		apiServiceConfigPath:  "bigquerydatatransfer_v1.yaml",
197		releaseLevel:          "ga",
198	},
199	{
200		inputDirectoryPath:    "google/cloud/bigquery/migration/v2alpha",
201		pkg:                   "migration",
202		importPath:            "cloud.google.com/go/bigquery/migration/apiv2alpha",
203		gRPCServiceConfigPath: "bigquerymigration_grpc_service_config.json",
204		apiServiceConfigPath:  "bigquerymigration_v2alpha.yaml",
205		releaseLevel:          "alpha",
206	},
207	{
208		inputDirectoryPath:    "google/cloud/bigquery/reservation/v1beta1",
209		pkg:                   "reservation",
210		importPath:            "cloud.google.com/go/bigquery/reservation/apiv1beta1",
211		gRPCServiceConfigPath: "bigqueryreservation_grpc_service_config.json",
212		apiServiceConfigPath:  "bigqueryreservation_v1beta1.yaml",
213		releaseLevel:          "beta",
214	},
215	{
216		inputDirectoryPath:    "google/cloud/bigquery/reservation/v1",
217		pkg:                   "reservation",
218		importPath:            "cloud.google.com/go/bigquery/reservation/apiv1",
219		gRPCServiceConfigPath: "bigqueryreservation_grpc_service_config.json",
220		apiServiceConfigPath:  "bigqueryreservation_v1.yaml",
221		releaseLevel:          "ga",
222	},
223	{
224		inputDirectoryPath:    "google/cloud/bigquery/storage/v1beta1",
225		pkg:                   "storage",
226		importPath:            "cloud.google.com/go/bigquery/storage/apiv1beta1",
227		gRPCServiceConfigPath: "bigquerystorage_grpc_service_config.json",
228		apiServiceConfigPath:  "bigquerystorage_v1beta1.yaml",
229		releaseLevel:          "beta",
230	},
231	{
232		inputDirectoryPath:    "google/cloud/bigquery/storage/v1beta2",
233		pkg:                   "storage",
234		importPath:            "cloud.google.com/go/bigquery/storage/apiv1beta2",
235		gRPCServiceConfigPath: "bigquerystorage_grpc_service_config.json",
236		apiServiceConfigPath:  "bigquerystorage_v1beta2.yaml",
237		releaseLevel:          "beta",
238	},
239	{
240		inputDirectoryPath:    "google/cloud/bigquery/storage/v1",
241		pkg:                   "storage",
242		importPath:            "cloud.google.com/go/bigquery/storage/apiv1",
243		gRPCServiceConfigPath: "bigquerystorage_grpc_service_config.json",
244		apiServiceConfigPath:  "bigquerystorage_v1.yaml",
245		releaseLevel:          "ga",
246	},
247	{
248		inputDirectoryPath:    "google/cloud/iot/v1",
249		pkg:                   "iot",
250		importPath:            "cloud.google.com/go/iot/apiv1",
251		gRPCServiceConfigPath: "cloudiot_grpc_service_config.json",
252		apiServiceConfigPath:  "cloudiot_v1.yaml",
253		releaseLevel:          "ga",
254	},
255	{
256		inputDirectoryPath:    "google/cloud/recommender/v1beta1",
257		pkg:                   "recommender",
258		importPath:            "cloud.google.com/go/recommender/apiv1beta1",
259		gRPCServiceConfigPath: "recommender_grpc_service_config.json",
260		apiServiceConfigPath:  "recommender_v1beta1.yaml",
261		releaseLevel:          "beta",
262	},
263	{
264		inputDirectoryPath:    "google/cloud/tasks/v2",
265		pkg:                   "cloudtasks",
266		importPath:            "cloud.google.com/go/cloudtasks/apiv2",
267		gRPCServiceConfigPath: "cloudtasks_grpc_service_config.json",
268		apiServiceConfigPath:  "cloudtasks_v2.yaml",
269		releaseLevel:          "ga",
270	},
271	{
272		inputDirectoryPath:    "google/cloud/tasks/v2beta2",
273		pkg:                   "cloudtasks",
274		importPath:            "cloud.google.com/go/cloudtasks/apiv2beta2",
275		gRPCServiceConfigPath: "cloudtasks_grpc_service_config.json",
276		apiServiceConfigPath:  "cloudtasks_v2beta2.yaml",
277		releaseLevel:          "beta",
278	},
279	{
280		inputDirectoryPath:    "google/cloud/tasks/v2beta3",
281		pkg:                   "cloudtasks",
282		importPath:            "cloud.google.com/go/cloudtasks/apiv2beta3",
283		gRPCServiceConfigPath: "cloudtasks_grpc_service_config.json",
284		apiServiceConfigPath:  "cloudtasks_v2beta3.yaml",
285		releaseLevel:          "beta",
286	},
287	{
288		inputDirectoryPath:    "google/cloud/videointelligence/v1",
289		pkg:                   "videointelligence",
290		importPath:            "cloud.google.com/go/videointelligence/apiv1",
291		gRPCServiceConfigPath: "videointelligence_grpc_service_config.json",
292		apiServiceConfigPath:  "videointelligence_v1.yaml",
293		releaseLevel:          "ga",
294	},
295	{
296		inputDirectoryPath:    "google/cloud/vision/v1",
297		pkg:                   "vision",
298		importPath:            "cloud.google.com/go/vision/apiv1",
299		gRPCServiceConfigPath: "vision_grpc_service_config.json",
300		apiServiceConfigPath:  "vision_v1.yaml",
301		releaseLevel:          "ga",
302	},
303	{
304		inputDirectoryPath:    "google/cloud/webrisk/v1",
305		pkg:                   "webrisk",
306		importPath:            "cloud.google.com/go/webrisk/apiv1",
307		gRPCServiceConfigPath: "webrisk_grpc_service_config.json",
308		apiServiceConfigPath:  "webrisk_v1.yaml",
309		releaseLevel:          "ga",
310	},
311	{
312		inputDirectoryPath:    "google/cloud/webrisk/v1beta1",
313		pkg:                   "webrisk",
314		importPath:            "cloud.google.com/go/webrisk/apiv1beta1",
315		gRPCServiceConfigPath: "webrisk_grpc_service_config.json",
316		apiServiceConfigPath:  "webrisk_v1beta1.yaml",
317		releaseLevel:          "beta",
318	},
319	{
320		inputDirectoryPath:    "google/cloud/secretmanager/v1",
321		pkg:                   "secretmanager",
322		importPath:            "cloud.google.com/go/secretmanager/apiv1",
323		gRPCServiceConfigPath: "secretmanager_grpc_service_config.json",
324		apiServiceConfigPath:  "secretmanager_v1.yaml",
325		releaseLevel:          "ga",
326	},
327	{
328		inputDirectoryPath:    "google/cloud/secrets/v1beta1",
329		pkg:                   "secretmanager",
330		importPath:            "cloud.google.com/go/secretmanager/apiv1beta1",
331		gRPCServiceConfigPath: "secretmanager_grpc_service_config.json",
332		apiServiceConfigPath:  "secretmanager_v1beta1.yaml",
333		releaseLevel:          "beta",
334	},
335	{
336		inputDirectoryPath:    "google/cloud/osconfig/v1",
337		pkg:                   "osconfig",
338		importPath:            "cloud.google.com/go/osconfig/apiv1",
339		gRPCServiceConfigPath: "osconfig_grpc_service_config.json",
340		apiServiceConfigPath:  "osconfig_v1.yaml",
341		releaseLevel:          "ga",
342	},
343	{
344		inputDirectoryPath:    "google/cloud/osconfig/v1alpha",
345		pkg:                   "osconfig",
346		importPath:            "cloud.google.com/go/osconfig/apiv1alpha",
347		gRPCServiceConfigPath: "osconfig_grpc_service_config.json",
348		apiServiceConfigPath:  "osconfig_v1alpha.yaml",
349		releaseLevel:          "alpha",
350	},
351	{
352		inputDirectoryPath:    "google/cloud/osconfig/v1beta",
353		pkg:                   "osconfig",
354		importPath:            "cloud.google.com/go/osconfig/apiv1beta",
355		gRPCServiceConfigPath: "osconfig_grpc_service_config.json",
356		apiServiceConfigPath:  "osconfig_v1beta.yaml",
357		releaseLevel:          "beta",
358	},
359	{
360		inputDirectoryPath:    "google/cloud/osconfig/agentendpoint/v1",
361		pkg:                   "agentendpoint",
362		importPath:            "cloud.google.com/go/osconfig/agentendpoint/apiv1",
363		gRPCServiceConfigPath: "agentendpoint_grpc_service_config.json",
364		apiServiceConfigPath:  "osconfig_v1.yaml",
365		releaseLevel:          "ga",
366	},
367	{
368		inputDirectoryPath:    "google/cloud/osconfig/agentendpoint/v1beta",
369		pkg:                   "agentendpoint",
370		importPath:            "cloud.google.com/go/osconfig/agentendpoint/apiv1beta",
371		gRPCServiceConfigPath: "agentendpoint_grpc_service_config.json",
372		apiServiceConfigPath:  "osconfig_v1beta.yaml",
373		releaseLevel:          "beta",
374	},
375	{
376		inputDirectoryPath:    "google/cloud/datacatalog/v1",
377		pkg:                   "datacatalog",
378		importPath:            "cloud.google.com/go/datacatalog/apiv1",
379		gRPCServiceConfigPath: "datacatalog_grpc_service_config.json",
380		apiServiceConfigPath:  "datacatalog_v1.yaml",
381		releaseLevel:          "ga",
382	},
383	{
384		inputDirectoryPath:    "google/cloud/datacatalog/v1beta1",
385		pkg:                   "datacatalog",
386		importPath:            "cloud.google.com/go/datacatalog/apiv1beta1",
387		gRPCServiceConfigPath: "datacatalog_grpc_service_config.json",
388		apiServiceConfigPath:  "datacatalog_v1beta1.yaml",
389		releaseLevel:          "beta",
390	},
391	{
392		inputDirectoryPath:    "google/cloud/dataproc/v1",
393		pkg:                   "dataproc",
394		importPath:            "cloud.google.com/go/dataproc/apiv1",
395		gRPCServiceConfigPath: "dataproc_grpc_service_config.json",
396		apiServiceConfigPath:  "dataproc_v1.yaml",
397		releaseLevel:          "ga",
398	},
399	{
400		inputDirectoryPath:    "google/cloud/kms/v1",
401		pkg:                   "kms",
402		importPath:            "cloud.google.com/go/kms/apiv1",
403		gRPCServiceConfigPath: "cloudkms_grpc_service_config.json",
404		apiServiceConfigPath:  "cloudkms_v1.yaml",
405		releaseLevel:          "ga",
406	},
407	{
408		inputDirectoryPath:    "google/cloud/oslogin/v1",
409		pkg:                   "oslogin",
410		importPath:            "cloud.google.com/go/oslogin/apiv1",
411		gRPCServiceConfigPath: "oslogin_grpc_service_config.json",
412		apiServiceConfigPath:  "oslogin_v1.yaml",
413		releaseLevel:          "ga",
414	},
415	{
416		inputDirectoryPath:    "google/cloud/oslogin/v1beta",
417		pkg:                   "oslogin",
418		importPath:            "cloud.google.com/go/oslogin/apiv1beta",
419		gRPCServiceConfigPath: "oslogin_grpc_service_config.json",
420		apiServiceConfigPath:  "oslogin_v1beta.yaml",
421		releaseLevel:          "beta",
422	},
423	{
424		inputDirectoryPath:    "google/cloud/recaptchaenterprise/v1",
425		pkg:                   "recaptchaenterprise",
426		importPath:            "cloud.google.com/go/recaptchaenterprise/apiv1",
427		gRPCServiceConfigPath: "recaptchaenterprise_grpc_service_config.json",
428		apiServiceConfigPath:  "recaptchaenterprise_v1.yaml",
429		releaseLevel:          "ga",
430	},
431	{
432		inputDirectoryPath:    "google/cloud/recaptchaenterprise/v1beta1",
433		pkg:                   "recaptchaenterprise",
434		importPath:            "cloud.google.com/go/recaptchaenterprise/apiv1beta1",
435		gRPCServiceConfigPath: "recaptchaenterprise_grpc_service_config.json",
436		apiServiceConfigPath:  "recaptchaenterprise_v1beta1.yaml",
437		releaseLevel:          "beta",
438	},
439	{
440		inputDirectoryPath:    "google/cloud/redis/v1",
441		pkg:                   "redis",
442		importPath:            "cloud.google.com/go/redis/apiv1",
443		gRPCServiceConfigPath: "redis_grpc_service_config.json",
444		apiServiceConfigPath:  "redis_v1.yaml",
445		releaseLevel:          "ga",
446	},
447	{
448		inputDirectoryPath:    "google/cloud/redis/v1beta1",
449		pkg:                   "redis",
450		importPath:            "cloud.google.com/go/redis/apiv1beta1",
451		gRPCServiceConfigPath: "redis_grpc_service_config.json",
452		apiServiceConfigPath:  "redis_v1beta1.yaml",
453		releaseLevel:          "beta",
454	},
455	{
456		inputDirectoryPath:    "google/devtools/clouddebugger/v2",
457		pkg:                   "debugger",
458		importPath:            "cloud.google.com/go/debugger/apiv2",
459		gRPCServiceConfigPath: "clouddebugger_grpc_service_config.json",
460		apiServiceConfigPath:  "clouddebugger_v2.yaml",
461		releaseLevel:          "ga",
462	},
463	{
464		inputDirectoryPath:    "google/devtools/clouderrorreporting/v1beta1",
465		pkg:                   "errorreporting",
466		importPath:            "cloud.google.com/go/errorreporting/apiv1beta1",
467		gRPCServiceConfigPath: "errorreporting_grpc_service_config.json",
468		apiServiceConfigPath:  "clouderrorreporting_v1beta1.yaml",
469		releaseLevel:          "beta",
470	},
471	{
472		inputDirectoryPath:    "google/devtools/cloudtrace/v1",
473		pkg:                   "trace",
474		importPath:            "cloud.google.com/go/trace/apiv1",
475		gRPCServiceConfigPath: "cloudtrace_grpc_service_config.json",
476		apiServiceConfigPath:  "cloudtrace_v1.yaml",
477		releaseLevel:          "ga",
478	},
479	{
480		inputDirectoryPath:    "google/devtools/cloudtrace/v2",
481		pkg:                   "trace",
482		importPath:            "cloud.google.com/go/trace/apiv2",
483		gRPCServiceConfigPath: "cloudtrace_grpc_service_config.json",
484		apiServiceConfigPath:  "cloudtrace_v2.yaml",
485		releaseLevel:          "ga",
486	},
487	{
488		inputDirectoryPath:    "google/privacy/dlp/v2",
489		pkg:                   "dlp",
490		importPath:            "cloud.google.com/go/dlp/apiv2",
491		gRPCServiceConfigPath: "dlp_grpc_service_config.json",
492		apiServiceConfigPath:  "dlp_v2.yaml",
493		releaseLevel:          "ga",
494	},
495	{
496		inputDirectoryPath:    "google/datastore/admin/v1",
497		pkg:                   "admin",
498		importPath:            "cloud.google.com/go/datastore/admin/apiv1",
499		gRPCServiceConfigPath: "datastore_admin_grpc_service_config.json",
500		apiServiceConfigPath:  "datastore_v1.yaml",
501		releaseLevel:          "alpha",
502	},
503	{
504		inputDirectoryPath:    "google/spanner/admin/database/v1",
505		pkg:                   "database",
506		importPath:            "cloud.google.com/go/spanner/admin/database/apiv1",
507		gRPCServiceConfigPath: "spanner_admin_database_grpc_service_config.json",
508		apiServiceConfigPath:  "spanner_admin_database.yaml",
509		releaseLevel:          "ga",
510	},
511	{
512		inputDirectoryPath:    "google/spanner/admin/instance/v1",
513		pkg:                   "instance",
514		importPath:            "cloud.google.com/go/spanner/admin/instance/apiv1",
515		gRPCServiceConfigPath: "spanner_admin_instance_grpc_service_config.json",
516		apiServiceConfigPath:  "spanner_admin_instance.yaml",
517		releaseLevel:          "ga",
518	},
519	{
520		inputDirectoryPath:    "google/spanner/v1",
521		pkg:                   "spanner",
522		importPath:            "cloud.google.com/go/spanner/apiv1",
523		gRPCServiceConfigPath: "spanner_grpc_service_config.json",
524		apiServiceConfigPath:  "spanner.yaml",
525		releaseLevel:          "ga",
526	},
527	{
528		inputDirectoryPath:    "google/cloud/securitycenter/settings/v1beta1",
529		pkg:                   "settings",
530		importPath:            "cloud.google.com/go/securitycenter/settings/apiv1beta1",
531		gRPCServiceConfigPath: "securitycenter_settings_grpc_service_config.json",
532		apiServiceConfigPath:  "securitycenter_settings.yaml",
533		releaseLevel:          "beta",
534	},
535	{
536		inputDirectoryPath:    "google/cloud/securitycenter/v1",
537		pkg:                   "securitycenter",
538		importPath:            "cloud.google.com/go/securitycenter/apiv1",
539		gRPCServiceConfigPath: "securitycenter_grpc_service_config.json",
540		apiServiceConfigPath:  "securitycenter_v1.yaml",
541		releaseLevel:          "ga",
542	},
543	{
544		inputDirectoryPath:    "google/cloud/securitycenter/v1beta1",
545		pkg:                   "securitycenter",
546		importPath:            "cloud.google.com/go/securitycenter/apiv1beta1",
547		gRPCServiceConfigPath: "securitycenter_grpc_service_config.json",
548		apiServiceConfigPath:  "securitycenter_v1beta1.yaml",
549		releaseLevel:          "beta",
550	},
551	{
552		inputDirectoryPath:    "google/cloud/securitycenter/v1p1beta1",
553		pkg:                   "securitycenter",
554		importPath:            "cloud.google.com/go/securitycenter/apiv1p1beta1",
555		gRPCServiceConfigPath: "securitycenter_grpc_service_config.json",
556		apiServiceConfigPath:  "securitycenter_v1p1beta1.yaml",
557		releaseLevel:          "beta",
558	},
559	{
560		inputDirectoryPath:    "google/firestore/admin/v1",
561		pkg:                   "apiv1",
562		importPath:            "cloud.google.com/go/firestore/apiv1/admin",
563		gRPCServiceConfigPath: "firestore_admin_grpc_service_config.json",
564		apiServiceConfigPath:  "firestore_v1.yaml",
565		releaseLevel:          "ga",
566	},
567	{
568		inputDirectoryPath:    "google/firestore/v1",
569		pkg:                   "firestore",
570		importPath:            "cloud.google.com/go/firestore/apiv1",
571		gRPCServiceConfigPath: "firestore_grpc_service_config.json",
572		apiServiceConfigPath:  "firestore_v1.yaml",
573		releaseLevel:          "ga",
574	},
575	{
576		inputDirectoryPath:    "google/devtools/cloudbuild/v1",
577		pkg:                   "cloudbuild",
578		importPath:            "cloud.google.com/go/cloudbuild/apiv1/v2",
579		gRPCServiceConfigPath: "cloudbuild_grpc_service_config.json",
580		apiServiceConfigPath:  "cloudbuild_v1.yaml",
581		releaseLevel:          "ga",
582	},
583	{
584		inputDirectoryPath:    "google/cloud/dialogflow/cx/v3beta1",
585		pkg:                   "cx",
586		importPath:            "cloud.google.com/go/dialogflow/cx/apiv3beta1",
587		gRPCServiceConfigPath: "dialogflow_grpc_service_config.json",
588		apiServiceConfigPath:  "dialogflow_v3beta1.yaml",
589		releaseLevel:          "beta",
590	},
591	{
592		inputDirectoryPath:    "google/cloud/dialogflow/cx/v3",
593		pkg:                   "cx",
594		importPath:            "cloud.google.com/go/dialogflow/cx/apiv3",
595		gRPCServiceConfigPath: "dialogflow_grpc_service_config.json",
596		apiServiceConfigPath:  "dialogflow_v3.yaml",
597		releaseLevel:          "ga",
598	},
599	{
600		inputDirectoryPath:    "google/cloud/dialogflow/v2",
601		pkg:                   "dialogflow",
602		importPath:            "cloud.google.com/go/dialogflow/apiv2",
603		gRPCServiceConfigPath: "dialogflow_grpc_service_config.json",
604		apiServiceConfigPath:  "dialogflow_v2.yaml",
605		releaseLevel:          "ga",
606	},
607	{
608		inputDirectoryPath:    "google/iam/credentials/v1",
609		pkg:                   "credentials",
610		importPath:            "cloud.google.com/go/iam/credentials/apiv1",
611		gRPCServiceConfigPath: "iamcredentials_grpc_service_config.json",
612		apiServiceConfigPath:  "iamcredentials_v1.yaml",
613		releaseLevel:          "ga",
614	},
615	{
616		inputDirectoryPath:    "google/longrunning",
617		pkg:                   "longrunning",
618		importPath:            "cloud.google.com/go/longrunning/autogen",
619		gRPCServiceConfigPath: "longrunning_grpc_service_config.json",
620		apiServiceConfigPath:  "longrunning.yaml",
621		releaseLevel:          "alpha",
622	},
623	{
624		inputDirectoryPath:    "google/devtools/containeranalysis/v1beta1",
625		pkg:                   "containeranalysis",
626		importPath:            "cloud.google.com/go/containeranalysis/apiv1beta1",
627		gRPCServiceConfigPath: "containeranalysis_grpc_service_config.json",
628		apiServiceConfigPath:  "containeranalysis_v1beta1.yaml",
629		releaseLevel:          "beta",
630	},
631	{
632		// The grafeas v1beta1 client must be generated in the same package as containeranalysis v1beta1,
633		// but the proto is in a sub-directory of the containeranalysis v1beta1 protos.
634		inputDirectoryPath:    "google/devtools/containeranalysis/v1beta1/grafeas",
635		pkg:                   "containeranalysis",
636		importPath:            "cloud.google.com/go/containeranalysis/apiv1beta1",
637		gRPCServiceConfigPath: "../containeranalysis_grpc_service_config.json",
638		apiServiceConfigPath:  "../containeranalysis_v1beta1.yaml",
639		releaseLevel:          "beta",
640	},
641	{
642		inputDirectoryPath:    "google/cloud/recommender/v1",
643		pkg:                   "recommender",
644		importPath:            "cloud.google.com/go/recommender/apiv1",
645		gRPCServiceConfigPath: "recommender_grpc_service_config.json",
646		apiServiceConfigPath:  "recommender_v1.yaml",
647		releaseLevel:          "ga",
648	},
649	{
650		inputDirectoryPath:    "google/cloud/videointelligence/v1beta2",
651		pkg:                   "videointelligence",
652		importPath:            "cloud.google.com/go/videointelligence/apiv1beta2",
653		gRPCServiceConfigPath: "videointelligence_grpc_service_config.json",
654		apiServiceConfigPath:  "../videointelligence_v1beta2.yaml",
655		releaseLevel:          "beta",
656	},
657	{
658		inputDirectoryPath:    "google/cloud/asset/v1p2beta1",
659		pkg:                   "asset",
660		importPath:            "cloud.google.com/go/asset/apiv1p2beta1",
661		gRPCServiceConfigPath: "cloudasset_grpc_service_config.json",
662		apiServiceConfigPath:  "cloudasset_v1p2beta1.yaml",
663		releaseLevel:          "beta",
664	},
665	{
666		inputDirectoryPath:    "google/cloud/asset/v1p5beta1",
667		pkg:                   "asset",
668		importPath:            "cloud.google.com/go/asset/apiv1p5beta1",
669		gRPCServiceConfigPath: "cloudasset_grpc_service_config.json",
670		apiServiceConfigPath:  "cloudasset_v1p5beta1.yaml",
671		releaseLevel:          "beta",
672	},
673	{
674		inputDirectoryPath:    "google/monitoring/v3",
675		pkg:                   "monitoring",
676		importPath:            "cloud.google.com/go/monitoring/apiv3/v2",
677		gRPCServiceConfigPath: "monitoring_grpc_service_config.json",
678		apiServiceConfigPath:  "monitoring.yaml",
679		releaseLevel:          "ga",
680	},
681	{
682		inputDirectoryPath:    "google/cloud/vision/v1p1beta1",
683		pkg:                   "vision",
684		importPath:            "cloud.google.com/go/vision/apiv1p1beta1",
685		gRPCServiceConfigPath: "vision_grpc_service_config.json",
686		apiServiceConfigPath:  "vision_v1p1beta1.yaml",
687		releaseLevel:          "beta",
688	},
689	{
690		inputDirectoryPath:    "google/logging/v2",
691		pkg:                   "logging",
692		importPath:            "cloud.google.com/go/logging/apiv2",
693		gRPCServiceConfigPath: "logging_grpc_service_config.json",
694		apiServiceConfigPath:  "logging.yaml",
695		releaseLevel:          "ga",
696	},
697	{
698		inputDirectoryPath:    "google/cloud/talent/v4",
699		pkg:                   "talent",
700		importPath:            "cloud.google.com/go/talent/apiv4",
701		gRPCServiceConfigPath: "talent_grpc_service_config.json",
702		apiServiceConfigPath:  "jobs_v4.yaml",
703		releaseLevel:          "beta",
704	},
705	{
706		inputDirectoryPath:    "google/cloud/talent/v4beta1",
707		pkg:                   "talent",
708		importPath:            "cloud.google.com/go/talent/apiv4beta1",
709		gRPCServiceConfigPath: "talent_grpc_service_config.json",
710		apiServiceConfigPath:  "jobs_v4beta1.yaml",
711		releaseLevel:          "beta",
712	},
713	{
714		inputDirectoryPath:    "google/pubsub/v1",
715		pkg:                   "pubsub",
716		importPath:            "cloud.google.com/go/pubsub/apiv1",
717		gRPCServiceConfigPath: "pubsub_grpc_service_config.json",
718		apiServiceConfigPath:  "pubsub_v1.yaml",
719		releaseLevel:          "ga",
720	},
721	{
722		inputDirectoryPath:    "google/cloud/pubsublite/v1",
723		pkg:                   "pubsublite",
724		importPath:            "cloud.google.com/go/pubsublite/apiv1",
725		gRPCServiceConfigPath: "pubsublite_grpc_service_config.json",
726		apiServiceConfigPath:  "pubsublite_v1.yaml",
727		releaseLevel:          "ga",
728	},
729	{
730		inputDirectoryPath:    "google/cloud/automl/v1",
731		pkg:                   "automl",
732		importPath:            "cloud.google.com/go/automl/apiv1",
733		gRPCServiceConfigPath: "automl_grpc_service_config.json",
734		apiServiceConfigPath:  "automl_v1.yaml",
735		releaseLevel:          "ga",
736	},
737	{
738		inputDirectoryPath:    "google/cloud/automl/v1beta1",
739		pkg:                   "automl",
740		importPath:            "cloud.google.com/go/automl/apiv1beta1",
741		gRPCServiceConfigPath: "automl_grpc_service_config.json",
742		apiServiceConfigPath:  "automl_v1beta1.yaml",
743		releaseLevel:          "beta",
744	},
745	{
746		inputDirectoryPath:    "google/container/v1",
747		pkg:                   "container",
748		importPath:            "cloud.google.com/go/container/apiv1",
749		gRPCServiceConfigPath: "container_grpc_service_config.json",
750		apiServiceConfigPath:  "container_v1.yaml",
751		releaseLevel:          "ga",
752	},
753	{
754		inputDirectoryPath:    "google/cloud/servicedirectory/v1",
755		pkg:                   "servicedirectory",
756		importPath:            "cloud.google.com/go/servicedirectory/apiv1",
757		gRPCServiceConfigPath: "servicedirectory_grpc_service_config.json",
758		apiServiceConfigPath:  "servicedirectory_v1.yaml",
759		releaseLevel:          "ga",
760	},
761	{
762		inputDirectoryPath:    "google/cloud/servicedirectory/v1beta1",
763		pkg:                   "servicedirectory",
764		importPath:            "cloud.google.com/go/servicedirectory/apiv1beta1",
765		gRPCServiceConfigPath: "servicedirectory_grpc_service_config.json",
766		apiServiceConfigPath:  "servicedirectory_v1beta1.yaml",
767		releaseLevel:          "beta",
768	},
769	{
770		inputDirectoryPath:    "google/cloud/gaming/v1",
771		pkg:                   "gaming",
772		importPath:            "cloud.google.com/go/gaming/apiv1",
773		gRPCServiceConfigPath: "gaming_grpc_service_config.json",
774		apiServiceConfigPath:  "gameservices_v1.yaml",
775		releaseLevel:          "ga",
776	},
777	{
778		inputDirectoryPath:    "google/cloud/gaming/v1beta",
779		pkg:                   "gaming",
780		importPath:            "cloud.google.com/go/gaming/apiv1beta",
781		gRPCServiceConfigPath: "gaming_grpc_service_config.json",
782		apiServiceConfigPath:  "gameservices_v1beta.yaml",
783		releaseLevel:          "beta",
784	},
785	{
786		inputDirectoryPath:    "google/cloud/policytroubleshooter/v1",
787		pkg:                   "policytroubleshooter",
788		importPath:            "cloud.google.com/go/policytroubleshooter/apiv1",
789		gRPCServiceConfigPath: "checker_grpc_service_config.json",
790		apiServiceConfigPath:  "policytroubleshooter_v1.yaml",
791		releaseLevel:          "ga",
792	},
793	{
794		inputDirectoryPath:    "google/monitoring/dashboard/v1",
795		pkg:                   "dashboard",
796		importPath:            "cloud.google.com/go/monitoring/dashboard/apiv1",
797		gRPCServiceConfigPath: "dashboards_grpc_service_config.json",
798		apiServiceConfigPath:  "monitoring.yaml",
799		releaseLevel:          "ga",
800	},
801	{
802		inputDirectoryPath:    "google/cloud/functions/v1",
803		pkg:                   "functions",
804		importPath:            "cloud.google.com/go/functions/apiv1",
805		gRPCServiceConfigPath: "functions_grpc_service_config.json",
806		apiServiceConfigPath:  "cloudfunctions_v1.yaml",
807		releaseLevel:          "ga",
808	},
809	{
810		inputDirectoryPath:    "google/cloud/networkconnectivity/v1",
811		pkg:                   "networkconnectivity",
812		importPath:            "cloud.google.com/go/networkconnectivity/apiv1",
813		gRPCServiceConfigPath: "networkconnectivity_v1_grpc_service_config.json",
814		apiServiceConfigPath:  "networkconnectivity_v1.yaml",
815		// GA after 2021/10/11
816		releaseLevel: "beta",
817	},
818	{
819		inputDirectoryPath:    "google/cloud/networkconnectivity/v1alpha1",
820		pkg:                   "networkconnectivity",
821		importPath:            "cloud.google.com/go/networkconnectivity/apiv1alpha1",
822		gRPCServiceConfigPath: "networkconnectivity_grpc_service_config.json",
823		apiServiceConfigPath:  "networkconnectivity_v1alpha1.yaml",
824		releaseLevel:          "alpha",
825	},
826	{
827		inputDirectoryPath:    "google/cloud/notebooks/v1beta1",
828		pkg:                   "notebooks",
829		importPath:            "cloud.google.com/go/notebooks/apiv1beta1",
830		gRPCServiceConfigPath: "notebooks_grpc_service_config.json",
831		apiServiceConfigPath:  "notebooks_v1beta1.yaml",
832		releaseLevel:          "beta",
833	},
834	{
835		inputDirectoryPath:    "google/cloud/billing/budgets/v1",
836		pkg:                   "budgets",
837		importPath:            "cloud.google.com/go/billing/budgets/apiv1",
838		gRPCServiceConfigPath: "billingbudgets_grpc_service_config.json",
839		apiServiceConfigPath:  "billingbudgets.yaml",
840		releaseLevel:          "ga",
841	},
842	{
843		inputDirectoryPath:    "google/cloud/billing/budgets/v1beta1",
844		pkg:                   "budgets",
845		importPath:            "cloud.google.com/go/billing/budgets/apiv1beta1",
846		gRPCServiceConfigPath: "billingbudgets_grpc_service_config.json",
847		apiServiceConfigPath:  "billingbudgets.yaml",
848		releaseLevel:          "beta",
849	},
850	{
851		inputDirectoryPath:    "google/cloud/video/transcoder/v1",
852		pkg:                   "transcoder",
853		importPath:            "cloud.google.com/go/video/transcoder/apiv1",
854		gRPCServiceConfigPath: "transcoder_grpc_service_config.json",
855		apiServiceConfigPath:  "transcoder_v1.yaml",
856		releaseLevel:          "ga",
857	},
858	{
859		inputDirectoryPath:    "google/cloud/video/transcoder/v1beta1",
860		pkg:                   "transcoder",
861		importPath:            "cloud.google.com/go/video/transcoder/apiv1beta1",
862		gRPCServiceConfigPath: "transcoder_grpc_service_config.json",
863		apiServiceConfigPath:  "transcoder_v1beta1.yaml",
864		releaseLevel:          "beta",
865	},
866	{
867		inputDirectoryPath:    "google/cloud/workflows/v1beta",
868		pkg:                   "workflows",
869		importPath:            "cloud.google.com/go/workflows/apiv1beta",
870		gRPCServiceConfigPath: "workflows_grpc_service_config.json",
871		apiServiceConfigPath:  "workflows_v1beta.yaml",
872		releaseLevel:          "beta",
873	},
874	{
875		inputDirectoryPath:    "google/cloud/workflows/executions/v1",
876		pkg:                   "executions",
877		importPath:            "cloud.google.com/go/workflows/executions/apiv1",
878		gRPCServiceConfigPath: "executions_grpc_service_config.json",
879		apiServiceConfigPath:  "workflowexecutions_v1.yaml",
880		releaseLevel:          "ga",
881	},
882	{
883		inputDirectoryPath:    "google/cloud/workflows/executions/v1beta",
884		pkg:                   "executions",
885		importPath:            "cloud.google.com/go/workflows/executions/apiv1beta",
886		gRPCServiceConfigPath: "executions_grpc_service_config.json",
887		apiServiceConfigPath:  "workflowexecutions_v1beta.yaml",
888		releaseLevel:          "beta",
889	},
890	{
891		inputDirectoryPath:    "google/cloud/security/privateca/v1beta1",
892		pkg:                   "privateca",
893		importPath:            "cloud.google.com/go/security/privateca/apiv1beta1",
894		gRPCServiceConfigPath: "privateca_grpc_service_config.json",
895		apiServiceConfigPath:  "privateca_v1beta1.yaml",
896		releaseLevel:          "beta",
897	},
898	{
899		inputDirectoryPath:    "google/cloud/security/privateca/v1",
900		pkg:                   "privateca",
901		importPath:            "cloud.google.com/go/security/privateca/apiv1",
902		gRPCServiceConfigPath: "privateca_grpc_service_config.json",
903		apiServiceConfigPath:  "privateca_v1.yaml",
904		releaseLevel:          "ga",
905	},
906	{
907		inputDirectoryPath:    "google/cloud/assuredworkloads/v1beta1",
908		pkg:                   "assuredworkloads",
909		importPath:            "cloud.google.com/go/assuredworkloads/apiv1beta1",
910		gRPCServiceConfigPath: "assuredworkloads_grpc_service_config.json",
911		apiServiceConfigPath:  "assuredworkloads_v1beta1.yaml",
912		releaseLevel:          "beta",
913	},
914	{
915		inputDirectoryPath:    "google/cloud/accessapproval/v1",
916		pkg:                   "accessapproval",
917		importPath:            "cloud.google.com/go/accessapproval/apiv1",
918		gRPCServiceConfigPath: "accessapproval_grpc_service_config.json",
919		apiServiceConfigPath:  "accessapproval_v1.yaml",
920		releaseLevel:          "ga",
921	},
922	{
923		inputDirectoryPath:    "google/cloud/websecurityscanner/v1",
924		pkg:                   "websecurityscanner",
925		importPath:            "cloud.google.com/go/websecurityscanner/apiv1",
926		gRPCServiceConfigPath: "websecurityscanner_grpc_service_config.json",
927		apiServiceConfigPath:  "websecurityscanner_v1.yaml",
928		releaseLevel:          "ga",
929	},
930	{
931		inputDirectoryPath:    "google/cloud/managedidentities/v1",
932		pkg:                   "managedidentities",
933		importPath:            "cloud.google.com/go/managedidentities/apiv1",
934		gRPCServiceConfigPath: "managedidentities_grpc_service_config.json",
935		apiServiceConfigPath:  "managedidentities_v1.yaml",
936		releaseLevel:          "ga",
937	},
938	{
939		inputDirectoryPath:    "google/devtools/artifactregistry/v1beta2",
940		pkg:                   "artifactregistry",
941		importPath:            "cloud.google.com/go/artifactregistry/apiv1beta2",
942		gRPCServiceConfigPath: "artifactregistry_grpc_service_config.json",
943		apiServiceConfigPath:  "artifactregistry_v1beta2.yaml",
944		releaseLevel:          "ga",
945	},
946	{
947		inputDirectoryPath:    "google/cloud/retail/v2",
948		pkg:                   "retail",
949		importPath:            "cloud.google.com/go/retail/apiv2",
950		gRPCServiceConfigPath: "retail_grpc_service_config.json",
951		apiServiceConfigPath:  "retail_v2.yaml",
952		releaseLevel:          "ga",
953	},
954	{
955		inputDirectoryPath:   "google/appengine/v1",
956		pkg:                  "appengine",
957		importPath:           "cloud.google.com/go/appengine/apiv1",
958		apiServiceConfigPath: "appengine_v1.yaml",
959		releaseLevel:         "ga",
960	},
961	{
962		inputDirectoryPath:    "google/cloud/binaryauthorization/v1beta1",
963		pkg:                   "binaryauthorization",
964		importPath:            "cloud.google.com/go/binaryauthorization/apiv1beta1",
965		gRPCServiceConfigPath: "binaryauthorization_grpc_service_config.json",
966		apiServiceConfigPath:  "binaryauthorization_v1beta1.yaml",
967		releaseLevel:          "beta",
968	},
969	{
970		inputDirectoryPath:    "google/cloud/channel/v1",
971		pkg:                   "channel",
972		importPath:            "cloud.google.com/go/channel/apiv1",
973		gRPCServiceConfigPath: "cloudchannel_grpc_service_config.json",
974		apiServiceConfigPath:  "cloudchannel_v1.yaml",
975		releaseLevel:          "ga",
976	},
977	{
978		inputDirectoryPath:   "google/cloud/resourcemanager/v2",
979		pkg:                  "resourcemanager",
980		importPath:           "cloud.google.com/go/resourcemanager/apiv2",
981		apiServiceConfigPath: "cloudresourcemanager_v2.yaml",
982		releaseLevel:         "ga",
983	},
984	{
985		inputDirectoryPath:    "google/cloud/resourcemanager/v3",
986		pkg:                   "resourcemanager",
987		importPath:            "cloud.google.com/go/resourcemanager/apiv3",
988		gRPCServiceConfigPath: "cloudresourcemanager_v3_grpc_service_config.json",
989		apiServiceConfigPath:  "cloudresourcemanager_v3.yaml",
990		// GA after 2021/10/11
991		releaseLevel: "beta",
992	},
993	{
994		inputDirectoryPath:    "google/cloud/datalabeling/v1beta1",
995		pkg:                   "datalabeling",
996		importPath:            "cloud.google.com/go/datalabeling/apiv1beta1",
997		gRPCServiceConfigPath: "datalabeling_grpc_service_config.json",
998		apiServiceConfigPath:  "datalabeling_v1beta1.yaml",
999		releaseLevel:          "beta",
1000	},
1001	{
1002		inputDirectoryPath:    "google/cloud/dataqna/v1alpha",
1003		pkg:                   "dataqna",
1004		importPath:            "cloud.google.com/go/dataqna/apiv1alpha",
1005		gRPCServiceConfigPath: "dataqna_grpc_service_config.json",
1006		apiServiceConfigPath:  "dataqna_v1alpha.yaml",
1007		releaseLevel:          "alpha",
1008	},
1009	{
1010		inputDirectoryPath:    "google/cloud/documentai/v1",
1011		pkg:                   "documentai",
1012		importPath:            "cloud.google.com/go/documentai/apiv1",
1013		gRPCServiceConfigPath: "documentai_v1_grpc_service_config.json",
1014		apiServiceConfigPath:  "documentai_v1.yaml",
1015		releaseLevel:          "ga",
1016	},
1017	{
1018		inputDirectoryPath:    "google/cloud/documentai/v1beta3",
1019		pkg:                   "documentai",
1020		importPath:            "cloud.google.com/go/documentai/apiv1beta3",
1021		gRPCServiceConfigPath: "documentai_v1beta3_grpc_service_config.json",
1022		apiServiceConfigPath:  "documentai_v1beta3.yaml",
1023		releaseLevel:          "beta",
1024	},
1025	{
1026		inputDirectoryPath:    "google/api/servicemanagement/v1",
1027		pkg:                   "servicemanagement",
1028		importPath:            "cloud.google.com/go/servicemanagement/apiv1",
1029		gRPCServiceConfigPath: "servicemanagement_grpc_service_config.json",
1030		apiServiceConfigPath:  "servicemanagement_v1.yaml",
1031		releaseLevel:          "ga",
1032	},
1033	{
1034		inputDirectoryPath:    "google/cloud/domains/v1beta1",
1035		pkg:                   "domains",
1036		importPath:            "cloud.google.com/go/domains/apiv1beta1",
1037		gRPCServiceConfigPath: "domains_grpc_service_config.json",
1038		apiServiceConfigPath:  "domains_v1beta1.yaml",
1039		releaseLevel:          "beta",
1040	},
1041	{
1042		inputDirectoryPath:    "google/cloud/mediatranslation/v1beta1",
1043		pkg:                   "mediatranslation",
1044		importPath:            "cloud.google.com/go/mediatranslation/apiv1beta1",
1045		gRPCServiceConfigPath: "mediatranslation_grpc_service_config.json",
1046		apiServiceConfigPath:  "mediatranslation_v1beta1.yaml",
1047		releaseLevel:          "beta",
1048	},
1049	{
1050		inputDirectoryPath:   "google/api/servicecontrol/v1",
1051		pkg:                  "servicecontrol",
1052		importPath:           "cloud.google.com/go/servicecontrol/apiv1",
1053		apiServiceConfigPath: "servicecontrol.yaml",
1054		releaseLevel:         "ga",
1055	},
1056	{
1057		inputDirectoryPath:    "google/cloud/orgpolicy/v2",
1058		pkg:                   "orgpolicy",
1059		importPath:            "cloud.google.com/go/orgpolicy/apiv2",
1060		gRPCServiceConfigPath: "orgpolicy_grpc_service_config.json",
1061		apiServiceConfigPath:  "orgpolicy_v2.yaml",
1062		releaseLevel:          "ga",
1063	},
1064	{
1065		inputDirectoryPath:    "google/cloud/recommendationengine/v1beta1",
1066		pkg:                   "recommendationengine",
1067		importPath:            "cloud.google.com/go/recommendationengine/apiv1beta1",
1068		gRPCServiceConfigPath: "recommendationengine_grpc_service_config.json",
1069		apiServiceConfigPath:  "recommendationengine_v1beta1.yaml",
1070		releaseLevel:          "beta",
1071		stopGeneration:        true,
1072	},
1073	{
1074		inputDirectoryPath:    "google/cloud/gkehub/v1beta1",
1075		pkg:                   "gkehub",
1076		importPath:            "cloud.google.com/go/gkehub/apiv1beta1",
1077		gRPCServiceConfigPath: "membership_grpc_service_config.json",
1078		apiServiceConfigPath:  "gkehub_v1beta1.yaml",
1079		releaseLevel:          "beta",
1080	},
1081	{
1082		inputDirectoryPath:    "google/cloud/apigateway/v1",
1083		pkg:                   "apigateway",
1084		importPath:            "cloud.google.com/go/apigateway/apiv1",
1085		gRPCServiceConfigPath: "apigateway_grpc_service_config.json",
1086		apiServiceConfigPath:  "apigateway_v1.yaml",
1087		releaseLevel:          "ga",
1088	},
1089	{
1090		inputDirectoryPath:    "google/cloud/metastore/v1",
1091		pkg:                   "metastore",
1092		importPath:            "cloud.google.com/go/metastore/apiv1",
1093		gRPCServiceConfigPath: "metastore_grpc_service_config.json",
1094		apiServiceConfigPath:  "metastore_v1.yaml",
1095		releaseLevel:          "ga",
1096	},
1097	{
1098		inputDirectoryPath:    "google/cloud/metastore/v1alpha",
1099		pkg:                   "metastore",
1100		importPath:            "cloud.google.com/go/metastore/apiv1alpha",
1101		gRPCServiceConfigPath: "metastore_grpc_service_config.json",
1102		apiServiceConfigPath:  "metastore_v1alpha.yaml",
1103		releaseLevel:          "alpha",
1104	},
1105	{
1106		inputDirectoryPath:    "google/cloud/metastore/v1beta",
1107		pkg:                   "metastore",
1108		importPath:            "cloud.google.com/go/metastore/apiv1beta",
1109		gRPCServiceConfigPath: "metastore_grpc_service_config.json",
1110		apiServiceConfigPath:  "metastore_v1beta.yaml",
1111		releaseLevel:          "beta",
1112	},
1113	{
1114		inputDirectoryPath:    "google/cloud/resourcesettings/v1",
1115		pkg:                   "resourcesettings",
1116		importPath:            "cloud.google.com/go/resourcesettings/apiv1",
1117		gRPCServiceConfigPath: "resourcesettings_grpc_service_config.json",
1118		apiServiceConfigPath:  "resourcesettings_v1.yaml",
1119		releaseLevel:          "ga",
1120	},
1121	{
1122		inputDirectoryPath:    "google/cloud/clouddms/v1",
1123		pkg:                   "clouddms",
1124		importPath:            "cloud.google.com/go/clouddms/apiv1",
1125		gRPCServiceConfigPath: "library_grpc_service_config.json",
1126		apiServiceConfigPath:  "datamigration_v1.yaml",
1127		releaseLevel:          "ga",
1128	},
1129	{
1130		inputDirectoryPath:    "google/cloud/essentialcontacts/v1",
1131		pkg:                   "essentialcontacts",
1132		importPath:            "cloud.google.com/go/essentialcontacts/apiv1",
1133		gRPCServiceConfigPath: "essentialcontacts_v1_grpc_service_config.json",
1134		apiServiceConfigPath:  "essentialcontacts_v1.yaml",
1135		releaseLevel:          "ga",
1136	},
1137	{
1138		inputDirectoryPath:    "google/api/serviceusage/v1",
1139		pkg:                   "serviceusage",
1140		importPath:            "cloud.google.com/go/serviceusage/apiv1",
1141		gRPCServiceConfigPath: "serviceusage_grpc_service_config.json",
1142		apiServiceConfigPath:  "serviceusage_v1.yaml",
1143		releaseLevel:          "ga",
1144	},
1145	{
1146		inputDirectoryPath:    "google/cloud/shell/v1",
1147		pkg:                   "shell",
1148		importPath:            "cloud.google.com/go/shell/apiv1",
1149		gRPCServiceConfigPath: "cloudshell_grpc_service_config.json",
1150		apiServiceConfigPath:  "cloudshell_v1.yaml",
1151		releaseLevel:          "ga",
1152	},
1153	{
1154		inputDirectoryPath:    "google/cloud/vpcaccess/v1",
1155		pkg:                   "vpcaccess",
1156		importPath:            "cloud.google.com/go/vpcaccess/apiv1",
1157		gRPCServiceConfigPath: "vpcaccess_grpc_service_config.json",
1158		apiServiceConfigPath:  "vpcaccess_v1.yaml",
1159		releaseLevel:          "ga",
1160	},
1161	{
1162		inputDirectoryPath:    "google/cloud/privatecatalog/v1beta1",
1163		pkg:                   "privatecatalog",
1164		importPath:            "cloud.google.com/go/privatecatalog/apiv1beta1",
1165		gRPCServiceConfigPath: "cloudprivatecatalog_grpc_service_config.json",
1166		apiServiceConfigPath:  "cloudprivatecatalog_v1beta1.yaml",
1167		releaseLevel:          "beta",
1168	},
1169	{
1170		inputDirectoryPath:    "google/cloud/tpu/v1",
1171		pkg:                   "tpu",
1172		importPath:            "cloud.google.com/go/tpu/apiv1",
1173		gRPCServiceConfigPath: "tpu_grpc_service_config.json",
1174		apiServiceConfigPath:  "tpu_v1.yaml",
1175		releaseLevel:          "ga",
1176	},
1177	{
1178		inputDirectoryPath:    "google/cloud/apigeeconnect/v1",
1179		pkg:                   "apigeeconnect",
1180		importPath:            "cloud.google.com/go/apigeeconnect/apiv1",
1181		gRPCServiceConfigPath: "connection_grpc_service_config.json",
1182		apiServiceConfigPath:  "apigeeconnect_v1.yaml",
1183		releaseLevel:          "ga",
1184	},
1185	{
1186		inputDirectoryPath:    "google/cloud/lifesciences/v2beta",
1187		pkg:                   "lifesciences",
1188		importPath:            "cloud.google.com/go/lifesciences/apiv2beta",
1189		gRPCServiceConfigPath: "lifesciences_grpc_service_config.json",
1190		apiServiceConfigPath:  "lifesciences_v2beta.yaml",
1191		releaseLevel:          "beta",
1192	},
1193	{
1194		inputDirectoryPath:    "google/cloud/aiplatform/v1",
1195		pkg:                   "aiplatform",
1196		importPath:            "cloud.google.com/go/aiplatform/apiv1",
1197		gRPCServiceConfigPath: "aiplatform_grpc_service_config.json",
1198		apiServiceConfigPath:  "aiplatform_v1.yaml",
1199		releaseLevel:          "ga",
1200	},
1201	{
1202		inputDirectoryPath:    "google/cloud/gkeconnect/gateway/v1beta1",
1203		pkg:                   "gateway",
1204		importPath:            "cloud.google.com/go/gkeconnect/gateway/apiv1beta1",
1205		gRPCServiceConfigPath: "connectgw_grpc_service_config.json",
1206		apiServiceConfigPath:  "connectgateway_v1beta1.yaml",
1207		releaseLevel:          "beta",
1208	},
1209	{
1210		inputDirectoryPath:    "google/cloud/datastream/v1alpha1",
1211		pkg:                   "datastream",
1212		importPath:            "cloud.google.com/go/datastream/apiv1alpha1",
1213		gRPCServiceConfigPath: "datastream_grpc_service_config.json",
1214		apiServiceConfigPath:  "datastream_v1alpha1.yaml",
1215		releaseLevel:          "alpha",
1216	},
1217	{
1218		inputDirectoryPath:    "google/dataflow/v1beta3",
1219		pkg:                   "dataflow",
1220		importPath:            "cloud.google.com/go/dataflow/apiv1beta3",
1221		gRPCServiceConfigPath: "dataflow_grpc_service_config.json",
1222		apiServiceConfigPath:  "dataflow_v1beta3.yaml",
1223		releaseLevel:          "beta",
1224	},
1225	{
1226		inputDirectoryPath:    "google/cloud/eventarc/v1",
1227		pkg:                   "eventarc",
1228		importPath:            "cloud.google.com/go/eventarc/apiv1",
1229		gRPCServiceConfigPath: "eventarc_grpc_service_config.json",
1230		apiServiceConfigPath:  "eventarc_v1.yaml",
1231		releaseLevel:          "ga",
1232	},
1233	{
1234		inputDirectoryPath:    "google/cloud/networkmanagement/v1",
1235		pkg:                   "networkmanagement",
1236		importPath:            "cloud.google.com/go/networkmanagement/apiv1",
1237		gRPCServiceConfigPath: "networkmanagement_grpc_service_config.json",
1238		apiServiceConfigPath:  "networkmanagement_v1.yaml",
1239		releaseLevel:          "ga",
1240	},
1241	{
1242		inputDirectoryPath:    "google/cloud/iap/v1",
1243		pkg:                   "iap",
1244		importPath:            "cloud.google.com/go/iap/apiv1",
1245		gRPCServiceConfigPath: "iap_grpc_service_config.json",
1246		apiServiceConfigPath:  "iap_v1.yaml",
1247		releaseLevel:          "ga",
1248	},
1249	{
1250		inputDirectoryPath:    "google/cloud/datafusion/v1",
1251		pkg:                   "datafusion",
1252		importPath:            "cloud.google.com/go/datafusion/apiv1",
1253		gRPCServiceConfigPath: "datafusion_grpc_service_config.json",
1254		apiServiceConfigPath:  "datafusion_v1.yaml",
1255		releaseLevel:          "ga",
1256	},
1257	{
1258		inputDirectoryPath:    "google/storagetransfer/v1",
1259		pkg:                   "storagetransfer",
1260		importPath:            "cloud.google.com/go/storagetransfer/apiv1",
1261		gRPCServiceConfigPath: "storagetransfer_grpc_service_config.json",
1262		apiServiceConfigPath:  "storagetransfer_v1.yaml",
1263		releaseLevel:          "ga",
1264	},
1265	{
1266		inputDirectoryPath:    "google/cloud/networksecurity/v1beta1",
1267		pkg:                   "networksecurity",
1268		importPath:            "cloud.google.com/go/networksecurity/apiv1beta1",
1269		gRPCServiceConfigPath: "networksecurity_v1beta1_grpc_service_config.json",
1270		apiServiceConfigPath:  "networksecurity_v1beta1.yaml",
1271		releaseLevel:          "beta",
1272	},
1273	{
1274		inputDirectoryPath:    "google/monitoring/metricsscope/v1",
1275		pkg:                   "metricsscope",
1276		importPath:            "cloud.google.com/go/monitoring/metricsscope/apiv1",
1277		gRPCServiceConfigPath: "metricsscopes_grpc_service_config.json",
1278		apiServiceConfigPath:  "monitoring.yaml",
1279		// GA after 2021/10/11
1280		releaseLevel: "beta",
1281	},
1282	{
1283		inputDirectoryPath:    "google/identity/accesscontextmanager/v1",
1284		pkg:                   "accesscontextmanager",
1285		importPath:            "cloud.google.com/go/accesscontextmanager/apiv1",
1286		gRPCServiceConfigPath: "accesscontextmanager_grpc_service_config.json",
1287		apiServiceConfigPath:  "accesscontextmanager_v1.yaml",
1288		// GA after 2021/10/11
1289		releaseLevel: "beta",
1290	},
1291	{
1292		inputDirectoryPath:    "google/cloud/contactcenterinsights/v1",
1293		pkg:                   "contactcenterinsights",
1294		importPath:            "cloud.google.com/go/contactcenterinsights/apiv1",
1295		gRPCServiceConfigPath: "contactcenterinsights_grpc_service_config.json",
1296		apiServiceConfigPath:  "contactcenterinsights_v1.yaml",
1297		// GA after 2021/10/11
1298		releaseLevel: "beta",
1299	},
1300	{
1301		inputDirectoryPath:    "google/cloud/orchestration/airflow/service/v1",
1302		pkg:                   "service",
1303		importPath:            "cloud.google.com/go/orchestration/airflow/service/apiv1",
1304		gRPCServiceConfigPath: "composer_grpc_service_config.json",
1305		apiServiceConfigPath:  "composer_v1.yaml",
1306		// GA after 2021/10/27
1307		releaseLevel: "beta",
1308	},
1309
1310	// Non-Cloud APIs
1311	{
1312		inputDirectoryPath:    "google/analytics/admin/v1alpha",
1313		pkg:                   "admin",
1314		importPath:            "cloud.google.com/go/analytics/admin/apiv1alpha",
1315		gRPCServiceConfigPath: "admin_grpc_service_config.json",
1316		apiServiceConfigPath:  "analyticsadmin_v1alpha.yaml",
1317		releaseLevel:          "alpha",
1318	},
1319	{
1320		inputDirectoryPath:    "google/area120/tables/v1alpha1",
1321		pkg:                   "tables",
1322		importPath:            "cloud.google.com/go/area120/tables/apiv1alpha1",
1323		gRPCServiceConfigPath: "tables_grpc_service_config.json",
1324		apiServiceConfigPath:  "area120tables_v1alpha1.yaml",
1325		releaseLevel:          "alpha",
1326	},
1327	{
1328		inputDirectoryPath:    "google/cloud/gsuiteaddons/v1",
1329		pkg:                   "gsuiteaddons",
1330		importPath:            "cloud.google.com/go/gsuiteaddons/apiv1",
1331		gRPCServiceConfigPath: "gsuiteaddons_grpc_service_config.json",
1332		apiServiceConfigPath:  "gsuiteaddons_v1.yaml",
1333		releaseLevel:          "ga",
1334	},
1335	{
1336		inputDirectoryPath:    "google/storage/v2",
1337		pkg:                   "storage",
1338		importPath:            "cloud.google.com/go/storage/internal/apiv2",
1339		gRPCServiceConfigPath: "storage_grpc_service_config.json",
1340		apiServiceConfigPath:  "storage_v2.yaml",
1341		releaseLevel:          "alpha",
1342	},
1343}
1344