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