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
47var microgenGapicConfigs = []*microgenConfig{
48	{
49		inputDirectoryPath:    "google/cloud/texttospeech/v1",
50		pkg:                   "texttospeech",
51		importPath:            "cloud.google.com/go/texttospeech/apiv1",
52		gRPCServiceConfigPath: "google/cloud/texttospeech/v1/texttospeech_grpc_service_config.json",
53		apiServiceConfigPath:  "google/cloud/texttospeech/v1/texttospeech_v1.yaml",
54		releaseLevel:          "ga",
55	},
56	{
57		inputDirectoryPath:    "google/cloud/asset/v1",
58		pkg:                   "asset",
59		importPath:            "cloud.google.com/go/asset/apiv1",
60		gRPCServiceConfigPath: "google/cloud/asset/v1/cloudasset_grpc_service_config.json",
61		apiServiceConfigPath:  "google/cloud/asset/v1/cloudasset_v1.yaml",
62		releaseLevel:          "ga",
63	},
64	{
65		inputDirectoryPath:    "google/cloud/billing/v1",
66		pkg:                   "billing",
67		importPath:            "cloud.google.com/go/billing/apiv1",
68		gRPCServiceConfigPath: "google/cloud/billing/v1/cloud_billing_grpc_service_config.json",
69		apiServiceConfigPath:  "google/cloud/billing/v1/cloudbilling.yaml",
70		releaseLevel:          "ga",
71	},
72	{
73		inputDirectoryPath:    "google/cloud/language/v1",
74		pkg:                   "language",
75		importPath:            "cloud.google.com/go/language/apiv1",
76		gRPCServiceConfigPath: "google/cloud/language/v1/language_grpc_service_config.json",
77		apiServiceConfigPath:  "google/cloud/language/language_v1.yaml",
78		releaseLevel:          "ga",
79	},
80	{
81		inputDirectoryPath:    "google/cloud/language/v1beta2",
82		pkg:                   "language",
83		importPath:            "cloud.google.com/go/language/apiv1beta2",
84		gRPCServiceConfigPath: "google/cloud/language/v1beta2/language_grpc_service_config.json",
85		apiServiceConfigPath:  "google/cloud/language/v1beta2/language_v1beta2.yaml",
86		releaseLevel:          "beta",
87	},
88	{
89		inputDirectoryPath:    "google/cloud/memcache/v1beta2",
90		pkg:                   "memcache",
91		importPath:            "cloud.google.com/go/memcache/apiv1beta2",
92		gRPCServiceConfigPath: "google/cloud/memcache/v1beta2/memcache_grpc_service_config.json",
93		apiServiceConfigPath:  "google/cloud/memcache/v1beta2/memcache_v1beta2.yaml",
94		releaseLevel:          "beta",
95	},
96	{
97		inputDirectoryPath:    "google/cloud/phishingprotection/v1beta1",
98		pkg:                   "phishingprotection",
99		importPath:            "cloud.google.com/go/phishingprotection/apiv1beta1",
100		gRPCServiceConfigPath: "google/cloud/phishingprotection/v1beta1/phishingprotection_grpc_service_config.json",
101		apiServiceConfigPath:  "google/cloud/phishingprotection/v1beta1/phishingprotection_v1beta1.yaml",
102		releaseLevel:          "beta",
103	},
104	{
105		inputDirectoryPath:    "google/cloud/translate/v3",
106		pkg:                   "translate",
107		importPath:            "cloud.google.com/go/translate/apiv3",
108		gRPCServiceConfigPath: "google/cloud/translate/v3/translate_grpc_service_config.json",
109		apiServiceConfigPath:  "google/cloud/translate/v3/translate_v3.yaml",
110		releaseLevel:          "ga",
111	},
112	{
113		inputDirectoryPath:    "google/cloud/scheduler/v1",
114		pkg:                   "scheduler",
115		importPath:            "cloud.google.com/go/scheduler/apiv1",
116		gRPCServiceConfigPath: "google/cloud/scheduler/v1/cloudscheduler_grpc_service_config.json",
117		apiServiceConfigPath:  "google/cloud/scheduler/v1/cloudscheduler_v1.yaml",
118		releaseLevel:          "ga",
119	},
120	{
121		inputDirectoryPath:    "google/cloud/scheduler/v1beta1",
122		pkg:                   "scheduler",
123		importPath:            "cloud.google.com/go/scheduler/apiv1beta1",
124		gRPCServiceConfigPath: "google/cloud/scheduler/v1beta1/cloudscheduler_grpc_service_config.json",
125		apiServiceConfigPath:  "google/cloud/scheduler/v1beta1/cloudscheduler_v1beta1.yaml",
126		releaseLevel:          "beta",
127	},
128	{
129		inputDirectoryPath:    "google/cloud/speech/v1",
130		pkg:                   "speech",
131		importPath:            "cloud.google.com/go/speech/apiv1",
132		gRPCServiceConfigPath: "google/cloud/speech/v1/speech_grpc_service_config.json",
133		apiServiceConfigPath:  "google/cloud/speech/v1/speech_v1.yaml",
134		releaseLevel:          "ga",
135	},
136	{
137		inputDirectoryPath:    "google/cloud/speech/v1p1beta1",
138		pkg:                   "speech",
139		importPath:            "cloud.google.com/go/speech/apiv1p1beta1",
140		gRPCServiceConfigPath: "google/cloud/speech/v1p1beta1/speech_grpc_service_config.json",
141		apiServiceConfigPath:  "google/cloud/speech/v1p1beta1/speech_v1p1beta1.yaml",
142		releaseLevel:          "beta",
143	},
144	{
145		inputDirectoryPath:    "google/cloud/bigquery/connection/v1beta1",
146		pkg:                   "connection",
147		importPath:            "cloud.google.com/go/bigquery/connection/apiv1beta1",
148		gRPCServiceConfigPath: "google/cloud/bigquery/connection/v1beta1/bigqueryconnection_grpc_service_config.json",
149		apiServiceConfigPath:  "google/cloud/bigquery/connection/v1beta1/bigqueryconnection_v1beta1.yaml",
150		releaseLevel:          "beta",
151	},
152	{
153		inputDirectoryPath:    "google/cloud/bigquery/connection/v1",
154		pkg:                   "connection",
155		importPath:            "cloud.google.com/go/bigquery/connection/apiv1",
156		gRPCServiceConfigPath: "google/cloud/bigquery/connection/v1/bigqueryconnection_grpc_service_config.json",
157		apiServiceConfigPath:  "google/cloud/bigquery/connection/v1/bigqueryconnection_v1.yaml",
158		releaseLevel:          "beta",
159	},
160	{
161		inputDirectoryPath:    "google/cloud/bigquery/datatransfer/v1",
162		pkg:                   "datatransfer",
163		importPath:            "cloud.google.com/go/bigquery/datatransfer/apiv1",
164		gRPCServiceConfigPath: "google/cloud/bigquery/datatransfer/v1/bigquerydatatransfer_grpc_service_config.json",
165		apiServiceConfigPath:  "google/cloud/bigquery/datatransfer/v1/bigquerydatatransfer_v1.yaml",
166		releaseLevel:          "ga",
167	},
168	{
169		inputDirectoryPath:    "google/cloud/bigquery/reservation/v1beta1",
170		pkg:                   "reservation",
171		importPath:            "cloud.google.com/go/bigquery/reservation/apiv1beta1",
172		gRPCServiceConfigPath: "google/cloud/bigquery/reservation/v1beta1/bigqueryreservation_grpc_service_config.json",
173		apiServiceConfigPath:  "google/cloud/bigquery/reservation/v1beta1/bigqueryreservation_v1beta1.yaml",
174		releaseLevel:          "beta",
175	},
176	{
177		inputDirectoryPath:    "google/cloud/bigquery/reservation/v1",
178		pkg:                   "reservation",
179		importPath:            "cloud.google.com/go/bigquery/reservation/apiv1",
180		gRPCServiceConfigPath: "google/cloud/bigquery/reservation/v1/bigqueryreservation_grpc_service_config.json",
181		apiServiceConfigPath:  "google/cloud/bigquery/reservation/v1/bigqueryreservation_v1.yaml",
182		releaseLevel:          "ga",
183	},
184	{
185		inputDirectoryPath:    "google/cloud/bigquery/storage/v1alpha2",
186		pkg:                   "storage",
187		importPath:            "cloud.google.com/go/bigquery/storage/apiv1alpha2",
188		gRPCServiceConfigPath: "google/cloud/bigquery/storage/v1alpha2/bigquerystorage_grpc_service_config.json",
189		apiServiceConfigPath:  "google/cloud/bigquery/storage/v1alpha2/bigquerystorage_v1alpha2.yaml",
190		releaseLevel:          "alpha",
191	},
192	{
193		inputDirectoryPath:    "google/cloud/bigquery/storage/v1beta1",
194		pkg:                   "storage",
195		importPath:            "cloud.google.com/go/bigquery/storage/apiv1beta1",
196		gRPCServiceConfigPath: "google/cloud/bigquery/storage/v1beta1/bigquerystorage_grpc_service_config.json",
197		apiServiceConfigPath:  "google/cloud/bigquery/storage/v1beta1/bigquerystorage_v1beta1.yaml",
198		releaseLevel:          "beta",
199	},
200	{
201		inputDirectoryPath:    "google/cloud/bigquery/storage/v1beta2",
202		pkg:                   "storage",
203		importPath:            "cloud.google.com/go/bigquery/storage/apiv1beta2",
204		gRPCServiceConfigPath: "google/cloud/bigquery/storage/v1beta2/bigquerystorage_grpc_service_config.json",
205		apiServiceConfigPath:  "google/cloud/bigquery/storage/v1beta2/bigquerystorage_v1beta2.yaml",
206		releaseLevel:          "beta",
207	},
208	{
209		inputDirectoryPath:    "google/cloud/bigquery/storage/v1",
210		pkg:                   "storage",
211		importPath:            "cloud.google.com/go/bigquery/storage/apiv1",
212		gRPCServiceConfigPath: "google/cloud/bigquery/storage/v1/bigquerystorage_grpc_service_config.json",
213		apiServiceConfigPath:  "google/cloud/bigquery/storage/v1/bigquerystorage_v1.yaml",
214		releaseLevel:          "ga",
215	},
216	{
217		inputDirectoryPath:    "google/cloud/iot/v1",
218		pkg:                   "iot",
219		importPath:            "cloud.google.com/go/iot/apiv1",
220		gRPCServiceConfigPath: "google/cloud/iot/v1/cloudiot_grpc_service_config.json",
221		apiServiceConfigPath:  "google/cloud/iot/v1/cloudiot_v1.yaml",
222		releaseLevel:          "ga",
223	},
224	{
225		inputDirectoryPath:    "google/cloud/recommender/v1beta1",
226		pkg:                   "recommender",
227		importPath:            "cloud.google.com/go/recommender/apiv1beta1",
228		gRPCServiceConfigPath: "google/cloud/recommender/v1beta1/recommender_grpc_service_config.json",
229		apiServiceConfigPath:  "google/cloud/recommender/v1beta1/recommender_v1beta1.yaml",
230		releaseLevel:          "beta",
231	},
232	{
233		inputDirectoryPath:    "google/cloud/tasks/v2",
234		pkg:                   "cloudtasks",
235		importPath:            "cloud.google.com/go/cloudtasks/apiv2",
236		gRPCServiceConfigPath: "google/cloud/tasks/v2/cloudtasks_grpc_service_config.json",
237		apiServiceConfigPath:  "google/cloud/tasks/v2/cloudtasks_v2.yaml",
238		releaseLevel:          "ga",
239	},
240	{
241		inputDirectoryPath:    "google/cloud/tasks/v2beta2",
242		pkg:                   "cloudtasks",
243		importPath:            "cloud.google.com/go/cloudtasks/apiv2beta2",
244		gRPCServiceConfigPath: "google/cloud/tasks/v2beta2/cloudtasks_grpc_service_config.json",
245		apiServiceConfigPath:  "google/cloud/tasks/v2beta2/cloudtasks_v2beta2.yaml",
246		releaseLevel:          "beta",
247	},
248	{
249		inputDirectoryPath:    "google/cloud/tasks/v2beta3",
250		pkg:                   "cloudtasks",
251		importPath:            "cloud.google.com/go/cloudtasks/apiv2beta3",
252		gRPCServiceConfigPath: "google/cloud/tasks/v2beta3/cloudtasks_grpc_service_config.json",
253		apiServiceConfigPath:  "google/cloud/tasks/v2beta3/cloudtasks_v2beta3.yaml",
254		releaseLevel:          "beta",
255	},
256	{
257		inputDirectoryPath:    "google/cloud/videointelligence/v1",
258		pkg:                   "videointelligence",
259		importPath:            "cloud.google.com/go/videointelligence/apiv1",
260		gRPCServiceConfigPath: "google/cloud/videointelligence/v1/videointelligence_grpc_service_config.json",
261		apiServiceConfigPath:  "google/cloud/videointelligence/v1/videointelligence_v1.yaml",
262		releaseLevel:          "ga",
263	},
264	{
265		inputDirectoryPath:    "google/cloud/vision/v1",
266		pkg:                   "vision",
267		importPath:            "cloud.google.com/go/vision/apiv1",
268		gRPCServiceConfigPath: "google/cloud/vision/v1/vision_grpc_service_config.json",
269		apiServiceConfigPath:  "google/cloud/vision/v1/vision_v1.yaml",
270		releaseLevel:          "ga",
271	},
272	{
273		inputDirectoryPath:    "google/cloud/webrisk/v1",
274		pkg:                   "webrisk",
275		importPath:            "cloud.google.com/go/webrisk/apiv1",
276		gRPCServiceConfigPath: "google/cloud/webrisk/v1/webrisk_grpc_service_config.json",
277		apiServiceConfigPath:  "google/cloud/webrisk/v1/webrisk_v1.yaml",
278		releaseLevel:          "beta",
279	},
280	{
281		inputDirectoryPath:    "google/cloud/webrisk/v1beta1",
282		pkg:                   "webrisk",
283		importPath:            "cloud.google.com/go/webrisk/apiv1beta1",
284		gRPCServiceConfigPath: "google/cloud/webrisk/v1beta1/webrisk_grpc_service_config.json",
285		apiServiceConfigPath:  "google/cloud/webrisk/v1beta1/webrisk_v1beta1.yaml",
286		releaseLevel:          "beta",
287	},
288	{
289		inputDirectoryPath:    "google/cloud/secretmanager/v1",
290		pkg:                   "secretmanager",
291		importPath:            "cloud.google.com/go/secretmanager/apiv1",
292		gRPCServiceConfigPath: "google/cloud/secretmanager/v1/secretmanager_grpc_service_config.json",
293		apiServiceConfigPath:  "google/cloud/secretmanager/v1/secretmanager_v1.yaml",
294		releaseLevel:          "ga",
295	},
296	{
297		inputDirectoryPath:    "google/cloud/secrets/v1beta1",
298		pkg:                   "secretmanager",
299		importPath:            "cloud.google.com/go/secretmanager/apiv1beta1",
300		gRPCServiceConfigPath: "google/cloud/secrets/v1beta1/secretmanager_grpc_service_config.json",
301		apiServiceConfigPath:  "google/cloud/secrets/v1beta1/secretmanager_v1beta1.yaml",
302		releaseLevel:          "beta",
303	},
304	{
305		inputDirectoryPath:    "google/cloud/osconfig/v1",
306		pkg:                   "osconfig",
307		importPath:            "cloud.google.com/go/osconfig/apiv1",
308		gRPCServiceConfigPath: "google/cloud/osconfig/v1/osconfig_grpc_service_config.json",
309		apiServiceConfigPath:  "google/cloud/osconfig/v1/osconfig_v1.yaml",
310		releaseLevel:          "ga",
311	},
312	{
313		inputDirectoryPath:    "google/cloud/osconfig/v1beta",
314		pkg:                   "osconfig",
315		importPath:            "cloud.google.com/go/osconfig/apiv1beta",
316		gRPCServiceConfigPath: "google/cloud/osconfig/v1beta/osconfig_grpc_service_config.json",
317		apiServiceConfigPath:  "google/cloud/osconfig/v1beta/osconfig_v1beta.yaml",
318		releaseLevel:          "beta",
319	},
320	{
321		inputDirectoryPath:    "google/cloud/osconfig/agentendpoint/v1",
322		pkg:                   "agentendpoint",
323		importPath:            "cloud.google.com/go/osconfig/agentendpoint/apiv1",
324		gRPCServiceConfigPath: "google/cloud/osconfig/agentendpoint/v1/agentendpoint_grpc_service_config.json",
325		apiServiceConfigPath:  "google/cloud/osconfig/agentendpoint/v1/osconfig_v1.yaml",
326		releaseLevel:          "beta",
327	},
328	{
329		inputDirectoryPath:    "google/cloud/osconfig/agentendpoint/v1beta",
330		pkg:                   "agentendpoint",
331		importPath:            "cloud.google.com/go/osconfig/agentendpoint/apiv1beta",
332		gRPCServiceConfigPath: "google/cloud/osconfig/agentendpoint/v1beta/agentendpoint_grpc_service_config.json",
333		apiServiceConfigPath:  "google/cloud/osconfig/agentendpoint/v1beta/osconfig_v1beta.yaml",
334		releaseLevel:          "beta",
335	},
336	{
337		inputDirectoryPath:    "google/cloud/datacatalog/v1",
338		pkg:                   "datacatalog",
339		importPath:            "cloud.google.com/go/datacatalog/apiv1",
340		gRPCServiceConfigPath: "google/cloud/datacatalog/v1/datacatalog_grpc_service_config.json",
341		apiServiceConfigPath:  "google/cloud/datacatalog/v1/datacatalog_v1.yaml",
342		releaseLevel:          "ga",
343	},
344	{
345		inputDirectoryPath:    "google/cloud/datacatalog/v1beta1",
346		pkg:                   "datacatalog",
347		importPath:            "cloud.google.com/go/datacatalog/apiv1beta1",
348		gRPCServiceConfigPath: "google/cloud/datacatalog/v1beta1/datacatalog_grpc_service_config.json",
349		apiServiceConfigPath:  "google/cloud/datacatalog/v1beta1/datacatalog_v1beta1.yaml",
350		releaseLevel:          "beta",
351	},
352	{
353		inputDirectoryPath:    "google/cloud/dataproc/v1",
354		pkg:                   "dataproc",
355		importPath:            "cloud.google.com/go/dataproc/apiv1",
356		gRPCServiceConfigPath: "google/cloud/dataproc/v1/dataproc_grpc_service_config.json",
357		apiServiceConfigPath:  "google/cloud/dataproc/v1/dataproc_v1.yaml",
358		releaseLevel:          "ga",
359	},
360	{
361		inputDirectoryPath:    "google/cloud/dataproc/v1beta2",
362		pkg:                   "dataproc",
363		importPath:            "cloud.google.com/go/dataproc/apiv1beta2",
364		gRPCServiceConfigPath: "google/cloud/dataproc/v1beta2/dataproc_grpc_service_config.json",
365		apiServiceConfigPath:  "google/cloud/dataproc/v1beta2/dataproc_v1beta2.yaml",
366		releaseLevel:          "beta",
367	},
368	{
369		inputDirectoryPath:    "google/cloud/irm/v1alpha2",
370		pkg:                   "irm",
371		importPath:            "cloud.google.com/go/irm/apiv1alpha2",
372		gRPCServiceConfigPath: "google/cloud/irm/v1alpha2/irm_grpc_service_config.json",
373		apiServiceConfigPath:  "google/cloud/irm/irm_v1alpha2.yaml",
374		releaseLevel:          "alpha",
375	},
376	{
377		inputDirectoryPath:    "google/cloud/kms/v1",
378		pkg:                   "kms",
379		importPath:            "cloud.google.com/go/kms/apiv1",
380		gRPCServiceConfigPath: "google/cloud/kms/v1/cloudkms_grpc_service_config.json",
381		apiServiceConfigPath:  "google/cloud/kms/v1/cloudkms_v1.yaml",
382		releaseLevel:          "ga",
383	},
384	{
385		inputDirectoryPath:    "google/cloud/oslogin/v1",
386		pkg:                   "oslogin",
387		importPath:            "cloud.google.com/go/oslogin/apiv1",
388		gRPCServiceConfigPath: "google/cloud/oslogin/v1/oslogin_grpc_service_config.json",
389		apiServiceConfigPath:  "google/cloud/oslogin/v1/oslogin_v1.yaml",
390		releaseLevel:          "ga",
391	},
392	{
393		inputDirectoryPath:    "google/cloud/oslogin/v1beta",
394		pkg:                   "oslogin",
395		importPath:            "cloud.google.com/go/oslogin/apiv1beta",
396		gRPCServiceConfigPath: "google/cloud/oslogin/v1beta/oslogin_grpc_service_config.json",
397		apiServiceConfigPath:  "google/cloud/oslogin/v1beta/oslogin_v1beta.yaml",
398		releaseLevel:          "beta",
399	},
400	{
401		inputDirectoryPath:    "google/cloud/recaptchaenterprise/v1",
402		pkg:                   "recaptchaenterprise",
403		importPath:            "cloud.google.com/go/recaptchaenterprise/apiv1",
404		gRPCServiceConfigPath: "google/cloud/recaptchaenterprise/v1/recaptchaenterprise_grpc_service_config.json",
405		apiServiceConfigPath:  "google/cloud/recaptchaenterprise/v1/recaptchaenterprise_v1.yaml",
406		releaseLevel:          "beta",
407	},
408	{
409		inputDirectoryPath:    "google/cloud/recaptchaenterprise/v1beta1",
410		pkg:                   "recaptchaenterprise",
411		importPath:            "cloud.google.com/go/recaptchaenterprise/apiv1beta1",
412		gRPCServiceConfigPath: "google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_grpc_service_config.json",
413		apiServiceConfigPath:  "google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise_v1beta1.yaml",
414		releaseLevel:          "beta",
415	},
416	{
417		inputDirectoryPath:    "google/cloud/redis/v1",
418		pkg:                   "redis",
419		importPath:            "cloud.google.com/go/redis/apiv1",
420		gRPCServiceConfigPath: "google/cloud/redis/v1/redis_grpc_service_config.json",
421		apiServiceConfigPath:  "google/cloud/redis/v1/redis_v1.yaml",
422		releaseLevel:          "ga",
423	},
424	{
425		inputDirectoryPath:    "google/cloud/redis/v1beta1",
426		pkg:                   "redis",
427		importPath:            "cloud.google.com/go/redis/apiv1beta1",
428		gRPCServiceConfigPath: "google/cloud/redis/v1beta1/redis_grpc_service_config.json",
429		apiServiceConfigPath:  "google/cloud/redis/v1beta1/redis_v1beta1.yaml",
430		releaseLevel:          "beta",
431	},
432	{
433		inputDirectoryPath:    "google/devtools/clouddebugger/v2",
434		pkg:                   "debugger",
435		importPath:            "cloud.google.com/go/debugger/apiv2",
436		gRPCServiceConfigPath: "google/devtools/clouddebugger/v2/clouddebugger_grpc_service_config.json",
437		apiServiceConfigPath:  "google/devtools/clouddebugger/v2/clouddebugger_v2.yaml",
438		releaseLevel:          "ga",
439	},
440	{
441		inputDirectoryPath:    "google/devtools/clouderrorreporting/v1beta1",
442		pkg:                   "errorreporting",
443		importPath:            "cloud.google.com/go/errorreporting/apiv1beta1",
444		gRPCServiceConfigPath: "google/devtools/clouderrorreporting/v1beta1/errorreporting_grpc_service_config.json",
445		apiServiceConfigPath:  "google/devtools/clouderrorreporting/v1beta1/clouderrorreporting_v1beta1.yaml",
446		releaseLevel:          "beta",
447	},
448	{
449		inputDirectoryPath:    "google/devtools/cloudtrace/v1",
450		pkg:                   "trace",
451		importPath:            "cloud.google.com/go/trace/apiv1",
452		gRPCServiceConfigPath: "google/devtools/cloudtrace/v1/cloudtrace_grpc_service_config.json",
453		apiServiceConfigPath:  "google/devtools/cloudtrace/v1/cloudtrace_v1.yaml",
454		releaseLevel:          "ga",
455	},
456	{
457		inputDirectoryPath:    "google/devtools/cloudtrace/v2",
458		pkg:                   "trace",
459		importPath:            "cloud.google.com/go/trace/apiv2",
460		gRPCServiceConfigPath: "google/devtools/cloudtrace/v2/cloudtrace_grpc_service_config.json",
461		apiServiceConfigPath:  "google/devtools/cloudtrace/v2/cloudtrace_v2.yaml",
462		releaseLevel:          "ga",
463	},
464	{
465		inputDirectoryPath:    "google/privacy/dlp/v2",
466		pkg:                   "dlp",
467		importPath:            "cloud.google.com/go/dlp/apiv2",
468		gRPCServiceConfigPath: "google/privacy/dlp/v2/dlp_grpc_service_config.json",
469		apiServiceConfigPath:  "google/privacy/dlp/v2/dlp_v2.yaml",
470		releaseLevel:          "ga",
471	},
472	{
473		inputDirectoryPath:    "google/datastore/admin/v1",
474		pkg:                   "admin",
475		importPath:            "cloud.google.com/go/datastore/admin/apiv1",
476		gRPCServiceConfigPath: "google/datastore/admin/v1/datastore_admin_grpc_service_config.json",
477		apiServiceConfigPath:  "google/datastore/admin/v1/datastore_admin_v1.yaml",
478		releaseLevel:          "alpha",
479	},
480	{
481		inputDirectoryPath:    "google/spanner/admin/database/v1",
482		pkg:                   "database",
483		importPath:            "cloud.google.com/go/spanner/admin/database/apiv1",
484		gRPCServiceConfigPath: "google/spanner/admin/database/v1/spanner_admin_database_grpc_service_config.json",
485		apiServiceConfigPath:  "google/spanner/admin/database/v1/spanner_admin_database.yaml",
486		releaseLevel:          "ga",
487	},
488	{
489		inputDirectoryPath:    "google/spanner/admin/instance/v1",
490		pkg:                   "instance",
491		importPath:            "cloud.google.com/go/spanner/admin/instance/apiv1",
492		gRPCServiceConfigPath: "google/spanner/admin/instance/v1/spanner_admin_instance_grpc_service_config.json",
493		apiServiceConfigPath:  "google/spanner/admin/instance/v1/spanner_admin_instance.yaml",
494		releaseLevel:          "ga",
495	},
496	{
497		inputDirectoryPath:    "google/spanner/v1",
498		pkg:                   "spanner",
499		importPath:            "cloud.google.com/go/spanner/apiv1",
500		gRPCServiceConfigPath: "google/spanner/v1/spanner_grpc_service_config.json",
501		apiServiceConfigPath:  "google/spanner/v1/spanner.yaml",
502		releaseLevel:          "ga",
503	},
504	{
505		inputDirectoryPath:    "google/cloud/securitycenter/settings/v1beta1",
506		pkg:                   "settings",
507		importPath:            "cloud.google.com/go/securitycenter/settings/apiv1beta1",
508		gRPCServiceConfigPath: "google/cloud/securitycenter/settings/v1beta1/securitycenter_settings_grpc_service_config.json",
509		apiServiceConfigPath:  "google/cloud/securitycenter/settings/v1beta1/securitycenter_settings.yaml",
510		releaseLevel:          "beta",
511	},
512	{
513		inputDirectoryPath:    "google/cloud/securitycenter/v1",
514		pkg:                   "securitycenter",
515		importPath:            "cloud.google.com/go/securitycenter/apiv1",
516		gRPCServiceConfigPath: "google/cloud/securitycenter/v1/securitycenter_grpc_service_config.json",
517		apiServiceConfigPath:  "google/cloud/securitycenter/v1/securitycenter_v1.yaml",
518		releaseLevel:          "ga",
519	},
520	{
521		inputDirectoryPath:    "google/cloud/securitycenter/v1beta1",
522		pkg:                   "securitycenter",
523		importPath:            "cloud.google.com/go/securitycenter/apiv1beta1",
524		gRPCServiceConfigPath: "google/cloud/securitycenter/v1beta1/securitycenter_grpc_service_config.json",
525		apiServiceConfigPath:  "google/cloud/securitycenter/v1beta1/securitycenter_v1beta1.yaml",
526		releaseLevel:          "beta",
527	},
528	{
529		inputDirectoryPath:    "google/cloud/securitycenter/v1p1beta1",
530		pkg:                   "securitycenter",
531		importPath:            "cloud.google.com/go/securitycenter/apiv1p1beta1",
532		gRPCServiceConfigPath: "google/cloud/securitycenter/v1p1beta1/securitycenter_grpc_service_config.json",
533		apiServiceConfigPath:  "google/cloud/securitycenter/v1p1beta1/securitycenter_v1p1beta1.yaml",
534		releaseLevel:          "beta",
535	},
536	{
537		inputDirectoryPath:    "google/firestore/admin/v1",
538		pkg:                   "apiv1",
539		importPath:            "cloud.google.com/go/firestore/apiv1/admin",
540		gRPCServiceConfigPath: "google/firestore/admin/v1/firestore_admin_grpc_service_config.json",
541		apiServiceConfigPath:  "google/firestore/admin/firestore_admin_v1.yaml",
542		releaseLevel:          "ga",
543	},
544	{
545		inputDirectoryPath:    "google/firestore/v1",
546		pkg:                   "firestore",
547		importPath:            "cloud.google.com/go/firestore/apiv1",
548		gRPCServiceConfigPath: "google/firestore/v1/firestore_grpc_service_config.json",
549		apiServiceConfigPath:  "google/firestore/v1/firestore_v1.yaml",
550		releaseLevel:          "ga",
551	},
552	{
553		inputDirectoryPath:    "google/devtools/cloudbuild/v1",
554		pkg:                   "cloudbuild",
555		importPath:            "cloud.google.com/go/cloudbuild/apiv1/v2",
556		gRPCServiceConfigPath: "google/devtools/cloudbuild/v1/cloudbuild_grpc_service_config.json",
557		apiServiceConfigPath:  "google/devtools/cloudbuild/v1/cloudbuild_v1.yaml",
558		releaseLevel:          "ga",
559	},
560	{
561		inputDirectoryPath:    "google/cloud/dialogflow/v2",
562		pkg:                   "dialogflow",
563		importPath:            "cloud.google.com/go/dialogflow/apiv2",
564		gRPCServiceConfigPath: "google/cloud/dialogflow/v2/dialogflow_grpc_service_config.json",
565		apiServiceConfigPath:  "google/cloud/dialogflow/v2/dialogflow_v2.yaml",
566		releaseLevel:          "ga",
567	},
568	{
569		inputDirectoryPath:    "google/iam/credentials/v1",
570		pkg:                   "credentials",
571		importPath:            "cloud.google.com/go/iam/credentials/apiv1",
572		gRPCServiceConfigPath: "google/iam/credentials/v1/iamcredentials_grpc_service_config.json",
573		apiServiceConfigPath:  "google/iam/credentials/v1/iamcredentials_v1.yaml",
574		releaseLevel:          "ga",
575	},
576	{
577		inputDirectoryPath:    "google/longrunning",
578		pkg:                   "longrunning",
579		importPath:            "cloud.google.com/go/longrunning/autogen",
580		gRPCServiceConfigPath: "google/longrunning/longrunning_grpc_service_config.json",
581		apiServiceConfigPath:  "google/longrunning/longrunning.yaml",
582		releaseLevel:          "alpha",
583	},
584	{
585		inputDirectoryPath:    "google/devtools/containeranalysis/v1beta1",
586		pkg:                   "containeranalysis",
587		importPath:            "cloud.google.com/go/containeranalysis/apiv1beta1",
588		gRPCServiceConfigPath: "google/devtools/containeranalysis/v1beta1/containeranalysis_grpc_service_config.json",
589		apiServiceConfigPath:  "google/devtools/containeranalysis/v1beta1/containeranalysis_v1beta1.yaml",
590		releaseLevel:          "beta",
591	},
592	{
593		// The grafeas v1beta1 client must be generated in the same package as containeranalysis v1beta1,
594		// but the proto is in a sub-directory of the containeranalysis v1beta1 protos.
595		inputDirectoryPath:    "google/devtools/containeranalysis/v1beta1/grafeas",
596		pkg:                   "containeranalysis",
597		importPath:            "cloud.google.com/go/containeranalysis/apiv1beta1",
598		gRPCServiceConfigPath: "google/devtools/containeranalysis/v1beta1/containeranalysis_grpc_service_config.json",
599		apiServiceConfigPath:  "google/devtools/containeranalysis/v1beta1/containeranalysis_v1beta1.yaml",
600		releaseLevel:          "beta",
601	},
602	{
603		inputDirectoryPath:    "google/cloud/recommender/v1",
604		pkg:                   "recommender",
605		importPath:            "cloud.google.com/go/recommender/apiv1",
606		gRPCServiceConfigPath: "google/cloud/recommender/v1/recommender_grpc_service_config.json",
607		apiServiceConfigPath:  "google/cloud/recommender/v1/recommender_v1.yaml",
608		releaseLevel:          "ga",
609	},
610	{
611		inputDirectoryPath:    "google/cloud/videointelligence/v1beta2",
612		pkg:                   "videointelligence",
613		importPath:            "cloud.google.com/go/videointelligence/apiv1beta2",
614		gRPCServiceConfigPath: "google/cloud/videointelligence/v1beta2/videointelligence_grpc_service_config.json",
615		apiServiceConfigPath:  "google/cloud/videointelligence/videointelligence_v1beta2.yaml",
616		releaseLevel:          "beta",
617	},
618	{
619		inputDirectoryPath:    "google/cloud/asset/v1beta1",
620		pkg:                   "asset",
621		importPath:            "cloud.google.com/go/asset/apiv1beta1",
622		gRPCServiceConfigPath: "google/cloud/asset/v1beta1/cloudasset_grpc_service_config.json",
623		apiServiceConfigPath:  "google/cloud/asset/v1beta1/cloudasset_v1beta1.yaml",
624		releaseLevel:          "beta",
625	},
626	{
627		inputDirectoryPath:    "google/cloud/asset/v1p2beta1",
628		pkg:                   "asset",
629		importPath:            "cloud.google.com/go/asset/apiv1p2beta1",
630		gRPCServiceConfigPath: "google/cloud/asset/v1p2beta1/cloudasset_grpc_service_config.json",
631		apiServiceConfigPath:  "google/cloud/asset/v1p2beta1/cloudasset_v1p2beta1.yaml",
632		releaseLevel:          "beta",
633	},
634	{
635		inputDirectoryPath:    "google/monitoring/v3",
636		pkg:                   "monitoring",
637		importPath:            "cloud.google.com/go/monitoring/apiv3/v2",
638		gRPCServiceConfigPath: "google/monitoring/v3/monitoring_grpc_service_config.json",
639		apiServiceConfigPath:  "google/monitoring/v3/monitoring.yaml",
640		releaseLevel:          "ga",
641	},
642	{
643		inputDirectoryPath:    "google/cloud/vision/v1p1beta1",
644		pkg:                   "vision",
645		importPath:            "cloud.google.com/go/vision/apiv1p1beta1",
646		gRPCServiceConfigPath: "google/cloud/vision/v1p1beta1/vision_grpc_service_config.json",
647		apiServiceConfigPath:  "google/cloud/vision/v1p1beta1/vision_v1p1beta1.yaml",
648		releaseLevel:          "beta",
649	},
650	{
651		inputDirectoryPath:    "google/logging/v2",
652		pkg:                   "logging",
653		importPath:            "cloud.google.com/go/logging/apiv2",
654		gRPCServiceConfigPath: "google/logging/v2/logging_grpc_service_config.json",
655		apiServiceConfigPath:  "google/logging/v2/logging.yaml",
656		releaseLevel:          "ga",
657	},
658	{
659		inputDirectoryPath:    "google/cloud/talent/v4beta1",
660		pkg:                   "talent",
661		importPath:            "cloud.google.com/go/talent/apiv4beta1",
662		gRPCServiceConfigPath: "google/cloud/talent/v4beta1/talent_grpc_service_config.json",
663		apiServiceConfigPath:  "google/cloud/talent/v4beta1/jobs_v4beta1.yaml",
664		releaseLevel:          "beta",
665	},
666	{
667		inputDirectoryPath:    "google/pubsub/v1",
668		pkg:                   "pubsub",
669		importPath:            "cloud.google.com/go/pubsub/apiv1",
670		gRPCServiceConfigPath: "google/pubsub/v1/pubsub_grpc_service_config.json",
671		apiServiceConfigPath:  "google/pubsub/v1/pubsub_v1.yaml",
672		releaseLevel:          "ga",
673	},
674	{
675		inputDirectoryPath:    "google/cloud/automl/v1",
676		pkg:                   "automl",
677		importPath:            "cloud.google.com/go/automl/apiv1",
678		gRPCServiceConfigPath: "google/cloud/automl/v1/automl_grpc_service_config.json",
679		apiServiceConfigPath:  "google/cloud/automl/v1/automl_v1.yaml",
680		releaseLevel:          "ga",
681	},
682	{
683		inputDirectoryPath:    "google/cloud/automl/v1beta1",
684		pkg:                   "automl",
685		importPath:            "cloud.google.com/go/automl/apiv1beta1",
686		gRPCServiceConfigPath: "google/cloud/automl/v1beta1/automl_grpc_service_config.json",
687		apiServiceConfigPath:  "google/cloud/automl/v1beta1/automl_v1beta1.yaml",
688		releaseLevel:          "beta",
689	},
690	{
691		inputDirectoryPath:    "google/container/v1",
692		pkg:                   "container",
693		importPath:            "cloud.google.com/go/container/apiv1",
694		gRPCServiceConfigPath: "google/container/v1/container_grpc_service_config.json",
695		apiServiceConfigPath:  "google/container/v1/container_v1.yaml",
696		releaseLevel:          "ga",
697	},
698	{
699		inputDirectoryPath:    "google/cloud/servicedirectory/v1beta1",
700		pkg:                   "servicedirectory",
701		importPath:            "cloud.google.com/go/servicedirectory/apiv1beta1",
702		gRPCServiceConfigPath: "google/cloud/servicedirectory/v1beta1/servicedirectory_grpc_service_config.json",
703		apiServiceConfigPath:  "google/cloud/servicedirectory/v1beta1/servicedirectory_v1beta1.yaml",
704		releaseLevel:          "beta",
705	},
706}
707