Update dependencies

This commit is contained in:
mikesplain 2019-03-12 13:59:18 -04:00
parent 63c804a5ac
commit 1ce336259f
193 changed files with 9202 additions and 3739 deletions

36
Gopkg.lock generated
View File

@ -163,39 +163,39 @@
version = "v1.16.11"
[[projects]]
digest = "1:8b019763cb155094c7919d577530604dc070a05315f24b3a2b102a8f9570725f"
digest = "1:578040aa4b1d7e1f57f0654996de74a4c522887f567f824ed58eccf513104ceb"
name = "github.com/bazelbuild/bazel-gazelle"
packages = [
"cmd/gazelle",
"internal/config",
"internal/flag",
"internal/label",
"internal/language",
"internal/language/go",
"internal/language/proto",
"internal/merger",
"internal/pathtools",
"internal/repos",
"internal/resolve",
"internal/rule",
"config",
"flag",
"internal/version",
"internal/walk",
"internal/wspace",
"label",
"language",
"language/go",
"language/proto",
"merger",
"pathtools",
"repo",
"resolve",
"rule",
"walk",
]
pruneopts = "UT"
revision = "6a1b93cc9b1c7e55e7d05a6d324bcf9d87ea3ab1"
version = "0.14.0"
revision = "e443c54b396a236e0d3823f46c6a931e1c9939f2"
version = "0.17.0"
[[projects]]
digest = "1:331f668c3b6315145093a3b104c1da6be2835a3b1e7c873ad5fba82667330d44"
digest = "1:f6fd9834f9a1b421395cbe15fa964b949c38bb31fb43bc6ba88ad912b36c664e"
name = "github.com/bazelbuild/buildtools"
packages = [
"build",
"tables",
]
pruneopts = "UT"
revision = "a05406a1a855c6d8ebfc368555ace7638d83c0d9"
version = "0.6.0"
revision = "55b64c3d2ddfb57f06477c1d94ef477419c96bd6"
version = "0.22.0"
[[projects]]
digest = "1:2daf57e573d4174757646e9d416d25e4dbe4533237961a90b986091a2de12830"

View File

@ -34,7 +34,7 @@ required = [
[[override]]
name = "github.com/bazelbuild/bazel-gazelle"
version = "0.14.0"
version = "0.17.0"
# aws-sdk-go is one of our critical dependencies
[[override]]

View File

@ -17,7 +17,7 @@ go_library(
"//vendor/github.com/gogo/protobuf/proto:go_default_library",
"//vendor/github.com/gogo/protobuf/sortkeys:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/github.com/golang/protobuf/proto:go_default_library",
"//vendor/github.com/weaveworks/mesh:go_default_library",
"@com_github_golang_protobuf//proto:go_default_library",
],
)

View File

@ -8,6 +8,7 @@ go_library(
"fix-update.go",
"gazelle.go",
"langs.go",
"metaresolver.go",
"print.go",
"update-repos.go",
"version.go",
@ -16,18 +17,19 @@ go_library(
importpath = "github.com/bazelbuild/bazel-gazelle/cmd/gazelle",
visibility = ["//visibility:private"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/flag:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/language:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/language/go:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/language/proto:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/merger:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/repos:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/resolve:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/rule:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/flag:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/version:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/walk:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/language:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/language/go:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/language/proto:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/merger:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/repo:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/resolve:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/walk:go_default_library",
"//vendor/github.com/pmezard/go-difflib/difflib:go_default_library",
],
)

View File

@ -16,37 +16,74 @@ limitations under the License.
package main
import (
"bytes"
"fmt"
"io"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/rule"
"github.com/pmezard/go-difflib/difflib"
)
func diffFile(path string, newContents []byte) error {
oldContents, err := ioutil.ReadFile(path)
var exitError = fmt.Errorf("encountered changes while running diff")
func diffFile(c *config.Config, f *rule.File) error {
rel, err := filepath.Rel(c.RepoRoot, f.Path)
if err != nil {
oldContents = nil
return fmt.Errorf("error getting old path for file %q: %v", f.Path, err)
}
if bytes.Equal(oldContents, newContents) {
return nil
rel = filepath.ToSlash(rel)
date := "1970-01-01 00:00:00.000000000 +0000"
diff := difflib.UnifiedDiff{
Context: 3,
FromDate: date,
ToDate: date,
}
f, err := ioutil.TempFile("", filepath.Base(path))
if err != nil {
return err
if oldContent, err := ioutil.ReadFile(f.Path); err != nil && !os.IsNotExist(err) {
return fmt.Errorf("error reading original file: %v", err)
} else if err != nil {
diff.FromFile = "/dev/null"
} else if err == nil {
diff.A = difflib.SplitLines(string(oldContent))
if c.ReadBuildFilesDir == "" {
path, err := filepath.Rel(c.RepoRoot, f.Path)
if err != nil {
return fmt.Errorf("error getting old path for file %q: %v", f.Path, err)
}
diff.FromFile = filepath.ToSlash(path)
} else {
diff.FromFile = f.Path
}
}
f.Close()
defer os.Remove(f.Name())
if err := ioutil.WriteFile(f.Name(), newContents, 0666); err != nil {
return err
newContent := f.Format()
diff.B = difflib.SplitLines(string(newContent))
outPath := findOutputPath(c, f)
if c.WriteBuildFilesDir == "" {
path, err := filepath.Rel(c.RepoRoot, f.Path)
if err != nil {
return fmt.Errorf("error getting new path for file %q: %v", f.Path, err)
}
diff.ToFile = filepath.ToSlash(path)
} else {
diff.ToFile = outPath
}
cmd := exec.Command("diff", "-u", "--new-file", path, f.Name())
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err = cmd.Run()
if _, ok := err.(*exec.ExitError); ok {
// diff returns non-zero when files are different. This is not an error.
return nil
uc := getUpdateConfig(c)
var out io.Writer = os.Stdout
if uc.patchPath != "" {
out = &uc.patchBuffer
}
return err
if err := difflib.WriteUnifiedDiff(out, diff); err != nil {
return fmt.Errorf("error diffing %s: %v", f.Path, err)
}
if ds, _ := difflib.GetUnifiedDiffString(diff); ds != "" {
return exitError
}
return nil
}

View File

@ -16,6 +16,7 @@ limitations under the License.
package main
import (
"bytes"
"flag"
"fmt"
"io/ioutil"
@ -24,25 +25,30 @@ import (
"path/filepath"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/config"
gzflag "github.com/bazelbuild/bazel-gazelle/internal/flag"
"github.com/bazelbuild/bazel-gazelle/internal/label"
"github.com/bazelbuild/bazel-gazelle/internal/merger"
"github.com/bazelbuild/bazel-gazelle/internal/repos"
"github.com/bazelbuild/bazel-gazelle/internal/resolve"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/internal/walk"
"github.com/bazelbuild/bazel-gazelle/config"
gzflag "github.com/bazelbuild/bazel-gazelle/flag"
"github.com/bazelbuild/bazel-gazelle/label"
"github.com/bazelbuild/bazel-gazelle/language"
"github.com/bazelbuild/bazel-gazelle/merger"
"github.com/bazelbuild/bazel-gazelle/repo"
"github.com/bazelbuild/bazel-gazelle/resolve"
"github.com/bazelbuild/bazel-gazelle/rule"
"github.com/bazelbuild/bazel-gazelle/walk"
)
// updateConfig holds configuration information needed to run the fix and
// update commands. This includes everything in config.Config, but it also
// includes some additional fields that aren't relevant to other packages.
type updateConfig struct {
emit emitFunc
repos []repos.Repo
dirs []string
emit emitFunc
repos []repo.Repo
walkMode walk.Mode
patchPath string
patchBuffer bytes.Buffer
}
type emitFunc func(path string, data []byte) error
type emitFunc func(c *config.Config, f *rule.File) error
var modeFromName = map[string]emitFunc{
"print": printFile,
@ -57,7 +63,8 @@ func getUpdateConfig(c *config.Config) *updateConfig {
}
type updateConfigurer struct {
mode string
mode string
recursive bool
}
func (ucr *updateConfigurer) RegisterFlags(fs *flag.FlagSet, cmd string, c *config.Config) {
@ -67,33 +74,48 @@ func (ucr *updateConfigurer) RegisterFlags(fs *flag.FlagSet, cmd string, c *conf
c.ShouldFix = cmd == "fix"
fs.StringVar(&ucr.mode, "mode", "fix", "print: prints all of the updated BUILD files\n\tfix: rewrites all of the BUILD files in place\n\tdiff: computes the rewrite but then just does a diff")
fs.BoolVar(&ucr.recursive, "r", true, "when true, gazelle will update subdirectories recursively")
fs.StringVar(&uc.patchPath, "patch", "", "when set with -mode=diff, gazelle will write to a file instead of stdout")
}
func (ucr *updateConfigurer) CheckFlags(fs *flag.FlagSet, c *config.Config) error {
uc := getUpdateConfig(c)
var ok bool
uc.emit, ok = modeFromName[ucr.mode]
if !ok {
return fmt.Errorf("unrecognized emit mode: %q", ucr.mode)
}
c.Dirs = fs.Args()
if len(c.Dirs) == 0 {
c.Dirs = []string{"."}
if uc.patchPath != "" && ucr.mode != "diff" {
return fmt.Errorf("-patch set but -mode is %s, not diff", ucr.mode)
}
for i := range c.Dirs {
dir, err := filepath.Abs(c.Dirs[i])
dirs := fs.Args()
if len(dirs) == 0 {
dirs = []string{"."}
}
uc.dirs = make([]string, len(dirs))
for i := range dirs {
dir, err := filepath.Abs(dirs[i])
if err != nil {
return fmt.Errorf("%s: failed to find absolute path: %v", c.Dirs[i], err)
return fmt.Errorf("%s: failed to find absolute path: %v", dirs[i], err)
}
dir, err = filepath.EvalSymlinks(dir)
if err != nil {
return fmt.Errorf("%s: failed to resolve symlinks: %v", c.Dirs[i], err)
return fmt.Errorf("%s: failed to resolve symlinks: %v", dirs[i], err)
}
if !isDescendingDir(dir, c.RepoRoot) {
return fmt.Errorf("dir %q is not a subdirectory of repo root %q", dir, c.RepoRoot)
}
c.Dirs[i] = dir
uc.dirs[i] = dir
}
if ucr.recursive {
uc.walkMode = walk.VisitAllUpdateSubdirsMode
} else if c.IndexLibraries {
uc.walkMode = walk.VisitAllUpdateDirsMode
} else {
uc.walkMode = walk.UpdateDirsMode
}
return nil
@ -110,14 +132,24 @@ type visitRecord struct {
// the repository root. "" for the repository root itself.
pkgRel string
// c is the configuration for the directory with directives applied.
c *config.Config
// rules is a list of generated Go rules.
rules []*rule.Rule
// imports contains opaque import information for each rule in rules.
imports []interface{}
// empty is a list of empty Go rules that may be deleted.
empty []*rule.Rule
// file is the build file being processed.
file *rule.File
// mappedKinds are mapped kinds used during this visit.
mappedKinds []config.MappedKind
mappedKindInfo map[string]rule.KindInfo
}
type byPkgRel []visitRecord
@ -134,20 +166,24 @@ var genericLoads = []rule.LoadInfo{
}
func runFixUpdate(cmd command, args []string) error {
cexts := make([]config.Configurer, 0, len(languages)+2)
cexts = append(cexts, &config.CommonConfigurer{}, &updateConfigurer{})
kindToResolver := make(map[string]resolve.Resolver)
cexts := make([]config.Configurer, 0, len(languages)+3)
cexts = append(cexts,
&config.CommonConfigurer{},
&updateConfigurer{},
&walk.Configurer{},
&resolve.Configurer{})
mrslv := newMetaResolver()
kinds := make(map[string]rule.KindInfo)
loads := genericLoads
for _, lang := range languages {
cexts = append(cexts, lang)
for kind, info := range lang.Kinds() {
kindToResolver[kind] = lang
mrslv.AddBuiltin(kind, lang)
kinds[kind] = info
}
loads = append(loads, lang.Loads()...)
}
ruleIndex := resolve.NewRuleIndex(kindToResolver)
ruleIndex := resolve.NewRuleIndex(mrslv.Resolver)
c, err := newFixUpdateConfiguration(cmd, args, cexts, loads)
if err != nil {
@ -163,11 +199,12 @@ func runFixUpdate(cmd command, args []string) error {
// Visit all directories in the repository.
var visits []visitRecord
walk.Walk(c, cexts, func(dir, rel string, c *config.Config, update bool, f *rule.File, subdirs, regularFiles, genFiles []string) {
uc := getUpdateConfig(c)
walk.Walk(c, cexts, uc.dirs, uc.walkMode, func(dir, rel string, c *config.Config, update bool, f *rule.File, subdirs, regularFiles, genFiles []string) {
// If this file is ignored or if Gazelle was not asked to update this
// directory, just index the build file and move on.
if !update {
if f != nil {
if c.IndexLibraries && f != nil {
for _, r := range f.Rules {
ruleIndex.AddRule(c, r, f)
}
@ -184,15 +221,43 @@ func runFixUpdate(cmd command, args []string) error {
// Generate rules.
var empty, gen []*rule.Rule
var imports []interface{}
for _, l := range languages {
lempty, lgen := l.GenerateRules(c, dir, rel, f, subdirs, regularFiles, genFiles, empty, gen)
empty = append(empty, lempty...)
gen = append(gen, lgen...)
res := l.GenerateRules(language.GenerateArgs{
Config: c,
Dir: dir,
Rel: rel,
File: f,
Subdirs: subdirs,
RegularFiles: regularFiles,
GenFiles: genFiles,
OtherEmpty: empty,
OtherGen: gen})
if len(res.Gen) != len(res.Imports) {
log.Panicf("%s: language %s generated %d rules but returned %d imports", rel, l.Name(), len(res.Gen), len(res.Imports))
}
empty = append(empty, res.Empty...)
gen = append(gen, res.Gen...)
imports = append(imports, res.Imports...)
}
if f == nil && len(gen) == 0 {
return
}
// Apply and record relevant kind mappings.
var (
mappedKinds []config.MappedKind
mappedKindInfo = make(map[string]rule.KindInfo)
)
for _, r := range gen {
if repl, ok := c.KindMap[r.Kind()]; ok {
mappedKindInfo[repl.KindName] = kinds[r.Kind()]
mappedKinds = append(mappedKinds, repl)
mrslv.MappedKind(f, repl)
r.SetKind(repl.KindName)
}
}
// Insert or merge rules into the build file.
if f == nil {
f = rule.EmptyFile(filepath.Join(dir, c.DefaultBuildFileName()), rel)
@ -200,46 +265,61 @@ func runFixUpdate(cmd command, args []string) error {
r.Insert(f)
}
} else {
merger.MergeFile(f, empty, gen, merger.PreResolve, kinds)
merger.MergeFile(f, empty, gen, merger.PreResolve,
unionKindInfoMaps(kinds, mappedKindInfo))
}
visits = append(visits, visitRecord{
pkgRel: rel,
rules: gen,
empty: empty,
file: f,
pkgRel: rel,
c: c,
rules: gen,
imports: imports,
empty: empty,
file: f,
mappedKinds: mappedKinds,
mappedKindInfo: mappedKindInfo,
})
// Add library rules to the dependency resolution table.
for _, r := range f.Rules {
ruleIndex.AddRule(c, r, f)
if c.IndexLibraries {
for _, r := range f.Rules {
ruleIndex.AddRule(c, r, f)
}
}
})
uc := getUpdateConfig(c)
// Finish building the index for dependency resolution.
ruleIndex.Finish()
// Resolve dependencies.
rc := repos.NewRemoteCache(uc.repos)
rc := repo.NewRemoteCache(uc.repos)
for _, v := range visits {
for _, r := range v.rules {
for i, r := range v.rules {
from := label.New(c.RepoName, v.pkgRel, r.Name())
kindToResolver[r.Kind()].Resolve(c, ruleIndex, rc, r, from)
mrslv.Resolver(r, v.file).Resolve(v.c, ruleIndex, rc, r, v.imports[i], from)
}
merger.MergeFile(v.file, v.empty, v.rules, merger.PostResolve, kinds)
merger.MergeFile(v.file, v.empty, v.rules, merger.PostResolve,
unionKindInfoMaps(kinds, v.mappedKindInfo))
}
// Emit merged files.
var exit error
for _, v := range visits {
merger.FixLoads(v.file, loads)
content := v.file.Format()
outputPath := findOutputPath(c, v.file)
if err := uc.emit(outputPath, content); err != nil {
log.Print(err)
merger.FixLoads(v.file, applyKindMappings(v.mappedKinds, loads))
if err := uc.emit(v.c, v.file); err != nil {
if err == exitError {
exit = err
} else {
log.Print(err)
}
}
}
return nil
if uc.patchPath != "" {
if err := ioutil.WriteFile(uc.patchPath, uc.patchBuffer.Bytes(), 0666); err != nil {
return err
}
}
return exit
}
func newFixUpdateConfiguration(cmd command, args []string, cexts []config.Configurer, loads []rule.LoadInfo) (*config.Config, error) {
@ -274,7 +354,7 @@ func newFixUpdateConfiguration(cmd command, args []string, cexts []config.Config
uc := getUpdateConfig(c)
workspacePath := filepath.Join(c.RepoRoot, "WORKSPACE")
if workspace, err := rule.LoadFile(workspacePath, ""); err != nil {
if workspace, err := rule.LoadWorkspaceFile(workspacePath, ""); err != nil {
if !os.IsNotExist(err) {
return nil, err
}
@ -283,7 +363,7 @@ func newFixUpdateConfiguration(cmd command, args []string, cexts []config.Config
return nil, err
}
c.RepoName = findWorkspaceName(workspace)
uc.repos = repos.ListRepositories(workspace)
uc.repos = repo.ListRepositories(workspace)
}
repoPrefixes := make(map[string]bool)
for _, r := range uc.repos {
@ -293,7 +373,7 @@ func newFixUpdateConfiguration(cmd command, args []string, cexts []config.Config
if repoPrefixes[imp] {
continue
}
repo := repos.Repo{
repo := repo.Repo{
Name: label.ImportPathToBazelRepoName(imp),
GoPrefix: imp,
}
@ -338,7 +418,7 @@ func fixWorkspace(c *config.Config, workspace *rule.File, loads []rule.LoadInfo)
return nil
}
shouldFix := false
for _, d := range c.Dirs {
for _, d := range uc.dirs {
if d == c.RepoRoot {
shouldFix = true
}
@ -352,7 +432,7 @@ func fixWorkspace(c *config.Config, workspace *rule.File, loads []rule.LoadInfo)
if err := merger.CheckGazelleLoaded(workspace); err != nil {
return err
}
return uc.emit(workspace.Path, workspace.Format())
return uc.emit(c, workspace)
}
func findWorkspaceName(f *rule.File) string {
@ -396,3 +476,51 @@ func findOutputPath(c *config.Config, f *rule.File) string {
}
return outputPath
}
func unionKindInfoMaps(a, b map[string]rule.KindInfo) map[string]rule.KindInfo {
if len(a) == 0 {
return b
}
if len(b) == 0 {
return a
}
result := make(map[string]rule.KindInfo, len(a)+len(b))
for _, m := range []map[string]rule.KindInfo{a, b} {
for k, v := range m {
result[k] = v
}
}
return result
}
// applyKindMappings returns a copy of LoadInfo that includes c.KindMap.
func applyKindMappings(mappedKinds []config.MappedKind, loads []rule.LoadInfo) []rule.LoadInfo {
if len(mappedKinds) == 0 {
return loads
}
// Add new RuleInfos or replace existing ones with merged ones.
mappedLoads := make([]rule.LoadInfo, len(loads))
copy(mappedLoads, loads)
for _, mappedKind := range mappedKinds {
mappedLoads = appendOrMergeKindMapping(mappedLoads, mappedKind)
}
return mappedLoads
}
// appendOrMergeKindMapping adds LoadInfo for the given replacement.
func appendOrMergeKindMapping(mappedLoads []rule.LoadInfo, mappedKind config.MappedKind) []rule.LoadInfo {
// If mappedKind.KindLoad already exists in the list, create a merged copy.
for _, load := range mappedLoads {
if load.Name == mappedKind.KindLoad {
load.Symbols = append(load.Symbols, mappedKind.KindName)
return mappedLoads
}
}
// Add a new LoadInfo.
return append(mappedLoads, rule.LoadInfo{
Name: mappedKind.KindLoad,
Symbols: []string{mappedKind.KindName},
})
}

View File

@ -19,11 +19,15 @@ import (
"io/ioutil"
"os"
"path/filepath"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/rule"
)
func fixFile(path string, data []byte) error {
if err := os.MkdirAll(filepath.Dir(path), 0777); err != nil {
func fixFile(c *config.Config, f *rule.File) error {
outPath := findOutputPath(c, f)
if err := os.MkdirAll(filepath.Dir(outPath), 0777); err != nil {
return err
}
return ioutil.WriteFile(path, data, 0666)
return ioutil.WriteFile(outPath, f.Format(), 0666)
}

View File

@ -56,8 +56,12 @@ func main() {
log.SetPrefix("gazelle: ")
log.SetFlags(0) // don't print timestamps
if err := run(os.Args[1:]); err != nil {
log.Fatal(err)
if err := run(os.Args[1:]); err != nil && err != flag.ErrHelp {
if err == exitError {
os.Exit(1)
} else {
log.Fatal(err)
}
}
}
@ -112,7 +116,7 @@ For example:
gazelle update -h
Gazelle is under active delevopment, and its interface may change
Gazelle is under active development, and its interface may change
without notice.
`)

View File

@ -16,12 +16,12 @@ limitations under the License.
package main
import (
"github.com/bazelbuild/bazel-gazelle/internal/language"
"github.com/bazelbuild/bazel-gazelle/internal/language/go"
"github.com/bazelbuild/bazel-gazelle/internal/language/proto"
"github.com/bazelbuild/bazel-gazelle/language"
"github.com/bazelbuild/bazel-gazelle/language/go"
"github.com/bazelbuild/bazel-gazelle/language/proto"
)
var languages = []language.Language{
proto.New(),
golang.New(),
proto.NewLanguage(),
golang.NewLanguage(),
}

View File

@ -0,0 +1,64 @@
/* Copyright 2019 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/resolve"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// metaResolver provides a rule.Resolver for any rule.Rule.
type metaResolver struct {
// builtins provides a map of the language kinds to their resolver.
builtins map[string]resolve.Resolver
// mappedKinds provides a list of replacements used by File.Pkg.
mappedKinds map[string][]config.MappedKind
}
func newMetaResolver() *metaResolver {
return &metaResolver{
builtins: make(map[string]resolve.Resolver),
mappedKinds: make(map[string][]config.MappedKind),
}
}
// AddBuiltin registers a builtin kind with its info.
func (mr *metaResolver) AddBuiltin(kindName string, resolver resolve.Resolver) {
mr.builtins[kindName] = resolver
}
// MappedKind records the fact that the given mapping was applied while
// processing the given file.
func (mr *metaResolver) MappedKind(f *rule.File, kind config.MappedKind) {
mr.mappedKinds[f.Pkg] = append(mr.mappedKinds[f.Pkg], kind)
}
// Resolver returns a resolver for the given rule and file, and a bool
// indicating whether one was found. If f is nil, mapped kinds are disregarded.
func (mr metaResolver) Resolver(r *rule.Rule, f *rule.File) resolve.Resolver {
// If f is provided, check the replacements used while processing that package.
// If the rule is a kind that was mapped, return the resolver for the kind it was mapped from.
if f != nil {
for _, mappedKind := range mr.mappedKinds[f.Pkg] {
if mappedKind.KindName == r.Kind() {
return mr.builtins[mappedKind.FromKind]
}
}
}
return mr.builtins[r.Kind()]
}

View File

@ -17,9 +17,13 @@ package main
import (
"os"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/rule"
)
func printFile(_ string, data []byte) error {
_, err := os.Stdout.Write(data)
func printFile(c *config.Config, f *rule.File) error {
content := f.Format()
_, err := os.Stdout.Write(content)
return err
}

View File

@ -23,20 +23,31 @@ import (
"path/filepath"
"sync"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/merger"
"github.com/bazelbuild/bazel-gazelle/internal/repos"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
gzflag "github.com/bazelbuild/bazel-gazelle/flag"
"github.com/bazelbuild/bazel-gazelle/merger"
"github.com/bazelbuild/bazel-gazelle/repo"
"github.com/bazelbuild/bazel-gazelle/rule"
)
type updateReposFn func(c *updateReposConfig, oldFile *rule.File, kinds map[string]rule.KindInfo) error
type updateReposConfig struct {
fn updateReposFn
lockFilename string
importPaths []string
fn updateReposFn
lockFilename string
importPaths []string
buildExternalAttr string
buildFileNamesAttr string
buildFileGenerationAttr string
buildTagsAttr string
buildFileProtoModeAttr string
buildExtraArgsAttr string
}
var validBuildExternalAttr = []string{"external", "vendored"}
var validBuildFileGenerationAttr = []string{"auto", "on", "off"}
var validBuildFileProtoModeAttr = []string{"default", "legacy", "disable", "disable_global", "package"}
const updateReposName = "_update-repos"
func getUpdateReposConfig(c *config.Config) *updateReposConfig {
@ -49,6 +60,12 @@ func (_ *updateReposConfigurer) RegisterFlags(fs *flag.FlagSet, cmd string, c *c
uc := &updateReposConfig{}
c.Exts[updateReposName] = uc
fs.StringVar(&uc.lockFilename, "from_file", "", "Gazelle will translate repositories listed in this file into repository rules in WORKSPACE. Currently only dep's Gopkg.lock is supported.")
fs.StringVar(&uc.buildFileNamesAttr, "build_file_names", "", "Sets the build_file_name attribute for the generated go_repository rule(s).")
fs.Var(&gzflag.AllowedStringFlag{Value: &uc.buildExternalAttr, Allowed: validBuildExternalAttr}, "build_external", "Sets the build_external attribute for the generated go_repository rule(s).")
fs.Var(&gzflag.AllowedStringFlag{Value: &uc.buildFileGenerationAttr, Allowed: validBuildFileGenerationAttr}, "build_file_generation", "Sets the build_file_generation attribute for the generated go_repository rule(s).")
fs.StringVar(&uc.buildTagsAttr, "build_tags", "", "Sets the build_tags attribute for the generated go_repository rule(s).")
fs.Var(&gzflag.AllowedStringFlag{Value: &uc.buildFileProtoModeAttr, Allowed: validBuildFileProtoModeAttr}, "build_file_proto_mode", "Sets the build_file_proto_mode attribute for the generated go_repository rule(s).")
fs.StringVar(&uc.buildExtraArgsAttr, "build_extra_args", "", "Sets the build_extra_args attribute for the generated go_repository rule(s).")
}
func (_ *updateReposConfigurer) CheckFlags(fs *flag.FlagSet, c *config.Config) error {
@ -75,12 +92,11 @@ func (_ *updateReposConfigurer) KnownDirectives() []string { return nil }
func (_ *updateReposConfigurer) Configure(c *config.Config, rel string, f *rule.File) {}
func updateRepos(args []string) error {
cexts := make([]config.Configurer, 0, len(languages)+2)
cexts := make([]config.Configurer, 0, 2)
cexts = append(cexts, &config.CommonConfigurer{}, &updateReposConfigurer{})
kinds := make(map[string]rule.KindInfo)
loads := []rule.LoadInfo{}
for _, lang := range languages {
cexts = append(cexts, lang)
loads = append(loads, lang.Loads()...)
for kind, info := range lang.Kinds() {
kinds[kind] = info
@ -93,7 +109,7 @@ func updateRepos(args []string) error {
uc := getUpdateReposConfig(c)
workspacePath := filepath.Join(c.RepoRoot, "WORKSPACE")
f, err := rule.LoadFile(workspacePath, "")
f, err := rule.LoadWorkspaceFile(workspacePath, "")
if err != nil {
return fmt.Errorf("error loading %q: %v", workspacePath, err)
}
@ -154,11 +170,12 @@ file (currently only deps' Gopkg.lock is supported).
FLAGS:
`)
fs.PrintDefaults()
}
func updateImportPaths(c *updateReposConfig, f *rule.File, kinds map[string]rule.KindInfo) error {
rs := repos.ListRepositories(f)
rc := repos.NewRemoteCache(rs)
rs := repo.ListRepositories(f)
rc := repo.NewRemoteCache(rs)
genRules := make([]*rule.Rule, len(c.importPaths))
errs := make([]error, len(c.importPaths))
@ -167,14 +184,15 @@ func updateImportPaths(c *updateReposConfig, f *rule.File, kinds map[string]rule
for i, imp := range c.importPaths {
go func(i int, imp string) {
defer wg.Done()
repo, err := repos.UpdateRepo(rc, imp)
r, err := repo.UpdateRepo(rc, imp)
if err != nil {
errs[i] = err
return
}
repo.Remote = "" // don't set these explicitly
repo.VCS = ""
rule := repos.GenerateRule(repo)
r.Remote = "" // don't set these explicitly
r.VCS = ""
rule := repo.GenerateRule(r)
applyBuildAttributes(c, rule)
genRules[i] = rule
}(i, imp)
}
@ -190,11 +208,37 @@ func updateImportPaths(c *updateReposConfig, f *rule.File, kinds map[string]rule
}
func importFromLockFile(c *updateReposConfig, f *rule.File, kinds map[string]rule.KindInfo) error {
genRules, err := repos.ImportRepoRules(c.lockFilename)
rs := repo.ListRepositories(f)
rc := repo.NewRemoteCache(rs)
genRules, err := repo.ImportRepoRules(c.lockFilename, rc)
if err != nil {
return err
}
for i := range genRules {
applyBuildAttributes(c, genRules[i])
}
merger.MergeFile(f, nil, genRules, merger.PreResolve, kinds)
return nil
}
func applyBuildAttributes(c *updateReposConfig, r *rule.Rule) {
if c.buildExternalAttr != "" {
r.SetAttr("build_external", c.buildExternalAttr)
}
if c.buildFileNamesAttr != "" {
r.SetAttr("build_file_name", c.buildFileNamesAttr)
}
if c.buildFileGenerationAttr != "" {
r.SetAttr("build_file_generation", c.buildFileGenerationAttr)
}
if c.buildTagsAttr != "" {
r.SetAttr("build_tags", c.buildTagsAttr)
}
if c.buildFileProtoModeAttr != "" {
r.SetAttr("build_file_proto_mode", c.buildFileProtoModeAttr)
}
if c.buildExtraArgsAttr != "" {
r.SetAttr("build_extra_args", c.buildExtraArgsAttr)
}
}

View File

@ -21,9 +21,9 @@ import (
"path/filepath"
"regexp"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/repos"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/internal/version"
"github.com/bazelbuild/bazel-gazelle/repo"
)
var minimumRulesGoVersion = version.Version{0, 13, 0}
@ -39,7 +39,7 @@ func checkRulesGoVersion(repoRoot string) {
const message = `Gazelle may not be compatible with this version of rules_go.
Update io_bazel_rules_go to a newer version in your WORKSPACE file.`
rulesGoPath, err := repos.FindExternalRepo(repoRoot, config.RulesGoRepoName)
rulesGoPath, err := repo.FindExternalRepo(repoRoot, config.RulesGoRepoName)
if err != nil {
return
}

View File

@ -6,11 +6,11 @@ go_library(
"config.go",
"constants.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/config",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/config",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/config",
importpath = "github.com/bazelbuild/bazel-gazelle/config",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/rule:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/wspace:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library",
],
)

View File

@ -13,17 +13,28 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
// Package config provides extensible configuration for Gazelle libraries.
//
// Packages may define Configurers which add support for new command-line
// options and directive comments in build files. Note that the
// language.Language interface embeds Configurer, so each language extension
// has the opportunity
//
// When Gazelle walks the directory trees in a repository, it calls the
// Configure method of each Configurer to produce a Config object.
// Config objects are passed as arguments to most functions in Gazelle, so
// this mechanism may be used to control many aspects of Gazelle's behavior.
package config
import (
"flag"
"fmt"
"go/build"
"log"
"path/filepath"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/internal/wspace"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// Config holds information about how Gazelle should run. This is based on
@ -36,10 +47,6 @@ import (
// information is language-specific and is stored in Exts. This information
// is modified by extensions that implement Configurer.
type Config struct {
// Dirs is a list of absolute, canonical paths to directories where Gazelle
// should run.
Dirs []string
// RepoRoot is the absolute, canonical path to the root directory of the
// repository with all symlinks resolved.
RepoRoot string
@ -64,6 +71,15 @@ type Config struct {
// usage of deprecated rules.
ShouldFix bool
// IndexLibraries determines whether Gazelle should build an index of
// libraries in the workspace for dependency resolution
IndexLibraries bool
// KindMap maps from a kind name to its replacement. It provides a way for
// users to customize the kind of rules created by Gazelle, via
// # gazelle:map_kind.
KindMap map[string]MappedKind
// Exts is a set of configurable extensions. Generally, each language
// has its own set of extensions, but other modules may provide their own
// extensions as well. Values in here may be populated by command line
@ -71,6 +87,11 @@ type Config struct {
Exts map[string]interface{}
}
// MappedKind describes a replacement to use for a built-in kind.
type MappedKind struct {
FromKind, KindName, KindLoad string
}
func New() *Config {
return &Config{
ValidBuildFileNames: DefaultValidBuildFileNames,
@ -87,11 +108,17 @@ func (c *Config) Clone() *Config {
for k, v := range c.Exts {
cc.Exts[k] = v
}
cc.KindMap = make(map[string]MappedKind)
for k, v := range c.KindMap {
cc.KindMap[k] = v
}
return &cc
}
var DefaultValidBuildFileNames = []string{"BUILD.bazel", "BUILD"}
// IsValidBuildFileName returns true if a file with the given base name
// should be treated as a build file.
func (c *Config) IsValidBuildFileName(name string) bool {
for _, n := range c.ValidBuildFileNames {
if name == n {
@ -101,6 +128,7 @@ func (c *Config) IsValidBuildFileName(name string) bool {
return false
}
// DefaultBuildFileName returns the base name used to create new build files.
func (c *Config) DefaultBuildFileName() string {
return c.ValidBuildFileNames[0]
}
@ -143,11 +171,13 @@ type Configurer interface {
// i.e., those that apply to Config itself and not to Config.Exts.
type CommonConfigurer struct {
repoRoot, buildFileNames, readBuildFilesDir, writeBuildFilesDir string
indexLibraries bool
}
func (cc *CommonConfigurer) RegisterFlags(fs *flag.FlagSet, cmd string, c *Config) {
fs.StringVar(&cc.repoRoot, "repo_root", "", "path to a directory which corresponds to go_prefix, otherwise gazelle searches for it.")
fs.StringVar(&cc.buildFileNames, "build_file_name", strings.Join(DefaultValidBuildFileNames, ","), "comma-separated list of valid build file names.\nThe first element of the list is the name of output build files to generate.")
fs.BoolVar(&cc.indexLibraries, "index", true, "when true, gazelle will build an index of libraries in the workspace for dependency resolution")
fs.StringVar(&cc.readBuildFilesDir, "experimental_read_build_files_dir", "", "path to a directory where build files should be read from (instead of -repo_root)")
fs.StringVar(&cc.writeBuildFilesDir, "experimental_write_build_files_dir", "", "path to a directory where build files should be written to (instead of -repo_root)")
}
@ -181,12 +211,12 @@ func (cc *CommonConfigurer) CheckFlags(fs *flag.FlagSet, c *Config) error {
return fmt.Errorf("%s: failed to find absolute path of -write_build_files_dir: %v", cc.writeBuildFilesDir, err)
}
}
c.IndexLibraries = cc.indexLibraries
return nil
}
func (cc *CommonConfigurer) KnownDirectives() []string {
return []string{"build_file_name"}
return []string{"build_file_name", "map_kind"}
}
func (cc *CommonConfigurer) Configure(c *Config, rel string, f *rule.File) {
@ -194,76 +224,24 @@ func (cc *CommonConfigurer) Configure(c *Config, rel string, f *rule.File) {
return
}
for _, d := range f.Directives {
if d.Key == "build_file_name" {
switch d.Key {
case "build_file_name":
c.ValidBuildFileNames = strings.Split(d.Value, ",")
case "map_kind":
vals := strings.Fields(d.Value)
if len(vals) != 3 {
log.Printf("expected three arguments (gazelle:map_kind from_kind to_kind load_file), got %v", vals)
continue
}
if c.KindMap == nil {
c.KindMap = make(map[string]MappedKind)
}
c.KindMap[vals[0]] = MappedKind{
FromKind: vals[0],
KindName: vals[1],
KindLoad: vals[2],
}
}
}
}
// CheckPrefix checks that a string may be used as a prefix. We forbid local
// (relative) imports and those beginning with "/". We allow the empty string,
// but generated rules must not have an empty importpath.
func CheckPrefix(prefix string) error {
if strings.HasPrefix(prefix, "/") || build.IsLocalImport(prefix) {
return fmt.Errorf("invalid prefix: %q", prefix)
}
return nil
}
// DependencyMode determines how imports of packages outside of the prefix
// are resolved.
type DependencyMode int
const (
// ExternalMode indicates imports should be resolved to external dependencies
// (declared in WORKSPACE).
ExternalMode DependencyMode = iota
// VendorMode indicates imports should be resolved to libraries in the
// vendor directory.
VendorMode
)
// DependencyModeFromString converts a string from the command line
// to a DependencyMode. Valid strings are "external", "vendor". An error will
// be returned for an invalid string.
func DependencyModeFromString(s string) (DependencyMode, error) {
switch s {
case "external":
return ExternalMode, nil
case "vendored":
return VendorMode, nil
default:
return 0, fmt.Errorf("unrecognized dependency mode: %q", s)
}
}
// ProtoMode determines how proto rules are generated.
type ProtoMode int
const (
// DefaultProtoMode generates proto_library and new grpc_proto_library rules.
// .pb.go files are excluded when there is a .proto file with a similar name.
DefaultProtoMode ProtoMode = iota
// DisableProtoMode ignores .proto files. .pb.go files are treated
// as normal sources.
DisableProtoMode
// LegacyProtoMode generates filegroups for .proto files if .pb.go files
// are present in the same directory.
LegacyProtoMode
)
func ProtoModeFromString(s string) (ProtoMode, error) {
switch s {
case "default":
return DefaultProtoMode, nil
case "disable":
return DisableProtoMode, nil
case "legacy":
return LegacyProtoMode, nil
default:
return 0, fmt.Errorf("unrecognized proto mode: %q", s)
}
}

View File

@ -0,0 +1,27 @@
/* Copyright 2017 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package config
const (
// RulesGoRepoName is the canonical name of the rules_go repository. It must
// match the workspace name in WORKSPACE.
// TODO(jayconrod): move to language/go.
RulesGoRepoName = "io_bazel_rules_go"
// GazelleImportsKey is an internal attribute that lists imported packages
// on generated rules. It is replaced with "deps" during import resolution.
GazelleImportsKey = "_gazelle_imports"
)

View File

@ -3,7 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["flag.go"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/flag",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/flag",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/flag",
importpath = "github.com/bazelbuild/bazel-gazelle/flag",
visibility = ["//visibility:public"],
)

View File

@ -12,21 +12,29 @@
// See the License for the specific language governing permissions and
// limitations under the License.
// Package flag provides some general-purpose types which satisfy the
// flag.Value interface.
package flag
import (
stdflag "flag"
"fmt"
"strings"
)
// MultiFlag allows repeated string flags to be collected into a slice
// MultiFlag collects repeated string flags into a slice.
type MultiFlag struct {
IsSet *bool
Values *[]string
}
var _ stdflag.Value = (*MultiFlag)(nil)
func (m *MultiFlag) Set(v string) error {
if m.IsSet != nil && !*m.IsSet {
*m.IsSet = true
*m.Values = nil // clear any default values
}
*m.Values = append(*m.Values, v)
return nil
}
@ -58,3 +66,27 @@ func (f *ExplicitFlag) String() string {
}
return *f.Value
}
var _ stdflag.Value = (*AllowedStringFlag)(nil)
type AllowedStringFlag struct {
Allowed []string
Value *string
}
func (f *AllowedStringFlag) Set(v string) error {
for _, a := range f.Allowed {
if v == a {
*f.Value = v
return nil
}
}
return fmt.Errorf("Invalid argument %q. Possible values are: %s", v, strings.Join(f.Allowed, ", "))
}
func (f *AllowedStringFlag) String() string {
if f == nil || f.Value == nil {
return ""
}
return *f.Value
}

View File

@ -1,68 +0,0 @@
/* Copyright 2017 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package config
const (
// RulesGoRepoName is the canonical name of the rules_go repository. It must
// match the workspace name in WORKSPACE.
RulesGoRepoName = "io_bazel_rules_go"
// DefaultLibName is the name of the default go_library rule in a Go
// package directory. It must be consistent to DEFAULT_LIB in go/private/common.bf.
DefaultLibName = "go_default_library"
// DefaultTestName is a name of an internal test corresponding to
// DefaultLibName. It does not need to be consistent to something but it
// just needs to be unique in the Bazel package
DefaultTestName = "go_default_test"
// DefaultXTestName is a name of an external test corresponding to
// DefaultLibName.
DefaultXTestName = "go_default_xtest"
// DefaultProtosName is the name of a filegroup created
// whenever the library contains .pb.go files
DefaultProtosName = "go_default_library_protos"
// DefaultCgoLibName is the name of the default cgo_library rule in a Go package directory.
DefaultCgoLibName = "cgo_default_library"
// GrpcCompilerLabel is the label for the gRPC compiler plugin, used in the
// "compilers" attribute of go_proto_library rules.
GrpcCompilerLabel = "@io_bazel_rules_go//proto:go_grpc"
// GazelleImportsKey is an internal attribute that lists imported packages
// on generated rules. It is replaced with "deps" during import resolution.
GazelleImportsKey = "_gazelle_imports"
)
// Language is the name of a programming langauge that Gazelle knows about.
// This is used to specify import paths.
type Language int
const (
// GoLang marks Go targets.
GoLang Language = iota
// ProtoLang marks protocol buffer targets.
ProtoLang
)
func (l Language) String() string {
switch l {
case GoLang:
return "go"
case ProtoLang:
return "proto"
default:
return "unknown"
}
}

View File

@ -1,10 +0,0 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["label.go"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/label",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/label",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
deps = ["//vendor/github.com/bazelbuild/bazel-gazelle/internal/pathtools:go_default_library"],
)

View File

@ -1,14 +0,0 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["lang.go"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/language",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/language",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/resolve:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/rule:go_default_library",
],
)

View File

@ -1,34 +0,0 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"config.go",
"constants.go",
"fileinfo.go",
"fix.go",
"generate.go",
"kinds.go",
"known_go_imports.go",
"known_proto_imports.go",
"lang.go",
"package.go",
"resolve.go",
"std_package_list.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/language/go",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/language/go",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/flag:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/language:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/language/proto:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/pathtools:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/repos:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/resolve:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/rule:go_default_library",
"//vendor/github.com/bazelbuild/buildtools/build:go_default_library",
],
)

View File

@ -1,136 +0,0 @@
// Generated by internal/language/proto/gen/gen_known_imports.go
// From internal/language/proto/proto.csv
package golang
import "github.com/bazelbuild/bazel-gazelle/internal/label"
var knownGoProtoImports = map[string]label.Label{
"github.com/golang/protobuf/ptypes/any": label.New("io_bazel_rules_go", "proto/wkt", "any_go_proto"),
"google.golang.org/genproto/protobuf/api": label.New("io_bazel_rules_go", "proto/wkt", "api_go_proto"),
"github.com/golang/protobuf/protoc-gen-go/plugin": label.New("io_bazel_rules_go", "proto/wkt", "compiler_plugin_go_proto"),
"github.com/golang/protobuf/protoc-gen-go/descriptor": label.New("io_bazel_rules_go", "proto/wkt", "descriptor_go_proto"),
"github.com/golang/protobuf/ptypes/duration": label.New("io_bazel_rules_go", "proto/wkt", "duration_go_proto"),
"github.com/golang/protobuf/ptypes/empty": label.New("io_bazel_rules_go", "proto/wkt", "empty_go_proto"),
"google.golang.org/genproto/protobuf/field_mask": label.New("io_bazel_rules_go", "proto/wkt", "field_mask_go_proto"),
"google.golang.org/genproto/protobuf/source_context": label.New("io_bazel_rules_go", "proto/wkt", "source_context_go_proto"),
"github.com/golang/protobuf/ptypes/struct": label.New("io_bazel_rules_go", "proto/wkt", "struct_go_proto"),
"github.com/golang/protobuf/ptypes/timestamp": label.New("io_bazel_rules_go", "proto/wkt", "timestamp_go_proto"),
"google.golang.org/genproto/protobuf/ptype": label.New("io_bazel_rules_go", "proto/wkt", "type_go_proto"),
"github.com/golang/protobuf/ptypes/wrappers": label.New("io_bazel_rules_go", "proto/wkt", "wrappers_go_proto"),
"google.golang.org/genproto/googleapis/assistant/embedded/v1alpha2": label.New("go_googleapis", "google/assistant/embedded/v1alpha2", "embedded_go_proto"),
"google.golang.org/genproto/googleapis/assistant/embedded/v1alpha1": label.New("go_googleapis", "google/assistant/embedded/v1alpha1", "embedded_go_proto"),
"google.golang.org/genproto/googleapis/home/graph/v1": label.New("go_googleapis", "google/home/graph/v1", "graph_go_proto"),
"google.golang.org/genproto/googleapis/genomics/v1": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google.golang.org/genproto/googleapis/genomics/v1alpha2": label.New("go_googleapis", "google/genomics/v1alpha2", "genomics_go_proto"),
"google.golang.org/genproto/googleapis/bigtable/v1": label.New("go_googleapis", "google/bigtable/v1", "bigtable_go_proto"),
"google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_go_proto"),
"google.golang.org/genproto/googleapis/bigtable/admin/v2": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google.golang.org/genproto/googleapis/bigtable/admin/table/v1": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_go_proto"),
"google.golang.org/genproto/googleapis/bigtable/v2": label.New("go_googleapis", "google/bigtable/v2", "bigtable_go_proto"),
"google.golang.org/genproto/googleapis/privacy/dlp/v2": label.New("go_googleapis", "google/privacy/dlp/v2", "dlp_go_proto"),
"google.golang.org/genproto/googleapis/watcher/v1": label.New("go_googleapis", "google/watcher/v1", "watcher_go_proto"),
"google.golang.org/genproto/googleapis/firestore/admin/v1beta1": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_go_proto"),
"google.golang.org/genproto/googleapis/firestore/v1beta1": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google.golang.org/genproto/googleapis/example/library/v1": label.New("go_googleapis", "google/example/library/v1", "library_go_proto"),
"google.golang.org/genproto/googleapis/appengine/v1": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google.golang.org/genproto/googleapis/appengine/legacy": label.New("go_googleapis", "google/appengine/legacy", "legacy_go_proto"),
"google.golang.org/genproto/googleapis/appengine/logging/v1": label.New("go_googleapis", "google/appengine/logging/v1", "logging_go_proto"),
"google.golang.org/genproto/googleapis/storagetransfer/v1": label.New("go_googleapis", "google/storagetransfer/v1", "storagetransfer_go_proto"),
"google.golang.org/genproto/googleapis/longrunning": label.New("go_googleapis", "google/longrunning", "longrunning_go_proto"),
"google.golang.org/genproto/googleapis/container/v1": label.New("go_googleapis", "google/container/v1", "container_go_proto"),
"google.golang.org/genproto/googleapis/container/v1beta1": label.New("go_googleapis", "google/container/v1beta1", "container_go_proto"),
"google.golang.org/genproto/googleapis/container/v1alpha1": label.New("go_googleapis", "google/container/v1alpha1", "container_go_proto"),
"google.golang.org/genproto/googleapis/datastore/v1beta3": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_go_proto"),
"google.golang.org/genproto/googleapis/datastore/v1": label.New("go_googleapis", "google/datastore/v1", "datastore_go_proto"),
"google.golang.org/genproto/googleapis/datastore/admin/v1": label.New("go_googleapis", "google/datastore/admin/v1", "admin_go_proto"),
"google.golang.org/genproto/googleapis/datastore/admin/v1beta1": label.New("go_googleapis", "google/datastore/admin/v1beta1", "admin_go_proto"),
"google.golang.org/genproto/googleapis/bytestream": label.New("go_googleapis", "google/bytestream", "bytestream_go_proto"),
"google.golang.org/genproto/googleapis/iam/v1": label.New("go_googleapis", "google/iam/v1", "iam_go_proto"),
"google.golang.org/genproto/googleapis/iam/v1/logging": label.New("go_googleapis", "google/iam/v1/logging", "logging_go_proto"),
"google.golang.org/genproto/googleapis/iam/admin/v1": label.New("go_googleapis", "google/iam/admin/v1", "admin_go_proto"),
"google.golang.org/genproto/googleapis/type/money": label.New("go_googleapis", "google/type", "money_go_proto"),
"google.golang.org/genproto/googleapis/type/latlng": label.New("go_googleapis", "google/type", "latlng_go_proto"),
"google.golang.org/genproto/googleapis/type/color": label.New("go_googleapis", "google/type", "color_go_proto"),
"google.golang.org/genproto/googleapis/type/timeofday": label.New("go_googleapis", "google/type", "timeofday_go_proto"),
"google.golang.org/genproto/googleapis/type/date": label.New("go_googleapis", "google/type", "date_go_proto"),
"google.golang.org/genproto/googleapis/type/dayofweek": label.New("go_googleapis", "google/type", "dayofweek_go_proto"),
"google.golang.org/genproto/googleapis/type/postaladdress": label.New("go_googleapis", "google/type", "postaladdress_go_proto"),
"google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_go_proto"),
"google.golang.org/genproto/googleapis/devtools/resultstore/v2": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google.golang.org/genproto/googleapis/devtools/source/v1": label.New("go_googleapis", "google/devtools/source/v1", "source_go_proto"),
"google.golang.org/genproto/googleapis/devtools/remoteexecution/v1test": label.New("go_googleapis", "google/devtools/remoteexecution/v1test", "remoteexecution_go_proto"),
"google.golang.org/genproto/googleapis/devtools/cloudbuild/v1": label.New("go_googleapis", "google/devtools/cloudbuild/v1", "cloudbuild_go_proto"),
"google.golang.org/genproto/googleapis/devtools/sourcerepo/v1": label.New("go_googleapis", "google/devtools/sourcerepo/v1", "sourcerepo_go_proto"),
"google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_go_proto"),
"google.golang.org/genproto/googleapis/devtools/cloudtrace/v1": label.New("go_googleapis", "google/devtools/cloudtrace/v1", "cloudtrace_go_proto"),
"google.golang.org/genproto/googleapis/devtools/cloudtrace/v2": label.New("go_googleapis", "google/devtools/cloudtrace/v2", "cloudtrace_go_proto"),
"google.golang.org/genproto/googleapis/devtools/cloudprofiler/v2": label.New("go_googleapis", "google/devtools/cloudprofiler/v2", "cloudprofiler_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google.golang.org/genproto/googleapis/devtools/build/v1": label.New("go_googleapis", "google/devtools/build/v1", "build_go_proto"),
"google.golang.org/genproto/googleapis/devtools/clouddebugger/v2": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_go_proto"),
"google.golang.org/genproto/googleapis/cloud/resourcemanager/v2": label.New("go_googleapis", "google/cloud/resourcemanager/v2", "resourcemanager_go_proto"),
"google.golang.org/genproto/googleapis/cloud/kms/v1": label.New("go_googleapis", "google/cloud/kms/v1", "kms_go_proto"),
"google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1": label.New("go_googleapis", "google/cloud/runtimeconfig/v1beta1", "runtimeconfig_go_proto"),
"google.golang.org/genproto/googleapis/cloud/tasks/v2beta2": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_go_proto"),
"google.golang.org/genproto/googleapis/cloud/oslogin/v1": label.New("go_googleapis", "google/cloud/oslogin/v1", "oslogin_go_proto"),
"google.golang.org/genproto/googleapis/cloud/oslogin/v1alpha": label.New("go_googleapis", "google/cloud/oslogin/v1alpha", "oslogin_go_proto"),
"google.golang.org/genproto/googleapis/cloud/oslogin/common": label.New("go_googleapis", "google/cloud/oslogin/common", "common_go_proto"),
"google.golang.org/genproto/googleapis/cloud/oslogin/v1beta": label.New("go_googleapis", "google/cloud/oslogin/v1beta", "oslogin_go_proto"),
"google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google.golang.org/genproto/googleapis/cloud/dialogflow/v2": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google.golang.org/genproto/googleapis/cloud/redis/v1beta1": label.New("go_googleapis", "google/cloud/redis/v1beta1", "redis_go_proto"),
"google.golang.org/genproto/googleapis/cloud/location": label.New("go_googleapis", "google/cloud/location", "location_go_proto"),
"google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google.golang.org/genproto/googleapis/cloud/language/v1": label.New("go_googleapis", "google/cloud/language/v1", "language_go_proto"),
"google.golang.org/genproto/googleapis/cloud/language/v1beta2": label.New("go_googleapis", "google/cloud/language/v1beta2", "language_go_proto"),
"google.golang.org/genproto/googleapis/cloud/language/v1beta1": label.New("go_googleapis", "google/cloud/language/v1beta1", "language_go_proto"),
"google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1": label.New("go_googleapis", "google/cloud/bigquery/datatransfer/v1", "datatransfer_go_proto"),
"google.golang.org/genproto/googleapis/cloud/bigquery/logging/v1": label.New("go_googleapis", "google/cloud/bigquery/logging/v1", "logging_go_proto"),
"google.golang.org/genproto/googleapis/cloud/vision/v1": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_go_proto"),
"google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_go_proto"),
"google.golang.org/genproto/googleapis/cloud/speech/v1": label.New("go_googleapis", "google/cloud/speech/v1", "speech_go_proto"),
"google.golang.org/genproto/googleapis/cloud/speech/v1beta1": label.New("go_googleapis", "google/cloud/speech/v1beta1", "speech_go_proto"),
"google.golang.org/genproto/googleapis/cloud/speech/v1p1beta1": label.New("go_googleapis", "google/cloud/speech/v1p1beta1", "speech_go_proto"),
"google.golang.org/genproto/googleapis/cloud/iot/v1": label.New("go_googleapis", "google/cloud/iot/v1", "iot_go_proto"),
"google.golang.org/genproto/googleapis/cloud/videointelligence/v1": label.New("go_googleapis", "google/cloud/videointelligence/v1", "videointelligence_go_proto"),
"google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta2": label.New("go_googleapis", "google/cloud/videointelligence/v1beta2", "videointelligence_go_proto"),
"google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta1": label.New("go_googleapis", "google/cloud/videointelligence/v1beta1", "videointelligence_go_proto"),
"google.golang.org/genproto/googleapis/cloud/videointelligence/v1p1beta1": label.New("go_googleapis", "google/cloud/videointelligence/v1p1beta1", "videointelligence_go_proto"),
"google.golang.org/genproto/googleapis/cloud/audit": label.New("go_googleapis", "google/cloud/audit", "audit_go_proto"),
"google.golang.org/genproto/googleapis/cloud/support/common": label.New("go_googleapis", "google/cloud/support", "common_go_proto"),
"google.golang.org/genproto/googleapis/cloud/support/v1alpha1": label.New("go_googleapis", "google/cloud/support/v1alpha1", "support_go_proto"),
"google.golang.org/genproto/googleapis/cloud/ml/v1": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google.golang.org/genproto/googleapis/cloud/texttospeech/v1": label.New("go_googleapis", "google/cloud/texttospeech/v1", "texttospeech_go_proto"),
"google.golang.org/genproto/googleapis/cloud/texttospeech/v1beta1": label.New("go_googleapis", "google/cloud/texttospeech/v1beta1", "texttospeech_go_proto"),
"google.golang.org/genproto/googleapis/cloud/functions/v1beta2": label.New("go_googleapis", "google/cloud/functions/v1beta2", "functions_go_proto"),
"google.golang.org/genproto/googleapis/cloud/billing/v1": label.New("go_googleapis", "google/cloud/billing/v1", "billing_go_proto"),
"google.golang.org/genproto/googleapis/cloud/dataproc/v1": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_go_proto"),
"google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google.golang.org/genproto/googleapis/api/serviceconfig": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google.golang.org/genproto/googleapis/api/annotations": label.New("go_googleapis", "google/api", "annotations_go_proto"),
"google.golang.org/genproto/googleapis/api/configchange": label.New("go_googleapis", "google/api", "configchange_go_proto"),
"google.golang.org/genproto/googleapis/api/distribution": label.New("go_googleapis", "google/api", "distribution_go_proto"),
"google.golang.org/genproto/googleapis/api/monitoredres": label.New("go_googleapis", "google/api", "monitoredres_go_proto"),
"google.golang.org/genproto/googleapis/api/metric": label.New("go_googleapis", "google/api", "metric_go_proto"),
"google.golang.org/genproto/googleapis/api/label": label.New("go_googleapis", "google/api", "label_go_proto"),
"google.golang.org/genproto/googleapis/api/httpbody": label.New("go_googleapis", "google/api", "httpbody_go_proto"),
"google.golang.org/genproto/googleapis/api": label.New("go_googleapis", "google/api/experimental", "api_go_proto"),
"google.golang.org/genproto/googleapis/api/servicemanagement/v1": label.New("go_googleapis", "google/api/servicemanagement/v1", "servicemanagement_go_proto"),
"google.golang.org/genproto/googleapis/api/servicecontrol/v1": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google.golang.org/genproto/googleapis/pubsub/v1": label.New("go_googleapis", "google/pubsub/v1", "pubsub_go_proto"),
"google.golang.org/genproto/googleapis/pubsub/v1beta2": label.New("go_googleapis", "google/pubsub/v1beta2", "pubsub_go_proto"),
"google.golang.org/genproto/googleapis/spanner/v1": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google.golang.org/genproto/googleapis/spanner/admin/database/v1": label.New("go_googleapis", "google/spanner/admin/database/v1", "database_go_proto"),
"google.golang.org/genproto/googleapis/spanner/admin/instance/v1": label.New("go_googleapis", "google/spanner/admin/instance/v1", "instance_go_proto"),
"google.golang.org/genproto/googleapis/monitoring/v3": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google.golang.org/genproto/googleapis/rpc/code": label.New("go_googleapis", "google/rpc", "code_go_proto"),
"google.golang.org/genproto/googleapis/rpc/status": label.New("go_googleapis", "google/rpc", "status_go_proto"),
"google.golang.org/genproto/googleapis/rpc/errdetails": label.New("go_googleapis", "google/rpc", "errdetails_go_proto"),
"google.golang.org/genproto/googleapis/streetview/publish/v1": label.New("go_googleapis", "google/streetview/publish/v1", "publish_go_proto"),
"google.golang.org/genproto/googleapis/logging/v2": label.New("go_googleapis", "google/logging/v2", "logging_go_proto"),
"google.golang.org/genproto/googleapis/logging/type": label.New("go_googleapis", "google/logging/type", "ltype_go_proto"),
}

View File

@ -1,300 +0,0 @@
// Generated by internal/language/proto/gen/gen_known_imports.go
// From internal/language/proto/proto.csv
package golang
import "github.com/bazelbuild/bazel-gazelle/internal/label"
var knownProtoImports = map[string]label.Label{
"google/protobuf/any.proto": label.New("io_bazel_rules_go", "proto/wkt", "any_go_proto"),
"google/protobuf/api.proto": label.New("io_bazel_rules_go", "proto/wkt", "api_go_proto"),
"google/protobuf/compiler/plugin.proto": label.New("io_bazel_rules_go", "proto/wkt", "compiler_plugin_go_proto"),
"google/protobuf/descriptor.proto": label.New("io_bazel_rules_go", "proto/wkt", "descriptor_go_proto"),
"google/protobuf/duration.proto": label.New("io_bazel_rules_go", "proto/wkt", "duration_go_proto"),
"google/protobuf/empty.proto": label.New("io_bazel_rules_go", "proto/wkt", "empty_go_proto"),
"google/protobuf/field_mask.proto": label.New("io_bazel_rules_go", "proto/wkt", "field_mask_go_proto"),
"google/protobuf/source_context.proto": label.New("io_bazel_rules_go", "proto/wkt", "source_context_go_proto"),
"google/protobuf/struct.proto": label.New("io_bazel_rules_go", "proto/wkt", "struct_go_proto"),
"google/protobuf/timestamp.proto": label.New("io_bazel_rules_go", "proto/wkt", "timestamp_go_proto"),
"google/protobuf/type.proto": label.New("io_bazel_rules_go", "proto/wkt", "type_go_proto"),
"google/protobuf/wrappers.proto": label.New("io_bazel_rules_go", "proto/wkt", "wrappers_go_proto"),
"google/assistant/embedded/v1alpha2/embedded_assistant.proto": label.New("go_googleapis", "google/assistant/embedded/v1alpha2", "embedded_go_proto"),
"google/assistant/embedded/v1alpha1/embedded_assistant.proto": label.New("go_googleapis", "google/assistant/embedded/v1alpha1", "embedded_go_proto"),
"google/home/graph/v1/device.proto": label.New("go_googleapis", "google/home/graph/v1", "graph_go_proto"),
"google/home/graph/v1/homegraph.proto": label.New("go_googleapis", "google/home/graph/v1", "graph_go_proto"),
"google/genomics/v1/operations.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/variants.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/position.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/references.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/cigar.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/datasets.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/readalignment.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/annotations.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/reads.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/readgroup.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/readgroupset.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/range.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1alpha2/pipelines.proto": label.New("go_googleapis", "google/genomics/v1alpha2", "genomics_go_proto"),
"google/bigtable/v1/bigtable_service_messages.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_go_proto"),
"google/bigtable/v1/bigtable_service.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_go_proto"),
"google/bigtable/v1/bigtable_data.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_go_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_data.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_go_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_go_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_service.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_go_proto"),
"google/bigtable/admin/v2/bigtable_instance_admin.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google/bigtable/admin/v2/instance.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google/bigtable/admin/v2/table.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google/bigtable/admin/v2/bigtable_table_admin.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google/bigtable/admin/v2/common.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google/bigtable/admin/table/v1/bigtable_table_service_messages.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_go_proto"),
"google/bigtable/admin/table/v1/bigtable_table_service.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_go_proto"),
"google/bigtable/admin/table/v1/bigtable_table_data.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_go_proto"),
"google/bigtable/v2/bigtable.proto": label.New("go_googleapis", "google/bigtable/v2", "bigtable_go_proto"),
"google/bigtable/v2/data.proto": label.New("go_googleapis", "google/bigtable/v2", "bigtable_go_proto"),
"google/privacy/dlp/v2/storage.proto": label.New("go_googleapis", "google/privacy/dlp/v2", "dlp_go_proto"),
"google/privacy/dlp/v2/dlp.proto": label.New("go_googleapis", "google/privacy/dlp/v2", "dlp_go_proto"),
"google/watcher/v1/watch.proto": label.New("go_googleapis", "google/watcher/v1", "watcher_go_proto"),
"google/firestore/admin/v1beta1/firestore_admin.proto": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_go_proto"),
"google/firestore/admin/v1beta1/index.proto": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_go_proto"),
"google/firestore/v1beta1/write.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google/firestore/v1beta1/document.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google/firestore/v1beta1/firestore.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google/firestore/v1beta1/query.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google/firestore/v1beta1/common.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google/example/library/v1/library.proto": label.New("go_googleapis", "google/example/library/v1", "library_go_proto"),
"google/appengine/v1/instance.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/audit_data.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/appengine.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/application.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/operation.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/app_yaml.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/location.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/service.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/deploy.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/version.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/legacy/audit_data.proto": label.New("go_googleapis", "google/appengine/legacy", "legacy_go_proto"),
"google/appengine/logging/v1/request_log.proto": label.New("go_googleapis", "google/appengine/logging/v1", "logging_go_proto"),
"google/storagetransfer/v1/transfer.proto": label.New("go_googleapis", "google/storagetransfer/v1", "storagetransfer_go_proto"),
"google/storagetransfer/v1/transfer_types.proto": label.New("go_googleapis", "google/storagetransfer/v1", "storagetransfer_go_proto"),
"google/longrunning/operations.proto": label.New("go_googleapis", "google/longrunning", "longrunning_go_proto"),
"google/container/v1/cluster_service.proto": label.New("go_googleapis", "google/container/v1", "container_go_proto"),
"google/container/v1beta1/cluster_service.proto": label.New("go_googleapis", "google/container/v1beta1", "container_go_proto"),
"google/container/v1alpha1/cluster_service.proto": label.New("go_googleapis", "google/container/v1alpha1", "container_go_proto"),
"google/datastore/v1beta3/datastore.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_go_proto"),
"google/datastore/v1beta3/query.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_go_proto"),
"google/datastore/v1beta3/entity.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_go_proto"),
"google/datastore/v1/datastore.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_go_proto"),
"google/datastore/v1/query.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_go_proto"),
"google/datastore/v1/entity.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_go_proto"),
"google/datastore/admin/v1/datastore_admin.proto": label.New("go_googleapis", "google/datastore/admin/v1", "admin_go_proto"),
"google/datastore/admin/v1beta1/datastore_admin.proto": label.New("go_googleapis", "google/datastore/admin/v1beta1", "admin_go_proto"),
"google/bytestream/bytestream.proto": label.New("go_googleapis", "google/bytestream", "bytestream_go_proto"),
"google/iam/v1/iam_policy.proto": label.New("go_googleapis", "google/iam/v1", "iam_go_proto"),
"google/iam/v1/policy.proto": label.New("go_googleapis", "google/iam/v1", "iam_go_proto"),
"google/iam/v1/logging/audit_data.proto": label.New("go_googleapis", "google/iam/v1/logging", "logging_go_proto"),
"google/iam/admin/v1/iam.proto": label.New("go_googleapis", "google/iam/admin/v1", "admin_go_proto"),
"google/type/money.proto": label.New("go_googleapis", "google/type", "money_go_proto"),
"google/type/latlng.proto": label.New("go_googleapis", "google/type", "latlng_go_proto"),
"google/type/color.proto": label.New("go_googleapis", "google/type", "color_go_proto"),
"google/type/timeofday.proto": label.New("go_googleapis", "google/type", "timeofday_go_proto"),
"google/type/date.proto": label.New("go_googleapis", "google/type", "date_go_proto"),
"google/type/dayofweek.proto": label.New("go_googleapis", "google/type", "dayofweek_go_proto"),
"google/type/postal_address.proto": label.New("go_googleapis", "google/type", "postaladdress_go_proto"),
"google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_go_proto"),
"google/devtools/clouderrorreporting/v1beta1/error_group_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_go_proto"),
"google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_go_proto"),
"google/devtools/clouderrorreporting/v1beta1/common.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_go_proto"),
"google/devtools/resultstore/v2/file.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/resultstore_download.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/configuration.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/action.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/resultstore_file_download.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/test_suite.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/file_set.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/coverage.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/coverage_summary.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/configured_target.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/target.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/invocation.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/common.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/source/v1/source_context.proto": label.New("go_googleapis", "google/devtools/source/v1", "source_go_proto"),
"google/devtools/remoteexecution/v1test/remote_execution.proto": label.New("go_googleapis", "google/devtools/remoteexecution/v1test", "remoteexecution_go_proto"),
"google/devtools/cloudbuild/v1/cloudbuild.proto": label.New("go_googleapis", "google/devtools/cloudbuild/v1", "cloudbuild_go_proto"),
"google/devtools/sourcerepo/v1/sourcerepo.proto": label.New("go_googleapis", "google/devtools/sourcerepo/v1", "sourcerepo_go_proto"),
"google/devtools/remoteworkers/v1test2/worker.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_go_proto"),
"google/devtools/remoteworkers/v1test2/tasks.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_go_proto"),
"google/devtools/remoteworkers/v1test2/bots.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_go_proto"),
"google/devtools/remoteworkers/v1test2/command.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_go_proto"),
"google/devtools/cloudtrace/v1/trace.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v1", "cloudtrace_go_proto"),
"google/devtools/cloudtrace/v2/trace.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v2", "cloudtrace_go_proto"),
"google/devtools/cloudtrace/v2/tracing.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v2", "cloudtrace_go_proto"),
"google/devtools/cloudprofiler/v2/profiler.proto": label.New("go_googleapis", "google/devtools/cloudprofiler/v2", "cloudprofiler_go_proto"),
"google/devtools/containeranalysis/v1alpha1/containeranalysis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1alpha1/bill_of_materials.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1alpha1/provenance.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1alpha1/package_vulnerability.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1alpha1/source_context.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1alpha1/image_basis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/build/v1/build_events.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_go_proto"),
"google/devtools/build/v1/build_status.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_go_proto"),
"google/devtools/build/v1/publish_build_event.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_go_proto"),
"google/devtools/clouddebugger/v2/debugger.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_go_proto"),
"google/devtools/clouddebugger/v2/data.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_go_proto"),
"google/devtools/clouddebugger/v2/controller.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_go_proto"),
"google/cloud/resourcemanager/v2/folders.proto": label.New("go_googleapis", "google/cloud/resourcemanager/v2", "resourcemanager_go_proto"),
"google/cloud/kms/v1/resources.proto": label.New("go_googleapis", "google/cloud/kms/v1", "kms_go_proto"),
"google/cloud/kms/v1/service.proto": label.New("go_googleapis", "google/cloud/kms/v1", "kms_go_proto"),
"google/cloud/runtimeconfig/v1beta1/resources.proto": label.New("go_googleapis", "google/cloud/runtimeconfig/v1beta1", "runtimeconfig_go_proto"),
"google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto": label.New("go_googleapis", "google/cloud/runtimeconfig/v1beta1", "runtimeconfig_go_proto"),
"google/cloud/tasks/v2beta2/queue.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_go_proto"),
"google/cloud/tasks/v2beta2/task.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_go_proto"),
"google/cloud/tasks/v2beta2/target.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_go_proto"),
"google/cloud/tasks/v2beta2/cloudtasks.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_go_proto"),
"google/cloud/oslogin/v1/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1", "oslogin_go_proto"),
"google/cloud/oslogin/v1alpha/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1alpha", "oslogin_go_proto"),
"google/cloud/oslogin/common/common.proto": label.New("go_googleapis", "google/cloud/oslogin/common", "common_go_proto"),
"google/cloud/oslogin/v1beta/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1beta", "oslogin_go_proto"),
"google/cloud/dialogflow/v2beta1/context.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/session_entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/intent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/webhook.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/session.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/agent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/context.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/session_entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/intent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/webhook.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/session.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/agent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/redis/v1beta1/cloud_redis.proto": label.New("go_googleapis", "google/cloud/redis/v1beta1", "redis_go_proto"),
"google/cloud/location/locations.proto": label.New("go_googleapis", "google/cloud/location", "location_go_proto"),
"google/cloud/websecurityscanner/v1alpha/finding.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/scan_config.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/crawled_url.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/scan_run.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/finding_addon.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/language/v1/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1", "language_go_proto"),
"google/cloud/language/v1beta2/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1beta2", "language_go_proto"),
"google/cloud/language/v1beta1/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1beta1", "language_go_proto"),
"google/cloud/bigquery/datatransfer/v1/transfer.proto": label.New("go_googleapis", "google/cloud/bigquery/datatransfer/v1", "datatransfer_go_proto"),
"google/cloud/bigquery/datatransfer/v1/datatransfer.proto": label.New("go_googleapis", "google/cloud/bigquery/datatransfer/v1", "datatransfer_go_proto"),
"google/cloud/bigquery/logging/v1/audit_data.proto": label.New("go_googleapis", "google/cloud/bigquery/logging/v1", "logging_go_proto"),
"google/cloud/vision/v1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google/cloud/vision/v1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google/cloud/vision/v1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google/cloud/vision/v1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google/cloud/vision/v1p2beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_go_proto"),
"google/cloud/vision/v1p2beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_go_proto"),
"google/cloud/vision/v1p2beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_go_proto"),
"google/cloud/vision/v1p2beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_go_proto"),
"google/cloud/vision/v1p1beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_go_proto"),
"google/cloud/vision/v1p1beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_go_proto"),
"google/cloud/vision/v1p1beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_go_proto"),
"google/cloud/vision/v1p1beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_go_proto"),
"google/cloud/speech/v1/cloud_speech.proto": label.New("go_googleapis", "google/cloud/speech/v1", "speech_go_proto"),
"google/cloud/speech/v1beta1/cloud_speech.proto": label.New("go_googleapis", "google/cloud/speech/v1beta1", "speech_go_proto"),
"google/cloud/speech/v1p1beta1/cloud_speech.proto": label.New("go_googleapis", "google/cloud/speech/v1p1beta1", "speech_go_proto"),
"google/cloud/iot/v1/device_manager.proto": label.New("go_googleapis", "google/cloud/iot/v1", "iot_go_proto"),
"google/cloud/iot/v1/resources.proto": label.New("go_googleapis", "google/cloud/iot/v1", "iot_go_proto"),
"google/cloud/videointelligence/v1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1", "videointelligence_go_proto"),
"google/cloud/videointelligence/v1beta2/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1beta2", "videointelligence_go_proto"),
"google/cloud/videointelligence/v1beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1beta1", "videointelligence_go_proto"),
"google/cloud/videointelligence/v1p1beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1p1beta1", "videointelligence_go_proto"),
"google/cloud/audit/audit_log.proto": label.New("go_googleapis", "google/cloud/audit", "audit_go_proto"),
"google/cloud/support/common.proto": label.New("go_googleapis", "google/cloud/support", "common_go_proto"),
"google/cloud/support/v1alpha1/cloud_support.proto": label.New("go_googleapis", "google/cloud/support/v1alpha1", "support_go_proto"),
"google/cloud/ml/v1/operation_metadata.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google/cloud/ml/v1/job_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google/cloud/ml/v1/prediction_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google/cloud/ml/v1/model_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google/cloud/ml/v1/project_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google/cloud/texttospeech/v1/cloud_tts.proto": label.New("go_googleapis", "google/cloud/texttospeech/v1", "texttospeech_go_proto"),
"google/cloud/texttospeech/v1beta1/cloud_tts.proto": label.New("go_googleapis", "google/cloud/texttospeech/v1beta1", "texttospeech_go_proto"),
"google/cloud/functions/v1beta2/operations.proto": label.New("go_googleapis", "google/cloud/functions/v1beta2", "functions_go_proto"),
"google/cloud/functions/v1beta2/functions.proto": label.New("go_googleapis", "google/cloud/functions/v1beta2", "functions_go_proto"),
"google/cloud/billing/v1/cloud_billing.proto": label.New("go_googleapis", "google/cloud/billing/v1", "billing_go_proto"),
"google/cloud/dataproc/v1/operations.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_go_proto"),
"google/cloud/dataproc/v1/clusters.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_go_proto"),
"google/cloud/dataproc/v1/jobs.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_go_proto"),
"google/cloud/dataproc/v1beta2/operations.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google/cloud/dataproc/v1beta2/clusters.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google/cloud/dataproc/v1beta2/jobs.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google/cloud/dataproc/v1beta2/workflow_templates.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google/cloud/dataproc/v1beta2/shared.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google/api/context.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/http.proto": label.New("go_googleapis", "google/api", "annotations_go_proto"),
"google/api/config_change.proto": label.New("go_googleapis", "google/api", "configchange_go_proto"),
"google/api/system_parameter.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/monitoring.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/distribution.proto": label.New("go_googleapis", "google/api", "distribution_go_proto"),
"google/api/endpoint.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/usage.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/monitored_resource.proto": label.New("go_googleapis", "google/api", "monitoredres_go_proto"),
"google/api/annotations.proto": label.New("go_googleapis", "google/api", "annotations_go_proto"),
"google/api/control.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/metric.proto": label.New("go_googleapis", "google/api", "metric_go_proto"),
"google/api/label.proto": label.New("go_googleapis", "google/api", "label_go_proto"),
"google/api/consumer.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/log.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/billing.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/service.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/logging.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/documentation.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/quota.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/auth.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/backend.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/source_info.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/httpbody.proto": label.New("go_googleapis", "google/api", "httpbody_go_proto"),
"google/api/experimental/authorization_config.proto": label.New("go_googleapis", "google/api/experimental", "api_go_proto"),
"google/api/experimental/experimental.proto": label.New("go_googleapis", "google/api/experimental", "api_go_proto"),
"google/api/servicemanagement/v1/servicemanager.proto": label.New("go_googleapis", "google/api/servicemanagement/v1", "servicemanagement_go_proto"),
"google/api/servicemanagement/v1/resources.proto": label.New("go_googleapis", "google/api/servicemanagement/v1", "servicemanagement_go_proto"),
"google/api/servicecontrol/v1/quota_controller.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/distribution.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/check_error.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/operation.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/metric_value.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/log_entry.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/service_controller.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/pubsub/v1/pubsub.proto": label.New("go_googleapis", "google/pubsub/v1", "pubsub_go_proto"),
"google/pubsub/v1beta2/pubsub.proto": label.New("go_googleapis", "google/pubsub/v1beta2", "pubsub_go_proto"),
"google/spanner/v1/mutation.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/spanner.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/transaction.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/keys.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/type.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/query_plan.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/result_set.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/admin/database/v1/spanner_database_admin.proto": label.New("go_googleapis", "google/spanner/admin/database/v1", "database_go_proto"),
"google/spanner/admin/instance/v1/spanner_instance_admin.proto": label.New("go_googleapis", "google/spanner/admin/instance/v1", "instance_go_proto"),
"google/monitoring/v3/group.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/mutation_record.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/notification.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/alert_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/uptime_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/group_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/alert.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/uptime.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/metric.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/notification_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/metric_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/common.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/rpc/code.proto": label.New("go_googleapis", "google/rpc", "code_go_proto"),
"google/rpc/status.proto": label.New("go_googleapis", "google/rpc", "status_go_proto"),
"google/rpc/error_details.proto": label.New("go_googleapis", "google/rpc", "errdetails_go_proto"),
"google/streetview/publish/v1/resources.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_go_proto"),
"google/streetview/publish/v1/rpcmessages.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_go_proto"),
"google/streetview/publish/v1/streetview_publish.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_go_proto"),
"google/logging/v2/logging_metrics.proto": label.New("go_googleapis", "google/logging/v2", "logging_go_proto"),
"google/logging/v2/logging_config.proto": label.New("go_googleapis", "google/logging/v2", "logging_go_proto"),
"google/logging/v2/log_entry.proto": label.New("go_googleapis", "google/logging/v2", "logging_go_proto"),
"google/logging/v2/logging.proto": label.New("go_googleapis", "google/logging/v2", "logging_go_proto"),
"google/logging/type/log_severity.proto": label.New("go_googleapis", "google/logging/type", "ltype_go_proto"),
"google/logging/type/http_request.proto": label.New("go_googleapis", "google/logging/type", "ltype_go_proto"),
}

View File

@ -1,96 +0,0 @@
/* Copyright 2018 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package language
import (
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/resolve"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
)
// Language describes an extension for Gazelle that provides support for
// a set of Bazel rules.
//
// Languages are used primarily by the fix and update commands. The order
// in which languages are used matters, since languages may depend on
// one another. For example, go depends on proto, since go_proto_libraries
// are generated from metadata stored in proto_libraries.
//
// A single instance of Language is created for each fix / update run. Some
// state may be stored in this instance, but stateless behavior is encouraged,
// especially since some operations may be concurrent in the future.
//
// Tasks languages are used for
//
// * Configuration (embedded interface config.Configurer). Languages may
// define command line flags and alter the configuration in a directory
// based on directives in build files.
//
// * Fixing deprecated usage of rules in build files.
//
// * Generating rules from source files in a directory.
//
// * Resolving library imports (embedded interface resolve.Resolver). For
// example, import strings like "github.com/foo/bar" in Go can be resolved
// into Bazel labels like "@com_github_foo_bar//:go_default_library".
//
// Tasks languages support
//
// * Generating load statements: languages list files and symbols that may
// be loaded.
//
// * Merging generated rules into existing rules: languages provide metadata
// that helps with rule matching, merging, and deletion.
type Language interface {
config.Configurer
resolve.Resolver
// Kinds returns a map of maps rule names (kinds) and information on how to
// match and merge attributes that may be found in rules of those kinds. All
// kinds of rules generated for this language may be found here.
Kinds() map[string]rule.KindInfo
// Loads returns .bzl files and symbols they define. Every rule generated by
// GenerateRules, now or in the past, should be loadable from one of these
// files.
Loads() []rule.LoadInfo
// GenerateRules extracts build metadata from source files in a directory.
// GenerateRules is called in each directory where an update is requested
// in depth-first post-order.
//
// c is the configuration for the current directory.
// dir is the absolute path to the directory to scan.
// rel is the relative path to the directory from the repository root.
// f is the build file. It may be nil. It should not be modified.
// subdirs is a list of subdirectory names.
// regularFiles is a list of normal files in the directory.
// genFiles is a list of generated files, found in outputs of rules.
// otherEmpty and otherGen are lists of empty and generated rules created
// by other languages processed before this language.
//
// empty is a list of empty rules that may be deleted after merge.
// gen is a list of generated rules that may be updated or added.
//
// Any non-fatal errors this function encounters should be logged using
// log.Print.
GenerateRules(c *config.Config, dir, rel string, f *rule.File, subdirs, regularFiles, genFiles []string, otherEmpty, otherGen []*rule.Rule) (empty, gen []*rule.Rule)
// Fix repairs deprecated usage of language-specific rules in f. This is
// called before the file is indexed. Unless c.ShouldFix is true, fixes
// that delete or rename rules should not be performed.
Fix(c *config.Config, f *rule.File)
}

View File

@ -1,28 +0,0 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"config.go",
"constants.go",
"fileinfo.go",
"fix.go",
"generate.go",
"kinds.go",
"known_imports.go",
"lang.go",
"package.go",
"resolve.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/language/proto",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/language/proto",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/language:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/repos:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/resolve:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/rule:go_default_library",
],
)

View File

@ -1,300 +0,0 @@
// Generated by internal/language/proto/gen/gen_known_imports.go
// From internal/language/proto/proto.csv
package proto
import "github.com/bazelbuild/bazel-gazelle/internal/label"
var knownImports = map[string]label.Label{
"google/protobuf/any.proto": label.New("com_google_protobuf", "", "any_proto"),
"google/protobuf/api.proto": label.New("com_google_protobuf", "", "api_proto"),
"google/protobuf/compiler/plugin.proto": label.New("com_google_protobuf", "", "compiler_plugin_proto"),
"google/protobuf/descriptor.proto": label.New("com_google_protobuf", "", "descriptor_proto"),
"google/protobuf/duration.proto": label.New("com_google_protobuf", "", "duration_proto"),
"google/protobuf/empty.proto": label.New("com_google_protobuf", "", "empty_proto"),
"google/protobuf/field_mask.proto": label.New("com_google_protobuf", "", "field_mask_proto"),
"google/protobuf/source_context.proto": label.New("com_google_protobuf", "", "source_context_proto"),
"google/protobuf/struct.proto": label.New("com_google_protobuf", "", "struct_proto"),
"google/protobuf/timestamp.proto": label.New("com_google_protobuf", "", "timestamp_proto"),
"google/protobuf/type.proto": label.New("com_google_protobuf", "", "type_proto"),
"google/protobuf/wrappers.proto": label.New("com_google_protobuf", "", "wrappers_proto"),
"google/assistant/embedded/v1alpha2/embedded_assistant.proto": label.New("go_googleapis", "google/assistant/embedded/v1alpha2", "embedded_proto"),
"google/assistant/embedded/v1alpha1/embedded_assistant.proto": label.New("go_googleapis", "google/assistant/embedded/v1alpha1", "embedded_proto"),
"google/home/graph/v1/device.proto": label.New("go_googleapis", "google/home/graph/v1", "graph_proto"),
"google/home/graph/v1/homegraph.proto": label.New("go_googleapis", "google/home/graph/v1", "graph_proto"),
"google/genomics/v1/operations.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/variants.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/position.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/references.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/cigar.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/datasets.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/readalignment.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/annotations.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/reads.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/readgroup.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/readgroupset.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/range.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1alpha2/pipelines.proto": label.New("go_googleapis", "google/genomics/v1alpha2", "genomics_proto"),
"google/bigtable/v1/bigtable_service_messages.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_proto"),
"google/bigtable/v1/bigtable_service.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_proto"),
"google/bigtable/v1/bigtable_data.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_data.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_service.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_proto"),
"google/bigtable/admin/v2/bigtable_instance_admin.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_proto"),
"google/bigtable/admin/v2/instance.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_proto"),
"google/bigtable/admin/v2/table.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_proto"),
"google/bigtable/admin/v2/bigtable_table_admin.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_proto"),
"google/bigtable/admin/v2/common.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_proto"),
"google/bigtable/admin/table/v1/bigtable_table_service_messages.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_proto"),
"google/bigtable/admin/table/v1/bigtable_table_service.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_proto"),
"google/bigtable/admin/table/v1/bigtable_table_data.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_proto"),
"google/bigtable/v2/bigtable.proto": label.New("go_googleapis", "google/bigtable/v2", "bigtable_proto"),
"google/bigtable/v2/data.proto": label.New("go_googleapis", "google/bigtable/v2", "bigtable_proto"),
"google/privacy/dlp/v2/storage.proto": label.New("go_googleapis", "google/privacy/dlp/v2", "dlp_proto"),
"google/privacy/dlp/v2/dlp.proto": label.New("go_googleapis", "google/privacy/dlp/v2", "dlp_proto"),
"google/watcher/v1/watch.proto": label.New("go_googleapis", "google/watcher/v1", "watcher_proto"),
"google/firestore/admin/v1beta1/firestore_admin.proto": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_proto"),
"google/firestore/admin/v1beta1/index.proto": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_proto"),
"google/firestore/v1beta1/write.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_proto"),
"google/firestore/v1beta1/document.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_proto"),
"google/firestore/v1beta1/firestore.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_proto"),
"google/firestore/v1beta1/query.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_proto"),
"google/firestore/v1beta1/common.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_proto"),
"google/example/library/v1/library.proto": label.New("go_googleapis", "google/example/library/v1", "library_proto"),
"google/appengine/v1/instance.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/audit_data.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/appengine.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/application.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/operation.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/app_yaml.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/location.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/service.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/deploy.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/version.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/legacy/audit_data.proto": label.New("go_googleapis", "google/appengine/legacy", "legacy_proto"),
"google/appengine/logging/v1/request_log.proto": label.New("go_googleapis", "google/appengine/logging/v1", "logging_proto"),
"google/storagetransfer/v1/transfer.proto": label.New("go_googleapis", "google/storagetransfer/v1", "storagetransfer_proto"),
"google/storagetransfer/v1/transfer_types.proto": label.New("go_googleapis", "google/storagetransfer/v1", "storagetransfer_proto"),
"google/longrunning/operations.proto": label.New("go_googleapis", "google/longrunning", "longrunning_proto"),
"google/container/v1/cluster_service.proto": label.New("go_googleapis", "google/container/v1", "container_proto"),
"google/container/v1beta1/cluster_service.proto": label.New("go_googleapis", "google/container/v1beta1", "container_proto"),
"google/container/v1alpha1/cluster_service.proto": label.New("go_googleapis", "google/container/v1alpha1", "container_proto"),
"google/datastore/v1beta3/datastore.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_proto"),
"google/datastore/v1beta3/query.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_proto"),
"google/datastore/v1beta3/entity.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_proto"),
"google/datastore/v1/datastore.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_proto"),
"google/datastore/v1/query.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_proto"),
"google/datastore/v1/entity.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_proto"),
"google/datastore/admin/v1/datastore_admin.proto": label.New("go_googleapis", "google/datastore/admin/v1", "admin_proto"),
"google/datastore/admin/v1beta1/datastore_admin.proto": label.New("go_googleapis", "google/datastore/admin/v1beta1", "admin_proto"),
"google/bytestream/bytestream.proto": label.New("go_googleapis", "google/bytestream", "bytestream_proto"),
"google/iam/v1/iam_policy.proto": label.New("go_googleapis", "google/iam/v1", "iam_proto"),
"google/iam/v1/policy.proto": label.New("go_googleapis", "google/iam/v1", "iam_proto"),
"google/iam/v1/logging/audit_data.proto": label.New("go_googleapis", "google/iam/v1/logging", "logging_proto"),
"google/iam/admin/v1/iam.proto": label.New("go_googleapis", "google/iam/admin/v1", "admin_proto"),
"google/type/money.proto": label.New("go_googleapis", "google/type", "money_proto"),
"google/type/latlng.proto": label.New("go_googleapis", "google/type", "latlng_proto"),
"google/type/color.proto": label.New("go_googleapis", "google/type", "color_proto"),
"google/type/timeofday.proto": label.New("go_googleapis", "google/type", "timeofday_proto"),
"google/type/date.proto": label.New("go_googleapis", "google/type", "date_proto"),
"google/type/dayofweek.proto": label.New("go_googleapis", "google/type", "dayofweek_proto"),
"google/type/postal_address.proto": label.New("go_googleapis", "google/type", "postaladdress_proto"),
"google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_proto"),
"google/devtools/clouderrorreporting/v1beta1/error_group_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_proto"),
"google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_proto"),
"google/devtools/clouderrorreporting/v1beta1/common.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_proto"),
"google/devtools/resultstore/v2/file.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/resultstore_download.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/configuration.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/action.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/resultstore_file_download.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/test_suite.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/file_set.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/coverage.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/coverage_summary.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/configured_target.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/target.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/invocation.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/common.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/source/v1/source_context.proto": label.New("go_googleapis", "google/devtools/source/v1", "source_proto"),
"google/devtools/remoteexecution/v1test/remote_execution.proto": label.New("go_googleapis", "google/devtools/remoteexecution/v1test", "remoteexecution_proto"),
"google/devtools/cloudbuild/v1/cloudbuild.proto": label.New("go_googleapis", "google/devtools/cloudbuild/v1", "cloudbuild_proto"),
"google/devtools/sourcerepo/v1/sourcerepo.proto": label.New("go_googleapis", "google/devtools/sourcerepo/v1", "sourcerepo_proto"),
"google/devtools/remoteworkers/v1test2/worker.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_proto"),
"google/devtools/remoteworkers/v1test2/tasks.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_proto"),
"google/devtools/remoteworkers/v1test2/bots.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_proto"),
"google/devtools/remoteworkers/v1test2/command.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_proto"),
"google/devtools/cloudtrace/v1/trace.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v1", "cloudtrace_proto"),
"google/devtools/cloudtrace/v2/trace.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v2", "cloudtrace_proto"),
"google/devtools/cloudtrace/v2/tracing.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v2", "cloudtrace_proto"),
"google/devtools/cloudprofiler/v2/profiler.proto": label.New("go_googleapis", "google/devtools/cloudprofiler/v2", "cloudprofiler_proto"),
"google/devtools/containeranalysis/v1alpha1/containeranalysis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1alpha1/bill_of_materials.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1alpha1/provenance.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1alpha1/package_vulnerability.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1alpha1/source_context.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1alpha1/image_basis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/build/v1/build_events.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_proto"),
"google/devtools/build/v1/build_status.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_proto"),
"google/devtools/build/v1/publish_build_event.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_proto"),
"google/devtools/clouddebugger/v2/debugger.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_proto"),
"google/devtools/clouddebugger/v2/data.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_proto"),
"google/devtools/clouddebugger/v2/controller.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_proto"),
"google/cloud/resourcemanager/v2/folders.proto": label.New("go_googleapis", "google/cloud/resourcemanager/v2", "resourcemanager_proto"),
"google/cloud/kms/v1/resources.proto": label.New("go_googleapis", "google/cloud/kms/v1", "kms_proto"),
"google/cloud/kms/v1/service.proto": label.New("go_googleapis", "google/cloud/kms/v1", "kms_proto"),
"google/cloud/runtimeconfig/v1beta1/resources.proto": label.New("go_googleapis", "google/cloud/runtimeconfig/v1beta1", "runtimeconfig_proto"),
"google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto": label.New("go_googleapis", "google/cloud/runtimeconfig/v1beta1", "runtimeconfig_proto"),
"google/cloud/tasks/v2beta2/queue.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_proto"),
"google/cloud/tasks/v2beta2/task.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_proto"),
"google/cloud/tasks/v2beta2/target.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_proto"),
"google/cloud/tasks/v2beta2/cloudtasks.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_proto"),
"google/cloud/oslogin/v1/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1", "oslogin_proto"),
"google/cloud/oslogin/v1alpha/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1alpha", "oslogin_proto"),
"google/cloud/oslogin/common/common.proto": label.New("go_googleapis", "google/cloud/oslogin/common", "common_proto"),
"google/cloud/oslogin/v1beta/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1beta", "oslogin_proto"),
"google/cloud/dialogflow/v2beta1/context.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/session_entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/intent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/webhook.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/session.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/agent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2/context.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/session_entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/intent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/webhook.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/session.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/agent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/redis/v1beta1/cloud_redis.proto": label.New("go_googleapis", "google/cloud/redis/v1beta1", "redis_proto"),
"google/cloud/location/locations.proto": label.New("go_googleapis", "google/cloud/location", "location_proto"),
"google/cloud/websecurityscanner/v1alpha/finding.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/scan_config.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/crawled_url.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/scan_run.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/finding_addon.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/language/v1/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1", "language_proto"),
"google/cloud/language/v1beta2/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1beta2", "language_proto"),
"google/cloud/language/v1beta1/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1beta1", "language_proto"),
"google/cloud/bigquery/datatransfer/v1/transfer.proto": label.New("go_googleapis", "google/cloud/bigquery/datatransfer/v1", "datatransfer_proto"),
"google/cloud/bigquery/datatransfer/v1/datatransfer.proto": label.New("go_googleapis", "google/cloud/bigquery/datatransfer/v1", "datatransfer_proto"),
"google/cloud/bigquery/logging/v1/audit_data.proto": label.New("go_googleapis", "google/cloud/bigquery/logging/v1", "logging_proto"),
"google/cloud/vision/v1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_proto"),
"google/cloud/vision/v1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_proto"),
"google/cloud/vision/v1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_proto"),
"google/cloud/vision/v1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_proto"),
"google/cloud/vision/v1p2beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_proto"),
"google/cloud/vision/v1p2beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_proto"),
"google/cloud/vision/v1p2beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_proto"),
"google/cloud/vision/v1p2beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_proto"),
"google/cloud/vision/v1p1beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_proto"),
"google/cloud/vision/v1p1beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_proto"),
"google/cloud/vision/v1p1beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_proto"),
"google/cloud/vision/v1p1beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_proto"),
"google/cloud/speech/v1/cloud_speech.proto": label.New("go_googleapis", "google/cloud/speech/v1", "speech_proto"),
"google/cloud/speech/v1beta1/cloud_speech.proto": label.New("go_googleapis", "google/cloud/speech/v1beta1", "speech_proto"),
"google/cloud/speech/v1p1beta1/cloud_speech.proto": label.New("go_googleapis", "google/cloud/speech/v1p1beta1", "speech_proto"),
"google/cloud/iot/v1/device_manager.proto": label.New("go_googleapis", "google/cloud/iot/v1", "iot_proto"),
"google/cloud/iot/v1/resources.proto": label.New("go_googleapis", "google/cloud/iot/v1", "iot_proto"),
"google/cloud/videointelligence/v1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1", "videointelligence_proto"),
"google/cloud/videointelligence/v1beta2/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1beta2", "videointelligence_proto"),
"google/cloud/videointelligence/v1beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1beta1", "videointelligence_proto"),
"google/cloud/videointelligence/v1p1beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1p1beta1", "videointelligence_proto"),
"google/cloud/audit/audit_log.proto": label.New("go_googleapis", "google/cloud/audit", "audit_proto"),
"google/cloud/support/common.proto": label.New("go_googleapis", "google/cloud/support", "common_proto"),
"google/cloud/support/v1alpha1/cloud_support.proto": label.New("go_googleapis", "google/cloud/support/v1alpha1", "support_proto"),
"google/cloud/ml/v1/operation_metadata.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_proto"),
"google/cloud/ml/v1/job_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_proto"),
"google/cloud/ml/v1/prediction_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_proto"),
"google/cloud/ml/v1/model_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_proto"),
"google/cloud/ml/v1/project_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_proto"),
"google/cloud/texttospeech/v1/cloud_tts.proto": label.New("go_googleapis", "google/cloud/texttospeech/v1", "texttospeech_proto"),
"google/cloud/texttospeech/v1beta1/cloud_tts.proto": label.New("go_googleapis", "google/cloud/texttospeech/v1beta1", "texttospeech_proto"),
"google/cloud/functions/v1beta2/operations.proto": label.New("go_googleapis", "google/cloud/functions/v1beta2", "functions_proto"),
"google/cloud/functions/v1beta2/functions.proto": label.New("go_googleapis", "google/cloud/functions/v1beta2", "functions_proto"),
"google/cloud/billing/v1/cloud_billing.proto": label.New("go_googleapis", "google/cloud/billing/v1", "billing_proto"),
"google/cloud/dataproc/v1/operations.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_proto"),
"google/cloud/dataproc/v1/clusters.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_proto"),
"google/cloud/dataproc/v1/jobs.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_proto"),
"google/cloud/dataproc/v1beta2/operations.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_proto"),
"google/cloud/dataproc/v1beta2/clusters.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_proto"),
"google/cloud/dataproc/v1beta2/jobs.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_proto"),
"google/cloud/dataproc/v1beta2/workflow_templates.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_proto"),
"google/cloud/dataproc/v1beta2/shared.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_proto"),
"google/api/context.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/http.proto": label.New("go_googleapis", "google/api", "annotations_proto"),
"google/api/config_change.proto": label.New("go_googleapis", "google/api", "configchange_proto"),
"google/api/system_parameter.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/monitoring.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/distribution.proto": label.New("go_googleapis", "google/api", "distribution_proto"),
"google/api/endpoint.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/usage.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/monitored_resource.proto": label.New("go_googleapis", "google/api", "monitoredres_proto"),
"google/api/annotations.proto": label.New("go_googleapis", "google/api", "annotations_proto"),
"google/api/control.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/metric.proto": label.New("go_googleapis", "google/api", "metric_proto"),
"google/api/label.proto": label.New("go_googleapis", "google/api", "label_proto"),
"google/api/consumer.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/log.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/billing.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/service.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/logging.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/documentation.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/quota.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/auth.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/backend.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/source_info.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/httpbody.proto": label.New("go_googleapis", "google/api", "httpbody_proto"),
"google/api/experimental/authorization_config.proto": label.New("go_googleapis", "google/api/experimental", "api_proto"),
"google/api/experimental/experimental.proto": label.New("go_googleapis", "google/api/experimental", "api_proto"),
"google/api/servicemanagement/v1/servicemanager.proto": label.New("go_googleapis", "google/api/servicemanagement/v1", "servicemanagement_proto"),
"google/api/servicemanagement/v1/resources.proto": label.New("go_googleapis", "google/api/servicemanagement/v1", "servicemanagement_proto"),
"google/api/servicecontrol/v1/quota_controller.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/distribution.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/check_error.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/operation.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/metric_value.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/log_entry.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/service_controller.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/pubsub/v1/pubsub.proto": label.New("go_googleapis", "google/pubsub/v1", "pubsub_proto"),
"google/pubsub/v1beta2/pubsub.proto": label.New("go_googleapis", "google/pubsub/v1beta2", "pubsub_proto"),
"google/spanner/v1/mutation.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/spanner.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/transaction.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/keys.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/type.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/query_plan.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/result_set.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/admin/database/v1/spanner_database_admin.proto": label.New("go_googleapis", "google/spanner/admin/database/v1", "database_proto"),
"google/spanner/admin/instance/v1/spanner_instance_admin.proto": label.New("go_googleapis", "google/spanner/admin/instance/v1", "instance_proto"),
"google/monitoring/v3/group.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/mutation_record.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/notification.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/alert_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/uptime_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/group_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/alert.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/uptime.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/metric.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/notification_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/metric_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/common.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/rpc/code.proto": label.New("go_googleapis", "google/rpc", "code_proto"),
"google/rpc/status.proto": label.New("go_googleapis", "google/rpc", "status_proto"),
"google/rpc/error_details.proto": label.New("go_googleapis", "google/rpc", "errdetails_proto"),
"google/streetview/publish/v1/resources.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_proto"),
"google/streetview/publish/v1/rpcmessages.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_proto"),
"google/streetview/publish/v1/streetview_publish.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_proto"),
"google/logging/v2/logging_metrics.proto": label.New("go_googleapis", "google/logging/v2", "logging_proto"),
"google/logging/v2/logging_config.proto": label.New("go_googleapis", "google/logging/v2", "logging_proto"),
"google/logging/v2/log_entry.proto": label.New("go_googleapis", "google/logging/v2", "logging_proto"),
"google/logging/v2/logging.proto": label.New("go_googleapis", "google/logging/v2", "logging_proto"),
"google/logging/type/log_severity.proto": label.New("go_googleapis", "google/logging/type", "ltype_proto"),
"google/logging/type/http_request.proto": label.New("go_googleapis", "google/logging/type", "ltype_proto"),
}

View File

@ -1,293 +0,0 @@
# This file lists special protos that Gazelle knows how to import. This is used to generate
# code for proto and Go resolvers.
#
# proto name,proto label,go import path,go proto label
google/protobuf/any.proto,@com_google_protobuf//:any_proto,github.com/golang/protobuf/ptypes/any,@io_bazel_rules_go//proto/wkt:any_go_proto
google/protobuf/api.proto,@com_google_protobuf//:api_proto,google.golang.org/genproto/protobuf/api,@io_bazel_rules_go//proto/wkt:api_go_proto
google/protobuf/compiler/plugin.proto,@com_google_protobuf//:compiler_plugin_proto,github.com/golang/protobuf/protoc-gen-go/plugin,@io_bazel_rules_go//proto/wkt:compiler_plugin_go_proto
google/protobuf/descriptor.proto,@com_google_protobuf//:descriptor_proto,github.com/golang/protobuf/protoc-gen-go/descriptor,@io_bazel_rules_go//proto/wkt:descriptor_go_proto
google/protobuf/duration.proto,@com_google_protobuf//:duration_proto,github.com/golang/protobuf/ptypes/duration,@io_bazel_rules_go//proto/wkt:duration_go_proto
google/protobuf/empty.proto,@com_google_protobuf//:empty_proto,github.com/golang/protobuf/ptypes/empty,@io_bazel_rules_go//proto/wkt:empty_go_proto
google/protobuf/field_mask.proto,@com_google_protobuf//:field_mask_proto,google.golang.org/genproto/protobuf/field_mask,@io_bazel_rules_go//proto/wkt:field_mask_go_proto
google/protobuf/source_context.proto,@com_google_protobuf//:source_context_proto,google.golang.org/genproto/protobuf/source_context,@io_bazel_rules_go//proto/wkt:source_context_go_proto
google/protobuf/struct.proto,@com_google_protobuf//:struct_proto,github.com/golang/protobuf/ptypes/struct,@io_bazel_rules_go//proto/wkt:struct_go_proto
google/protobuf/timestamp.proto,@com_google_protobuf//:timestamp_proto,github.com/golang/protobuf/ptypes/timestamp,@io_bazel_rules_go//proto/wkt:timestamp_go_proto
google/protobuf/type.proto,@com_google_protobuf//:type_proto,google.golang.org/genproto/protobuf/ptype,@io_bazel_rules_go//proto/wkt:type_go_proto
google/protobuf/wrappers.proto,@com_google_protobuf//:wrappers_proto,github.com/golang/protobuf/ptypes/wrappers,@io_bazel_rules_go//proto/wkt:wrappers_go_proto
google/assistant/embedded/v1alpha2/embedded_assistant.proto,@go_googleapis//google/assistant/embedded/v1alpha2:embedded_proto,google.golang.org/genproto/googleapis/assistant/embedded/v1alpha2,@go_googleapis//google/assistant/embedded/v1alpha2:embedded_go_proto
google/assistant/embedded/v1alpha1/embedded_assistant.proto,@go_googleapis//google/assistant/embedded/v1alpha1:embedded_proto,google.golang.org/genproto/googleapis/assistant/embedded/v1alpha1,@go_googleapis//google/assistant/embedded/v1alpha1:embedded_go_proto
google/home/graph/v1/device.proto,@go_googleapis//google/home/graph/v1:graph_proto,google.golang.org/genproto/googleapis/home/graph/v1,@go_googleapis//google/home/graph/v1:graph_go_proto
google/home/graph/v1/homegraph.proto,@go_googleapis//google/home/graph/v1:graph_proto,google.golang.org/genproto/googleapis/home/graph/v1,@go_googleapis//google/home/graph/v1:graph_go_proto
google/genomics/v1/operations.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/variants.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/position.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/references.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/cigar.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/datasets.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/readalignment.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/annotations.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/reads.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/readgroup.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/readgroupset.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/range.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1alpha2/pipelines.proto,@go_googleapis//google/genomics/v1alpha2:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1alpha2,@go_googleapis//google/genomics/v1alpha2:genomics_go_proto
google/bigtable/v1/bigtable_service_messages.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
google/bigtable/v1/bigtable_service.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
google/bigtable/v1/bigtable_data.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
google/bigtable/admin/cluster/v1/bigtable_cluster_data.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
google/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
google/bigtable/admin/cluster/v1/bigtable_cluster_service.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
google/bigtable/admin/v2/bigtable_instance_admin.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
google/bigtable/admin/v2/instance.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
google/bigtable/admin/v2/table.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
google/bigtable/admin/v2/bigtable_table_admin.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
google/bigtable/admin/v2/common.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
google/bigtable/admin/table/v1/bigtable_table_service_messages.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
google/bigtable/admin/table/v1/bigtable_table_service.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
google/bigtable/admin/table/v1/bigtable_table_data.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
google/bigtable/v2/bigtable.proto,@go_googleapis//google/bigtable/v2:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v2,@go_googleapis//google/bigtable/v2:bigtable_go_proto
google/bigtable/v2/data.proto,@go_googleapis//google/bigtable/v2:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v2,@go_googleapis//google/bigtable/v2:bigtable_go_proto
google/privacy/dlp/v2/storage.proto,@go_googleapis//google/privacy/dlp/v2:dlp_proto,google.golang.org/genproto/googleapis/privacy/dlp/v2,@go_googleapis//google/privacy/dlp/v2:dlp_go_proto
google/privacy/dlp/v2/dlp.proto,@go_googleapis//google/privacy/dlp/v2:dlp_proto,google.golang.org/genproto/googleapis/privacy/dlp/v2,@go_googleapis//google/privacy/dlp/v2:dlp_go_proto
google/watcher/v1/watch.proto,@go_googleapis//google/watcher/v1:watcher_proto,google.golang.org/genproto/googleapis/watcher/v1,@go_googleapis//google/watcher/v1:watcher_go_proto
google/firestore/admin/v1beta1/firestore_admin.proto,@go_googleapis//google/firestore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta1,@go_googleapis//google/firestore/admin/v1beta1:admin_go_proto
google/firestore/admin/v1beta1/index.proto,@go_googleapis//google/firestore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta1,@go_googleapis//google/firestore/admin/v1beta1:admin_go_proto
google/firestore/v1beta1/write.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
google/firestore/v1beta1/document.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
google/firestore/v1beta1/firestore.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
google/firestore/v1beta1/query.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
google/firestore/v1beta1/common.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
google/example/library/v1/library.proto,@go_googleapis//google/example/library/v1:library_proto,google.golang.org/genproto/googleapis/example/library/v1,@go_googleapis//google/example/library/v1:library_go_proto
google/appengine/v1/instance.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/audit_data.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/appengine.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/application.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/operation.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/app_yaml.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/location.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/service.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/deploy.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/version.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/legacy/audit_data.proto,@go_googleapis//google/appengine/legacy:legacy_proto,google.golang.org/genproto/googleapis/appengine/legacy,@go_googleapis//google/appengine/legacy:legacy_go_proto
google/appengine/logging/v1/request_log.proto,@go_googleapis//google/appengine/logging/v1:logging_proto,google.golang.org/genproto/googleapis/appengine/logging/v1,@go_googleapis//google/appengine/logging/v1:logging_go_proto
google/storagetransfer/v1/transfer.proto,@go_googleapis//google/storagetransfer/v1:storagetransfer_proto,google.golang.org/genproto/googleapis/storagetransfer/v1,@go_googleapis//google/storagetransfer/v1:storagetransfer_go_proto
google/storagetransfer/v1/transfer_types.proto,@go_googleapis//google/storagetransfer/v1:storagetransfer_proto,google.golang.org/genproto/googleapis/storagetransfer/v1,@go_googleapis//google/storagetransfer/v1:storagetransfer_go_proto
google/longrunning/operations.proto,@go_googleapis//google/longrunning:longrunning_proto,google.golang.org/genproto/googleapis/longrunning,@go_googleapis//google/longrunning:longrunning_go_proto
google/container/v1/cluster_service.proto,@go_googleapis//google/container/v1:container_proto,google.golang.org/genproto/googleapis/container/v1,@go_googleapis//google/container/v1:container_go_proto
google/container/v1beta1/cluster_service.proto,@go_googleapis//google/container/v1beta1:container_proto,google.golang.org/genproto/googleapis/container/v1beta1,@go_googleapis//google/container/v1beta1:container_go_proto
google/container/v1alpha1/cluster_service.proto,@go_googleapis//google/container/v1alpha1:container_proto,google.golang.org/genproto/googleapis/container/v1alpha1,@go_googleapis//google/container/v1alpha1:container_go_proto
google/datastore/v1beta3/datastore.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
google/datastore/v1beta3/query.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
google/datastore/v1beta3/entity.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
google/datastore/v1/datastore.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
google/datastore/v1/query.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
google/datastore/v1/entity.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
google/datastore/admin/v1/datastore_admin.proto,@go_googleapis//google/datastore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/datastore/admin/v1,@go_googleapis//google/datastore/admin/v1:admin_go_proto
google/datastore/admin/v1beta1/datastore_admin.proto,@go_googleapis//google/datastore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/datastore/admin/v1beta1,@go_googleapis//google/datastore/admin/v1beta1:admin_go_proto
google/bytestream/bytestream.proto,@go_googleapis//google/bytestream:bytestream_proto,google.golang.org/genproto/googleapis/bytestream,@go_googleapis//google/bytestream:bytestream_go_proto
google/iam/v1/iam_policy.proto,@go_googleapis//google/iam/v1:iam_proto,google.golang.org/genproto/googleapis/iam/v1,@go_googleapis//google/iam/v1:iam_go_proto
google/iam/v1/policy.proto,@go_googleapis//google/iam/v1:iam_proto,google.golang.org/genproto/googleapis/iam/v1,@go_googleapis//google/iam/v1:iam_go_proto
google/iam/v1/logging/audit_data.proto,@go_googleapis//google/iam/v1/logging:logging_proto,google.golang.org/genproto/googleapis/iam/v1/logging,@go_googleapis//google/iam/v1/logging:logging_go_proto
google/iam/admin/v1/iam.proto,@go_googleapis//google/iam/admin/v1:admin_proto,google.golang.org/genproto/googleapis/iam/admin/v1,@go_googleapis//google/iam/admin/v1:admin_go_proto
google/type/money.proto,@go_googleapis//google/type:money_proto,google.golang.org/genproto/googleapis/type/money,@go_googleapis//google/type:money_go_proto
google/type/latlng.proto,@go_googleapis//google/type:latlng_proto,google.golang.org/genproto/googleapis/type/latlng,@go_googleapis//google/type:latlng_go_proto
google/type/color.proto,@go_googleapis//google/type:color_proto,google.golang.org/genproto/googleapis/type/color,@go_googleapis//google/type:color_go_proto
google/type/timeofday.proto,@go_googleapis//google/type:timeofday_proto,google.golang.org/genproto/googleapis/type/timeofday,@go_googleapis//google/type:timeofday_go_proto
google/type/date.proto,@go_googleapis//google/type:date_proto,google.golang.org/genproto/googleapis/type/date,@go_googleapis//google/type:date_go_proto
google/type/dayofweek.proto,@go_googleapis//google/type:dayofweek_proto,google.golang.org/genproto/googleapis/type/dayofweek,@go_googleapis//google/type:dayofweek_go_proto
google/type/postal_address.proto,@go_googleapis//google/type:postaladdress_proto,google.golang.org/genproto/googleapis/type/postaladdress,@go_googleapis//google/type:postaladdress_go_proto
google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
google/devtools/clouderrorreporting/v1beta1/error_group_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
google/devtools/clouderrorreporting/v1beta1/common.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
google/devtools/resultstore/v2/file.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/resultstore_download.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/configuration.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/action.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/resultstore_file_download.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/test_suite.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/file_set.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/coverage.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/coverage_summary.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/configured_target.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/target.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/invocation.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/common.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/source/v1/source_context.proto,@go_googleapis//google/devtools/source/v1:source_proto,google.golang.org/genproto/googleapis/devtools/source/v1,@go_googleapis//google/devtools/source/v1:source_go_proto
google/devtools/remoteexecution/v1test/remote_execution.proto,@go_googleapis//google/devtools/remoteexecution/v1test:remoteexecution_proto,google.golang.org/genproto/googleapis/devtools/remoteexecution/v1test,@go_googleapis//google/devtools/remoteexecution/v1test:remoteexecution_go_proto
google/devtools/cloudbuild/v1/cloudbuild.proto,@go_googleapis//google/devtools/cloudbuild/v1:cloudbuild_proto,google.golang.org/genproto/googleapis/devtools/cloudbuild/v1,@go_googleapis//google/devtools/cloudbuild/v1:cloudbuild_go_proto
google/devtools/sourcerepo/v1/sourcerepo.proto,@go_googleapis//google/devtools/sourcerepo/v1:sourcerepo_proto,google.golang.org/genproto/googleapis/devtools/sourcerepo/v1,@go_googleapis//google/devtools/sourcerepo/v1:sourcerepo_go_proto
google/devtools/remoteworkers/v1test2/worker.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
google/devtools/remoteworkers/v1test2/tasks.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
google/devtools/remoteworkers/v1test2/bots.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
google/devtools/remoteworkers/v1test2/command.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
google/devtools/cloudtrace/v1/trace.proto,@go_googleapis//google/devtools/cloudtrace/v1:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v1,@go_googleapis//google/devtools/cloudtrace/v1:cloudtrace_go_proto
google/devtools/cloudtrace/v2/trace.proto,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v2,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_go_proto
google/devtools/cloudtrace/v2/tracing.proto,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v2,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_go_proto
google/devtools/cloudprofiler/v2/profiler.proto,@go_googleapis//google/devtools/cloudprofiler/v2:cloudprofiler_proto,google.golang.org/genproto/googleapis/devtools/cloudprofiler/v2,@go_googleapis//google/devtools/cloudprofiler/v2:cloudprofiler_go_proto
google/devtools/containeranalysis/v1alpha1/containeranalysis.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1alpha1/bill_of_materials.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1alpha1/provenance.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1alpha1/package_vulnerability.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1alpha1/source_context.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1alpha1/image_basis.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/build/v1/build_events.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
google/devtools/build/v1/build_status.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
google/devtools/build/v1/publish_build_event.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
google/devtools/clouddebugger/v2/debugger.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
google/devtools/clouddebugger/v2/data.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
google/devtools/clouddebugger/v2/controller.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
google/cloud/resourcemanager/v2/folders.proto,@go_googleapis//google/cloud/resourcemanager/v2:resourcemanager_proto,google.golang.org/genproto/googleapis/cloud/resourcemanager/v2,@go_googleapis//google/cloud/resourcemanager/v2:resourcemanager_go_proto
google/cloud/kms/v1/resources.proto,@go_googleapis//google/cloud/kms/v1:kms_proto,google.golang.org/genproto/googleapis/cloud/kms/v1,@go_googleapis//google/cloud/kms/v1:kms_go_proto
google/cloud/kms/v1/service.proto,@go_googleapis//google/cloud/kms/v1:kms_proto,google.golang.org/genproto/googleapis/cloud/kms/v1,@go_googleapis//google/cloud/kms/v1:kms_go_proto
google/cloud/runtimeconfig/v1beta1/resources.proto,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_proto,google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_go_proto
google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_proto,google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_go_proto
google/cloud/tasks/v2beta2/queue.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
google/cloud/tasks/v2beta2/task.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
google/cloud/tasks/v2beta2/target.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
google/cloud/tasks/v2beta2/cloudtasks.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
google/cloud/oslogin/v1/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1,@go_googleapis//google/cloud/oslogin/v1:oslogin_go_proto
google/cloud/oslogin/v1alpha/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1alpha:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1alpha,@go_googleapis//google/cloud/oslogin/v1alpha:oslogin_go_proto
google/cloud/oslogin/common/common.proto,@go_googleapis//google/cloud/oslogin/common:common_proto,google.golang.org/genproto/googleapis/cloud/oslogin/common,@go_googleapis//google/cloud/oslogin/common:common_go_proto
google/cloud/oslogin/v1beta/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1beta:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1beta,@go_googleapis//google/cloud/oslogin/v1beta:oslogin_go_proto
google/cloud/dialogflow/v2beta1/context.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/session_entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/intent.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/webhook.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/session.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/agent.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2/context.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/session_entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/intent.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/webhook.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/session.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/agent.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/redis/v1beta1/cloud_redis.proto,@go_googleapis//google/cloud/redis/v1beta1:redis_proto,google.golang.org/genproto/googleapis/cloud/redis/v1beta1,@go_googleapis//google/cloud/redis/v1beta1:redis_go_proto
google/cloud/location/locations.proto,@go_googleapis//google/cloud/location:location_proto,google.golang.org/genproto/googleapis/cloud/location,@go_googleapis//google/cloud/location:location_go_proto
google/cloud/websecurityscanner/v1alpha/finding.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/scan_config.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/crawled_url.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/scan_run.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/finding_addon.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/language/v1/language_service.proto,@go_googleapis//google/cloud/language/v1:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1,@go_googleapis//google/cloud/language/v1:language_go_proto
google/cloud/language/v1beta2/language_service.proto,@go_googleapis//google/cloud/language/v1beta2:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1beta2,@go_googleapis//google/cloud/language/v1beta2:language_go_proto
google/cloud/language/v1beta1/language_service.proto,@go_googleapis//google/cloud/language/v1beta1:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1beta1,@go_googleapis//google/cloud/language/v1beta1:language_go_proto
google/cloud/bigquery/datatransfer/v1/transfer.proto,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_proto,google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_go_proto
google/cloud/bigquery/datatransfer/v1/datatransfer.proto,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_proto,google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_go_proto
google/cloud/bigquery/logging/v1/audit_data.proto,@go_googleapis//google/cloud/bigquery/logging/v1:logging_proto,google.golang.org/genproto/googleapis/cloud/bigquery/logging/v1,@go_googleapis//google/cloud/bigquery/logging/v1:logging_go_proto
google/cloud/vision/v1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
google/cloud/vision/v1/geometry.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
google/cloud/vision/v1/web_detection.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
google/cloud/vision/v1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
google/cloud/vision/v1p2beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
google/cloud/vision/v1p2beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
google/cloud/vision/v1p2beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
google/cloud/vision/v1p2beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
google/cloud/vision/v1p1beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
google/cloud/vision/v1p1beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
google/cloud/vision/v1p1beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
google/cloud/vision/v1p1beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
google/cloud/speech/v1/cloud_speech.proto,@go_googleapis//google/cloud/speech/v1:speech_proto,google.golang.org/genproto/googleapis/cloud/speech/v1,@go_googleapis//google/cloud/speech/v1:speech_go_proto
google/cloud/speech/v1beta1/cloud_speech.proto,@go_googleapis//google/cloud/speech/v1beta1:speech_proto,google.golang.org/genproto/googleapis/cloud/speech/v1beta1,@go_googleapis//google/cloud/speech/v1beta1:speech_go_proto
google/cloud/speech/v1p1beta1/cloud_speech.proto,@go_googleapis//google/cloud/speech/v1p1beta1:speech_proto,google.golang.org/genproto/googleapis/cloud/speech/v1p1beta1,@go_googleapis//google/cloud/speech/v1p1beta1:speech_go_proto
google/cloud/iot/v1/device_manager.proto,@go_googleapis//google/cloud/iot/v1:iot_proto,google.golang.org/genproto/googleapis/cloud/iot/v1,@go_googleapis//google/cloud/iot/v1:iot_go_proto
google/cloud/iot/v1/resources.proto,@go_googleapis//google/cloud/iot/v1:iot_proto,google.golang.org/genproto/googleapis/cloud/iot/v1,@go_googleapis//google/cloud/iot/v1:iot_go_proto
google/cloud/videointelligence/v1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1,@go_googleapis//google/cloud/videointelligence/v1:videointelligence_go_proto
google/cloud/videointelligence/v1beta2/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1beta2:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta2,@go_googleapis//google/cloud/videointelligence/v1beta2:videointelligence_go_proto
google/cloud/videointelligence/v1beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta1,@go_googleapis//google/cloud/videointelligence/v1beta1:videointelligence_go_proto
google/cloud/videointelligence/v1p1beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1p1beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1p1beta1,@go_googleapis//google/cloud/videointelligence/v1p1beta1:videointelligence_go_proto
google/cloud/audit/audit_log.proto,@go_googleapis//google/cloud/audit:audit_proto,google.golang.org/genproto/googleapis/cloud/audit,@go_googleapis//google/cloud/audit:audit_go_proto
google/cloud/support/common.proto,@go_googleapis//google/cloud/support:common_proto,google.golang.org/genproto/googleapis/cloud/support/common,@go_googleapis//google/cloud/support:common_go_proto
google/cloud/support/v1alpha1/cloud_support.proto,@go_googleapis//google/cloud/support/v1alpha1:support_proto,google.golang.org/genproto/googleapis/cloud/support/v1alpha1,@go_googleapis//google/cloud/support/v1alpha1:support_go_proto
google/cloud/ml/v1/operation_metadata.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
google/cloud/ml/v1/job_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
google/cloud/ml/v1/prediction_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
google/cloud/ml/v1/model_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
google/cloud/ml/v1/project_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
google/cloud/texttospeech/v1/cloud_tts.proto,@go_googleapis//google/cloud/texttospeech/v1:texttospeech_proto,google.golang.org/genproto/googleapis/cloud/texttospeech/v1,@go_googleapis//google/cloud/texttospeech/v1:texttospeech_go_proto
google/cloud/texttospeech/v1beta1/cloud_tts.proto,@go_googleapis//google/cloud/texttospeech/v1beta1:texttospeech_proto,google.golang.org/genproto/googleapis/cloud/texttospeech/v1beta1,@go_googleapis//google/cloud/texttospeech/v1beta1:texttospeech_go_proto
google/cloud/functions/v1beta2/operations.proto,@go_googleapis//google/cloud/functions/v1beta2:functions_proto,google.golang.org/genproto/googleapis/cloud/functions/v1beta2,@go_googleapis//google/cloud/functions/v1beta2:functions_go_proto
google/cloud/functions/v1beta2/functions.proto,@go_googleapis//google/cloud/functions/v1beta2:functions_proto,google.golang.org/genproto/googleapis/cloud/functions/v1beta2,@go_googleapis//google/cloud/functions/v1beta2:functions_go_proto
google/cloud/billing/v1/cloud_billing.proto,@go_googleapis//google/cloud/billing/v1:billing_proto,google.golang.org/genproto/googleapis/cloud/billing/v1,@go_googleapis//google/cloud/billing/v1:billing_go_proto
google/cloud/dataproc/v1/operations.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
google/cloud/dataproc/v1/clusters.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
google/cloud/dataproc/v1/jobs.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
google/cloud/dataproc/v1beta2/operations.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
google/cloud/dataproc/v1beta2/clusters.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
google/cloud/dataproc/v1beta2/jobs.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
google/cloud/dataproc/v1beta2/workflow_templates.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
google/cloud/dataproc/v1beta2/shared.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
google/api/context.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/http.proto,@go_googleapis//google/api:annotations_proto,google.golang.org/genproto/googleapis/api/annotations,@go_googleapis//google/api:annotations_go_proto
google/api/config_change.proto,@go_googleapis//google/api:configchange_proto,google.golang.org/genproto/googleapis/api/configchange,@go_googleapis//google/api:configchange_go_proto
google/api/system_parameter.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/monitoring.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/distribution.proto,@go_googleapis//google/api:distribution_proto,google.golang.org/genproto/googleapis/api/distribution,@go_googleapis//google/api:distribution_go_proto
google/api/endpoint.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/usage.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/monitored_resource.proto,@go_googleapis//google/api:monitoredres_proto,google.golang.org/genproto/googleapis/api/monitoredres,@go_googleapis//google/api:monitoredres_go_proto
google/api/annotations.proto,@go_googleapis//google/api:annotations_proto,google.golang.org/genproto/googleapis/api/annotations,@go_googleapis//google/api:annotations_go_proto
google/api/control.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/metric.proto,@go_googleapis//google/api:metric_proto,google.golang.org/genproto/googleapis/api/metric,@go_googleapis//google/api:metric_go_proto
google/api/label.proto,@go_googleapis//google/api:label_proto,google.golang.org/genproto/googleapis/api/label,@go_googleapis//google/api:label_go_proto
google/api/consumer.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/log.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/billing.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/service.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/logging.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/documentation.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/quota.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/auth.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/backend.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/source_info.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/httpbody.proto,@go_googleapis//google/api:httpbody_proto,google.golang.org/genproto/googleapis/api/httpbody,@go_googleapis//google/api:httpbody_go_proto
google/api/experimental/authorization_config.proto,@go_googleapis//google/api/experimental:api_proto,google.golang.org/genproto/googleapis/api,@go_googleapis//google/api/experimental:api_go_proto
google/api/experimental/experimental.proto,@go_googleapis//google/api/experimental:api_proto,google.golang.org/genproto/googleapis/api,@go_googleapis//google/api/experimental:api_go_proto
google/api/servicemanagement/v1/servicemanager.proto,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_proto,google.golang.org/genproto/googleapis/api/servicemanagement/v1,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_go_proto
google/api/servicemanagement/v1/resources.proto,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_proto,google.golang.org/genproto/googleapis/api/servicemanagement/v1,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_go_proto
google/api/servicecontrol/v1/quota_controller.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/distribution.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/check_error.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/operation.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/metric_value.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/log_entry.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/service_controller.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/pubsub/v1/pubsub.proto,@go_googleapis//google/pubsub/v1:pubsub_proto,google.golang.org/genproto/googleapis/pubsub/v1,@go_googleapis//google/pubsub/v1:pubsub_go_proto
google/pubsub/v1beta2/pubsub.proto,@go_googleapis//google/pubsub/v1beta2:pubsub_proto,google.golang.org/genproto/googleapis/pubsub/v1beta2,@go_googleapis//google/pubsub/v1beta2:pubsub_go_proto
google/spanner/v1/mutation.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/spanner.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/transaction.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/keys.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/type.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/query_plan.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/result_set.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/admin/database/v1/spanner_database_admin.proto,@go_googleapis//google/spanner/admin/database/v1:database_proto,google.golang.org/genproto/googleapis/spanner/admin/database/v1,@go_googleapis//google/spanner/admin/database/v1:database_go_proto
google/spanner/admin/instance/v1/spanner_instance_admin.proto,@go_googleapis//google/spanner/admin/instance/v1:instance_proto,google.golang.org/genproto/googleapis/spanner/admin/instance/v1,@go_googleapis//google/spanner/admin/instance/v1:instance_go_proto
google/monitoring/v3/group.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/mutation_record.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/notification.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/alert_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/uptime_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/group_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/alert.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/uptime.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/metric.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/notification_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/metric_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/common.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/rpc/code.proto,@go_googleapis//google/rpc:code_proto,google.golang.org/genproto/googleapis/rpc/code,@go_googleapis//google/rpc:code_go_proto
google/rpc/status.proto,@go_googleapis//google/rpc:status_proto,google.golang.org/genproto/googleapis/rpc/status,@go_googleapis//google/rpc:status_go_proto
google/rpc/error_details.proto,@go_googleapis//google/rpc:errdetails_proto,google.golang.org/genproto/googleapis/rpc/errdetails,@go_googleapis//google/rpc:errdetails_go_proto
google/streetview/publish/v1/resources.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
google/streetview/publish/v1/rpcmessages.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
google/streetview/publish/v1/streetview_publish.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
google/logging/v2/logging_metrics.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
google/logging/v2/logging_config.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
google/logging/v2/log_entry.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
google/logging/v2/logging.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
google/logging/type/log_severity.proto,@go_googleapis//google/logging/type:ltype_proto,google.golang.org/genproto/googleapis/logging/type,@go_googleapis//google/logging/type:ltype_go_proto
google/logging/type/http_request.proto,@go_googleapis//google/logging/type:ltype_proto,google.golang.org/genproto/googleapis/logging/type,@go_googleapis//google/logging/type:ltype_go_proto
1 # This file lists special protos that Gazelle knows how to import. This is used to generate
2 # code for proto and Go resolvers.
3 #
4 # proto name,proto label,go import path,go proto label
5 google/protobuf/any.proto,@com_google_protobuf//:any_proto,github.com/golang/protobuf/ptypes/any,@io_bazel_rules_go//proto/wkt:any_go_proto
6 google/protobuf/api.proto,@com_google_protobuf//:api_proto,google.golang.org/genproto/protobuf/api,@io_bazel_rules_go//proto/wkt:api_go_proto
7 google/protobuf/compiler/plugin.proto,@com_google_protobuf//:compiler_plugin_proto,github.com/golang/protobuf/protoc-gen-go/plugin,@io_bazel_rules_go//proto/wkt:compiler_plugin_go_proto
8 google/protobuf/descriptor.proto,@com_google_protobuf//:descriptor_proto,github.com/golang/protobuf/protoc-gen-go/descriptor,@io_bazel_rules_go//proto/wkt:descriptor_go_proto
9 google/protobuf/duration.proto,@com_google_protobuf//:duration_proto,github.com/golang/protobuf/ptypes/duration,@io_bazel_rules_go//proto/wkt:duration_go_proto
10 google/protobuf/empty.proto,@com_google_protobuf//:empty_proto,github.com/golang/protobuf/ptypes/empty,@io_bazel_rules_go//proto/wkt:empty_go_proto
11 google/protobuf/field_mask.proto,@com_google_protobuf//:field_mask_proto,google.golang.org/genproto/protobuf/field_mask,@io_bazel_rules_go//proto/wkt:field_mask_go_proto
12 google/protobuf/source_context.proto,@com_google_protobuf//:source_context_proto,google.golang.org/genproto/protobuf/source_context,@io_bazel_rules_go//proto/wkt:source_context_go_proto
13 google/protobuf/struct.proto,@com_google_protobuf//:struct_proto,github.com/golang/protobuf/ptypes/struct,@io_bazel_rules_go//proto/wkt:struct_go_proto
14 google/protobuf/timestamp.proto,@com_google_protobuf//:timestamp_proto,github.com/golang/protobuf/ptypes/timestamp,@io_bazel_rules_go//proto/wkt:timestamp_go_proto
15 google/protobuf/type.proto,@com_google_protobuf//:type_proto,google.golang.org/genproto/protobuf/ptype,@io_bazel_rules_go//proto/wkt:type_go_proto
16 google/protobuf/wrappers.proto,@com_google_protobuf//:wrappers_proto,github.com/golang/protobuf/ptypes/wrappers,@io_bazel_rules_go//proto/wkt:wrappers_go_proto
17 google/assistant/embedded/v1alpha2/embedded_assistant.proto,@go_googleapis//google/assistant/embedded/v1alpha2:embedded_proto,google.golang.org/genproto/googleapis/assistant/embedded/v1alpha2,@go_googleapis//google/assistant/embedded/v1alpha2:embedded_go_proto
18 google/assistant/embedded/v1alpha1/embedded_assistant.proto,@go_googleapis//google/assistant/embedded/v1alpha1:embedded_proto,google.golang.org/genproto/googleapis/assistant/embedded/v1alpha1,@go_googleapis//google/assistant/embedded/v1alpha1:embedded_go_proto
19 google/home/graph/v1/device.proto,@go_googleapis//google/home/graph/v1:graph_proto,google.golang.org/genproto/googleapis/home/graph/v1,@go_googleapis//google/home/graph/v1:graph_go_proto
20 google/home/graph/v1/homegraph.proto,@go_googleapis//google/home/graph/v1:graph_proto,google.golang.org/genproto/googleapis/home/graph/v1,@go_googleapis//google/home/graph/v1:graph_go_proto
21 google/genomics/v1/operations.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
22 google/genomics/v1/variants.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
23 google/genomics/v1/position.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
24 google/genomics/v1/references.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
25 google/genomics/v1/cigar.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
26 google/genomics/v1/datasets.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
27 google/genomics/v1/readalignment.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
28 google/genomics/v1/annotations.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
29 google/genomics/v1/reads.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
30 google/genomics/v1/readgroup.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
31 google/genomics/v1/readgroupset.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
32 google/genomics/v1/range.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
33 google/genomics/v1alpha2/pipelines.proto,@go_googleapis//google/genomics/v1alpha2:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1alpha2,@go_googleapis//google/genomics/v1alpha2:genomics_go_proto
34 google/bigtable/v1/bigtable_service_messages.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
35 google/bigtable/v1/bigtable_service.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
36 google/bigtable/v1/bigtable_data.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
37 google/bigtable/admin/cluster/v1/bigtable_cluster_data.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
38 google/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
39 google/bigtable/admin/cluster/v1/bigtable_cluster_service.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
40 google/bigtable/admin/v2/bigtable_instance_admin.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
41 google/bigtable/admin/v2/instance.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
42 google/bigtable/admin/v2/table.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
43 google/bigtable/admin/v2/bigtable_table_admin.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
44 google/bigtable/admin/v2/common.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
45 google/bigtable/admin/table/v1/bigtable_table_service_messages.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
46 google/bigtable/admin/table/v1/bigtable_table_service.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
47 google/bigtable/admin/table/v1/bigtable_table_data.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
48 google/bigtable/v2/bigtable.proto,@go_googleapis//google/bigtable/v2:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v2,@go_googleapis//google/bigtable/v2:bigtable_go_proto
49 google/bigtable/v2/data.proto,@go_googleapis//google/bigtable/v2:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v2,@go_googleapis//google/bigtable/v2:bigtable_go_proto
50 google/privacy/dlp/v2/storage.proto,@go_googleapis//google/privacy/dlp/v2:dlp_proto,google.golang.org/genproto/googleapis/privacy/dlp/v2,@go_googleapis//google/privacy/dlp/v2:dlp_go_proto
51 google/privacy/dlp/v2/dlp.proto,@go_googleapis//google/privacy/dlp/v2:dlp_proto,google.golang.org/genproto/googleapis/privacy/dlp/v2,@go_googleapis//google/privacy/dlp/v2:dlp_go_proto
52 google/watcher/v1/watch.proto,@go_googleapis//google/watcher/v1:watcher_proto,google.golang.org/genproto/googleapis/watcher/v1,@go_googleapis//google/watcher/v1:watcher_go_proto
53 google/firestore/admin/v1beta1/firestore_admin.proto,@go_googleapis//google/firestore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta1,@go_googleapis//google/firestore/admin/v1beta1:admin_go_proto
54 google/firestore/admin/v1beta1/index.proto,@go_googleapis//google/firestore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta1,@go_googleapis//google/firestore/admin/v1beta1:admin_go_proto
55 google/firestore/v1beta1/write.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
56 google/firestore/v1beta1/document.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
57 google/firestore/v1beta1/firestore.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
58 google/firestore/v1beta1/query.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
59 google/firestore/v1beta1/common.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
60 google/example/library/v1/library.proto,@go_googleapis//google/example/library/v1:library_proto,google.golang.org/genproto/googleapis/example/library/v1,@go_googleapis//google/example/library/v1:library_go_proto
61 google/appengine/v1/instance.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
62 google/appengine/v1/audit_data.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
63 google/appengine/v1/appengine.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
64 google/appengine/v1/application.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
65 google/appengine/v1/operation.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
66 google/appengine/v1/app_yaml.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
67 google/appengine/v1/location.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
68 google/appengine/v1/service.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
69 google/appengine/v1/deploy.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
70 google/appengine/v1/version.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
71 google/appengine/legacy/audit_data.proto,@go_googleapis//google/appengine/legacy:legacy_proto,google.golang.org/genproto/googleapis/appengine/legacy,@go_googleapis//google/appengine/legacy:legacy_go_proto
72 google/appengine/logging/v1/request_log.proto,@go_googleapis//google/appengine/logging/v1:logging_proto,google.golang.org/genproto/googleapis/appengine/logging/v1,@go_googleapis//google/appengine/logging/v1:logging_go_proto
73 google/storagetransfer/v1/transfer.proto,@go_googleapis//google/storagetransfer/v1:storagetransfer_proto,google.golang.org/genproto/googleapis/storagetransfer/v1,@go_googleapis//google/storagetransfer/v1:storagetransfer_go_proto
74 google/storagetransfer/v1/transfer_types.proto,@go_googleapis//google/storagetransfer/v1:storagetransfer_proto,google.golang.org/genproto/googleapis/storagetransfer/v1,@go_googleapis//google/storagetransfer/v1:storagetransfer_go_proto
75 google/longrunning/operations.proto,@go_googleapis//google/longrunning:longrunning_proto,google.golang.org/genproto/googleapis/longrunning,@go_googleapis//google/longrunning:longrunning_go_proto
76 google/container/v1/cluster_service.proto,@go_googleapis//google/container/v1:container_proto,google.golang.org/genproto/googleapis/container/v1,@go_googleapis//google/container/v1:container_go_proto
77 google/container/v1beta1/cluster_service.proto,@go_googleapis//google/container/v1beta1:container_proto,google.golang.org/genproto/googleapis/container/v1beta1,@go_googleapis//google/container/v1beta1:container_go_proto
78 google/container/v1alpha1/cluster_service.proto,@go_googleapis//google/container/v1alpha1:container_proto,google.golang.org/genproto/googleapis/container/v1alpha1,@go_googleapis//google/container/v1alpha1:container_go_proto
79 google/datastore/v1beta3/datastore.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
80 google/datastore/v1beta3/query.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
81 google/datastore/v1beta3/entity.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
82 google/datastore/v1/datastore.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
83 google/datastore/v1/query.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
84 google/datastore/v1/entity.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
85 google/datastore/admin/v1/datastore_admin.proto,@go_googleapis//google/datastore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/datastore/admin/v1,@go_googleapis//google/datastore/admin/v1:admin_go_proto
86 google/datastore/admin/v1beta1/datastore_admin.proto,@go_googleapis//google/datastore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/datastore/admin/v1beta1,@go_googleapis//google/datastore/admin/v1beta1:admin_go_proto
87 google/bytestream/bytestream.proto,@go_googleapis//google/bytestream:bytestream_proto,google.golang.org/genproto/googleapis/bytestream,@go_googleapis//google/bytestream:bytestream_go_proto
88 google/iam/v1/iam_policy.proto,@go_googleapis//google/iam/v1:iam_proto,google.golang.org/genproto/googleapis/iam/v1,@go_googleapis//google/iam/v1:iam_go_proto
89 google/iam/v1/policy.proto,@go_googleapis//google/iam/v1:iam_proto,google.golang.org/genproto/googleapis/iam/v1,@go_googleapis//google/iam/v1:iam_go_proto
90 google/iam/v1/logging/audit_data.proto,@go_googleapis//google/iam/v1/logging:logging_proto,google.golang.org/genproto/googleapis/iam/v1/logging,@go_googleapis//google/iam/v1/logging:logging_go_proto
91 google/iam/admin/v1/iam.proto,@go_googleapis//google/iam/admin/v1:admin_proto,google.golang.org/genproto/googleapis/iam/admin/v1,@go_googleapis//google/iam/admin/v1:admin_go_proto
92 google/type/money.proto,@go_googleapis//google/type:money_proto,google.golang.org/genproto/googleapis/type/money,@go_googleapis//google/type:money_go_proto
93 google/type/latlng.proto,@go_googleapis//google/type:latlng_proto,google.golang.org/genproto/googleapis/type/latlng,@go_googleapis//google/type:latlng_go_proto
94 google/type/color.proto,@go_googleapis//google/type:color_proto,google.golang.org/genproto/googleapis/type/color,@go_googleapis//google/type:color_go_proto
95 google/type/timeofday.proto,@go_googleapis//google/type:timeofday_proto,google.golang.org/genproto/googleapis/type/timeofday,@go_googleapis//google/type:timeofday_go_proto
96 google/type/date.proto,@go_googleapis//google/type:date_proto,google.golang.org/genproto/googleapis/type/date,@go_googleapis//google/type:date_go_proto
97 google/type/dayofweek.proto,@go_googleapis//google/type:dayofweek_proto,google.golang.org/genproto/googleapis/type/dayofweek,@go_googleapis//google/type:dayofweek_go_proto
98 google/type/postal_address.proto,@go_googleapis//google/type:postaladdress_proto,google.golang.org/genproto/googleapis/type/postaladdress,@go_googleapis//google/type:postaladdress_go_proto
99 google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
100 google/devtools/clouderrorreporting/v1beta1/error_group_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
101 google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
102 google/devtools/clouderrorreporting/v1beta1/common.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
103 google/devtools/resultstore/v2/file.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
104 google/devtools/resultstore/v2/resultstore_download.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
105 google/devtools/resultstore/v2/configuration.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
106 google/devtools/resultstore/v2/action.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
107 google/devtools/resultstore/v2/resultstore_file_download.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
108 google/devtools/resultstore/v2/test_suite.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
109 google/devtools/resultstore/v2/file_set.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
110 google/devtools/resultstore/v2/coverage.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
111 google/devtools/resultstore/v2/coverage_summary.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
112 google/devtools/resultstore/v2/configured_target.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
113 google/devtools/resultstore/v2/target.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
114 google/devtools/resultstore/v2/invocation.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
115 google/devtools/resultstore/v2/common.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
116 google/devtools/source/v1/source_context.proto,@go_googleapis//google/devtools/source/v1:source_proto,google.golang.org/genproto/googleapis/devtools/source/v1,@go_googleapis//google/devtools/source/v1:source_go_proto
117 google/devtools/remoteexecution/v1test/remote_execution.proto,@go_googleapis//google/devtools/remoteexecution/v1test:remoteexecution_proto,google.golang.org/genproto/googleapis/devtools/remoteexecution/v1test,@go_googleapis//google/devtools/remoteexecution/v1test:remoteexecution_go_proto
118 google/devtools/cloudbuild/v1/cloudbuild.proto,@go_googleapis//google/devtools/cloudbuild/v1:cloudbuild_proto,google.golang.org/genproto/googleapis/devtools/cloudbuild/v1,@go_googleapis//google/devtools/cloudbuild/v1:cloudbuild_go_proto
119 google/devtools/sourcerepo/v1/sourcerepo.proto,@go_googleapis//google/devtools/sourcerepo/v1:sourcerepo_proto,google.golang.org/genproto/googleapis/devtools/sourcerepo/v1,@go_googleapis//google/devtools/sourcerepo/v1:sourcerepo_go_proto
120 google/devtools/remoteworkers/v1test2/worker.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
121 google/devtools/remoteworkers/v1test2/tasks.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
122 google/devtools/remoteworkers/v1test2/bots.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
123 google/devtools/remoteworkers/v1test2/command.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
124 google/devtools/cloudtrace/v1/trace.proto,@go_googleapis//google/devtools/cloudtrace/v1:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v1,@go_googleapis//google/devtools/cloudtrace/v1:cloudtrace_go_proto
125 google/devtools/cloudtrace/v2/trace.proto,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v2,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_go_proto
126 google/devtools/cloudtrace/v2/tracing.proto,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v2,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_go_proto
127 google/devtools/cloudprofiler/v2/profiler.proto,@go_googleapis//google/devtools/cloudprofiler/v2:cloudprofiler_proto,google.golang.org/genproto/googleapis/devtools/cloudprofiler/v2,@go_googleapis//google/devtools/cloudprofiler/v2:cloudprofiler_go_proto
128 google/devtools/containeranalysis/v1alpha1/containeranalysis.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
129 google/devtools/containeranalysis/v1alpha1/bill_of_materials.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
130 google/devtools/containeranalysis/v1alpha1/provenance.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
131 google/devtools/containeranalysis/v1alpha1/package_vulnerability.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
132 google/devtools/containeranalysis/v1alpha1/source_context.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
133 google/devtools/containeranalysis/v1alpha1/image_basis.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
134 google/devtools/build/v1/build_events.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
135 google/devtools/build/v1/build_status.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
136 google/devtools/build/v1/publish_build_event.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
137 google/devtools/clouddebugger/v2/debugger.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
138 google/devtools/clouddebugger/v2/data.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
139 google/devtools/clouddebugger/v2/controller.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
140 google/cloud/resourcemanager/v2/folders.proto,@go_googleapis//google/cloud/resourcemanager/v2:resourcemanager_proto,google.golang.org/genproto/googleapis/cloud/resourcemanager/v2,@go_googleapis//google/cloud/resourcemanager/v2:resourcemanager_go_proto
141 google/cloud/kms/v1/resources.proto,@go_googleapis//google/cloud/kms/v1:kms_proto,google.golang.org/genproto/googleapis/cloud/kms/v1,@go_googleapis//google/cloud/kms/v1:kms_go_proto
142 google/cloud/kms/v1/service.proto,@go_googleapis//google/cloud/kms/v1:kms_proto,google.golang.org/genproto/googleapis/cloud/kms/v1,@go_googleapis//google/cloud/kms/v1:kms_go_proto
143 google/cloud/runtimeconfig/v1beta1/resources.proto,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_proto,google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_go_proto
144 google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_proto,google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_go_proto
145 google/cloud/tasks/v2beta2/queue.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
146 google/cloud/tasks/v2beta2/task.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
147 google/cloud/tasks/v2beta2/target.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
148 google/cloud/tasks/v2beta2/cloudtasks.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
149 google/cloud/oslogin/v1/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1,@go_googleapis//google/cloud/oslogin/v1:oslogin_go_proto
150 google/cloud/oslogin/v1alpha/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1alpha:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1alpha,@go_googleapis//google/cloud/oslogin/v1alpha:oslogin_go_proto
151 google/cloud/oslogin/common/common.proto,@go_googleapis//google/cloud/oslogin/common:common_proto,google.golang.org/genproto/googleapis/cloud/oslogin/common,@go_googleapis//google/cloud/oslogin/common:common_go_proto
152 google/cloud/oslogin/v1beta/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1beta:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1beta,@go_googleapis//google/cloud/oslogin/v1beta:oslogin_go_proto
153 google/cloud/dialogflow/v2beta1/context.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
154 google/cloud/dialogflow/v2beta1/session_entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
155 google/cloud/dialogflow/v2beta1/intent.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
156 google/cloud/dialogflow/v2beta1/entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
157 google/cloud/dialogflow/v2beta1/webhook.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
158 google/cloud/dialogflow/v2beta1/session.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
159 google/cloud/dialogflow/v2beta1/agent.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
160 google/cloud/dialogflow/v2/context.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
161 google/cloud/dialogflow/v2/session_entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
162 google/cloud/dialogflow/v2/intent.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
163 google/cloud/dialogflow/v2/entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
164 google/cloud/dialogflow/v2/webhook.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
165 google/cloud/dialogflow/v2/session.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
166 google/cloud/dialogflow/v2/agent.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
167 google/cloud/redis/v1beta1/cloud_redis.proto,@go_googleapis//google/cloud/redis/v1beta1:redis_proto,google.golang.org/genproto/googleapis/cloud/redis/v1beta1,@go_googleapis//google/cloud/redis/v1beta1:redis_go_proto
168 google/cloud/location/locations.proto,@go_googleapis//google/cloud/location:location_proto,google.golang.org/genproto/googleapis/cloud/location,@go_googleapis//google/cloud/location:location_go_proto
169 google/cloud/websecurityscanner/v1alpha/finding.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
170 google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
171 google/cloud/websecurityscanner/v1alpha/scan_config.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
172 google/cloud/websecurityscanner/v1alpha/crawled_url.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
173 google/cloud/websecurityscanner/v1alpha/scan_run.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
174 google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
175 google/cloud/websecurityscanner/v1alpha/finding_addon.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
176 google/cloud/language/v1/language_service.proto,@go_googleapis//google/cloud/language/v1:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1,@go_googleapis//google/cloud/language/v1:language_go_proto
177 google/cloud/language/v1beta2/language_service.proto,@go_googleapis//google/cloud/language/v1beta2:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1beta2,@go_googleapis//google/cloud/language/v1beta2:language_go_proto
178 google/cloud/language/v1beta1/language_service.proto,@go_googleapis//google/cloud/language/v1beta1:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1beta1,@go_googleapis//google/cloud/language/v1beta1:language_go_proto
179 google/cloud/bigquery/datatransfer/v1/transfer.proto,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_proto,google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_go_proto
180 google/cloud/bigquery/datatransfer/v1/datatransfer.proto,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_proto,google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_go_proto
181 google/cloud/bigquery/logging/v1/audit_data.proto,@go_googleapis//google/cloud/bigquery/logging/v1:logging_proto,google.golang.org/genproto/googleapis/cloud/bigquery/logging/v1,@go_googleapis//google/cloud/bigquery/logging/v1:logging_go_proto
182 google/cloud/vision/v1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
183 google/cloud/vision/v1/geometry.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
184 google/cloud/vision/v1/web_detection.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
185 google/cloud/vision/v1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
186 google/cloud/vision/v1p2beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
187 google/cloud/vision/v1p2beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
188 google/cloud/vision/v1p2beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
189 google/cloud/vision/v1p2beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
190 google/cloud/vision/v1p1beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
191 google/cloud/vision/v1p1beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
192 google/cloud/vision/v1p1beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
193 google/cloud/vision/v1p1beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
194 google/cloud/speech/v1/cloud_speech.proto,@go_googleapis//google/cloud/speech/v1:speech_proto,google.golang.org/genproto/googleapis/cloud/speech/v1,@go_googleapis//google/cloud/speech/v1:speech_go_proto
195 google/cloud/speech/v1beta1/cloud_speech.proto,@go_googleapis//google/cloud/speech/v1beta1:speech_proto,google.golang.org/genproto/googleapis/cloud/speech/v1beta1,@go_googleapis//google/cloud/speech/v1beta1:speech_go_proto
196 google/cloud/speech/v1p1beta1/cloud_speech.proto,@go_googleapis//google/cloud/speech/v1p1beta1:speech_proto,google.golang.org/genproto/googleapis/cloud/speech/v1p1beta1,@go_googleapis//google/cloud/speech/v1p1beta1:speech_go_proto
197 google/cloud/iot/v1/device_manager.proto,@go_googleapis//google/cloud/iot/v1:iot_proto,google.golang.org/genproto/googleapis/cloud/iot/v1,@go_googleapis//google/cloud/iot/v1:iot_go_proto
198 google/cloud/iot/v1/resources.proto,@go_googleapis//google/cloud/iot/v1:iot_proto,google.golang.org/genproto/googleapis/cloud/iot/v1,@go_googleapis//google/cloud/iot/v1:iot_go_proto
199 google/cloud/videointelligence/v1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1,@go_googleapis//google/cloud/videointelligence/v1:videointelligence_go_proto
200 google/cloud/videointelligence/v1beta2/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1beta2:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta2,@go_googleapis//google/cloud/videointelligence/v1beta2:videointelligence_go_proto
201 google/cloud/videointelligence/v1beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta1,@go_googleapis//google/cloud/videointelligence/v1beta1:videointelligence_go_proto
202 google/cloud/videointelligence/v1p1beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1p1beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1p1beta1,@go_googleapis//google/cloud/videointelligence/v1p1beta1:videointelligence_go_proto
203 google/cloud/audit/audit_log.proto,@go_googleapis//google/cloud/audit:audit_proto,google.golang.org/genproto/googleapis/cloud/audit,@go_googleapis//google/cloud/audit:audit_go_proto
204 google/cloud/support/common.proto,@go_googleapis//google/cloud/support:common_proto,google.golang.org/genproto/googleapis/cloud/support/common,@go_googleapis//google/cloud/support:common_go_proto
205 google/cloud/support/v1alpha1/cloud_support.proto,@go_googleapis//google/cloud/support/v1alpha1:support_proto,google.golang.org/genproto/googleapis/cloud/support/v1alpha1,@go_googleapis//google/cloud/support/v1alpha1:support_go_proto
206 google/cloud/ml/v1/operation_metadata.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
207 google/cloud/ml/v1/job_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
208 google/cloud/ml/v1/prediction_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
209 google/cloud/ml/v1/model_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
210 google/cloud/ml/v1/project_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
211 google/cloud/texttospeech/v1/cloud_tts.proto,@go_googleapis//google/cloud/texttospeech/v1:texttospeech_proto,google.golang.org/genproto/googleapis/cloud/texttospeech/v1,@go_googleapis//google/cloud/texttospeech/v1:texttospeech_go_proto
212 google/cloud/texttospeech/v1beta1/cloud_tts.proto,@go_googleapis//google/cloud/texttospeech/v1beta1:texttospeech_proto,google.golang.org/genproto/googleapis/cloud/texttospeech/v1beta1,@go_googleapis//google/cloud/texttospeech/v1beta1:texttospeech_go_proto
213 google/cloud/functions/v1beta2/operations.proto,@go_googleapis//google/cloud/functions/v1beta2:functions_proto,google.golang.org/genproto/googleapis/cloud/functions/v1beta2,@go_googleapis//google/cloud/functions/v1beta2:functions_go_proto
214 google/cloud/functions/v1beta2/functions.proto,@go_googleapis//google/cloud/functions/v1beta2:functions_proto,google.golang.org/genproto/googleapis/cloud/functions/v1beta2,@go_googleapis//google/cloud/functions/v1beta2:functions_go_proto
215 google/cloud/billing/v1/cloud_billing.proto,@go_googleapis//google/cloud/billing/v1:billing_proto,google.golang.org/genproto/googleapis/cloud/billing/v1,@go_googleapis//google/cloud/billing/v1:billing_go_proto
216 google/cloud/dataproc/v1/operations.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
217 google/cloud/dataproc/v1/clusters.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
218 google/cloud/dataproc/v1/jobs.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
219 google/cloud/dataproc/v1beta2/operations.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
220 google/cloud/dataproc/v1beta2/clusters.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
221 google/cloud/dataproc/v1beta2/jobs.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
222 google/cloud/dataproc/v1beta2/workflow_templates.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
223 google/cloud/dataproc/v1beta2/shared.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
224 google/api/context.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
225 google/api/http.proto,@go_googleapis//google/api:annotations_proto,google.golang.org/genproto/googleapis/api/annotations,@go_googleapis//google/api:annotations_go_proto
226 google/api/config_change.proto,@go_googleapis//google/api:configchange_proto,google.golang.org/genproto/googleapis/api/configchange,@go_googleapis//google/api:configchange_go_proto
227 google/api/system_parameter.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
228 google/api/monitoring.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
229 google/api/distribution.proto,@go_googleapis//google/api:distribution_proto,google.golang.org/genproto/googleapis/api/distribution,@go_googleapis//google/api:distribution_go_proto
230 google/api/endpoint.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
231 google/api/usage.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
232 google/api/monitored_resource.proto,@go_googleapis//google/api:monitoredres_proto,google.golang.org/genproto/googleapis/api/monitoredres,@go_googleapis//google/api:monitoredres_go_proto
233 google/api/annotations.proto,@go_googleapis//google/api:annotations_proto,google.golang.org/genproto/googleapis/api/annotations,@go_googleapis//google/api:annotations_go_proto
234 google/api/control.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
235 google/api/metric.proto,@go_googleapis//google/api:metric_proto,google.golang.org/genproto/googleapis/api/metric,@go_googleapis//google/api:metric_go_proto
236 google/api/label.proto,@go_googleapis//google/api:label_proto,google.golang.org/genproto/googleapis/api/label,@go_googleapis//google/api:label_go_proto
237 google/api/consumer.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
238 google/api/log.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
239 google/api/billing.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
240 google/api/service.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
241 google/api/logging.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
242 google/api/documentation.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
243 google/api/quota.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
244 google/api/auth.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
245 google/api/backend.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
246 google/api/source_info.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
247 google/api/httpbody.proto,@go_googleapis//google/api:httpbody_proto,google.golang.org/genproto/googleapis/api/httpbody,@go_googleapis//google/api:httpbody_go_proto
248 google/api/experimental/authorization_config.proto,@go_googleapis//google/api/experimental:api_proto,google.golang.org/genproto/googleapis/api,@go_googleapis//google/api/experimental:api_go_proto
249 google/api/experimental/experimental.proto,@go_googleapis//google/api/experimental:api_proto,google.golang.org/genproto/googleapis/api,@go_googleapis//google/api/experimental:api_go_proto
250 google/api/servicemanagement/v1/servicemanager.proto,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_proto,google.golang.org/genproto/googleapis/api/servicemanagement/v1,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_go_proto
251 google/api/servicemanagement/v1/resources.proto,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_proto,google.golang.org/genproto/googleapis/api/servicemanagement/v1,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_go_proto
252 google/api/servicecontrol/v1/quota_controller.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
253 google/api/servicecontrol/v1/distribution.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
254 google/api/servicecontrol/v1/check_error.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
255 google/api/servicecontrol/v1/operation.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
256 google/api/servicecontrol/v1/metric_value.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
257 google/api/servicecontrol/v1/log_entry.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
258 google/api/servicecontrol/v1/service_controller.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
259 google/pubsub/v1/pubsub.proto,@go_googleapis//google/pubsub/v1:pubsub_proto,google.golang.org/genproto/googleapis/pubsub/v1,@go_googleapis//google/pubsub/v1:pubsub_go_proto
260 google/pubsub/v1beta2/pubsub.proto,@go_googleapis//google/pubsub/v1beta2:pubsub_proto,google.golang.org/genproto/googleapis/pubsub/v1beta2,@go_googleapis//google/pubsub/v1beta2:pubsub_go_proto
261 google/spanner/v1/mutation.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
262 google/spanner/v1/spanner.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
263 google/spanner/v1/transaction.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
264 google/spanner/v1/keys.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
265 google/spanner/v1/type.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
266 google/spanner/v1/query_plan.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
267 google/spanner/v1/result_set.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
268 google/spanner/admin/database/v1/spanner_database_admin.proto,@go_googleapis//google/spanner/admin/database/v1:database_proto,google.golang.org/genproto/googleapis/spanner/admin/database/v1,@go_googleapis//google/spanner/admin/database/v1:database_go_proto
269 google/spanner/admin/instance/v1/spanner_instance_admin.proto,@go_googleapis//google/spanner/admin/instance/v1:instance_proto,google.golang.org/genproto/googleapis/spanner/admin/instance/v1,@go_googleapis//google/spanner/admin/instance/v1:instance_go_proto
270 google/monitoring/v3/group.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
271 google/monitoring/v3/mutation_record.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
272 google/monitoring/v3/notification.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
273 google/monitoring/v3/alert_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
274 google/monitoring/v3/uptime_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
275 google/monitoring/v3/group_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
276 google/monitoring/v3/alert.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
277 google/monitoring/v3/uptime.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
278 google/monitoring/v3/metric.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
279 google/monitoring/v3/notification_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
280 google/monitoring/v3/metric_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
281 google/monitoring/v3/common.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
282 google/rpc/code.proto,@go_googleapis//google/rpc:code_proto,google.golang.org/genproto/googleapis/rpc/code,@go_googleapis//google/rpc:code_go_proto
283 google/rpc/status.proto,@go_googleapis//google/rpc:status_proto,google.golang.org/genproto/googleapis/rpc/status,@go_googleapis//google/rpc:status_go_proto
284 google/rpc/error_details.proto,@go_googleapis//google/rpc:errdetails_proto,google.golang.org/genproto/googleapis/rpc/errdetails,@go_googleapis//google/rpc:errdetails_go_proto
285 google/streetview/publish/v1/resources.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
286 google/streetview/publish/v1/rpcmessages.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
287 google/streetview/publish/v1/streetview_publish.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
288 google/logging/v2/logging_metrics.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
289 google/logging/v2/logging_config.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
290 google/logging/v2/log_entry.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
291 google/logging/v2/logging.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
292 google/logging/type/log_severity.proto,@go_googleapis//google/logging/type:ltype_proto,google.golang.org/genproto/googleapis/logging/type,@go_googleapis//google/logging/type:ltype_go_proto
293 google/logging/type/http_request.proto,@go_googleapis//google/logging/type:ltype_proto,google.golang.org/genproto/googleapis/logging/type,@go_googleapis//google/logging/type:ltype_go_proto

View File

@ -1,13 +0,0 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"fix.go",
"merger.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/merger",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/merger",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
deps = ["//vendor/github.com/bazelbuild/bazel-gazelle/internal/rule:go_default_library"],
)

View File

@ -1,20 +0,0 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"dep.go",
"remote.go",
"repo.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/repos",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/repos",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/pathtools:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/rule:go_default_library",
"//vendor/github.com/pelletier/go-toml:go_default_library",
"//vendor/golang.org/x/tools/go/vcs:go_default_library",
],
)

View File

@ -1,15 +0,0 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["index.go"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/resolve",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/resolve",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/repos:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/rule:go_default_library",
],
)

View File

@ -1,17 +0,0 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"config.go",
"walk.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/walk",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/walk",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/pathtools:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/rule:go_default_library",
],
)

View File

@ -1,86 +0,0 @@
/* Copyright 2018 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package walk
import (
"flag"
"path"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
)
type walkConfig struct {
excludes []string
ignore bool
}
const walkName = "_walk"
func getWalkConfig(c *config.Config) walkConfig {
return c.Exts[walkName].(walkConfig)
}
func (wc *walkConfig) isExcluded(base string) bool {
for _, x := range wc.excludes {
if base == x {
return true
}
}
return false
}
type walkConfigurer struct{}
func (_ *walkConfigurer) RegisterFlags(fs *flag.FlagSet, cmd string, c *config.Config) {}
func (_ *walkConfigurer) CheckFlags(fs *flag.FlagSet, c *config.Config) error { return nil }
func (_ *walkConfigurer) KnownDirectives() []string {
return []string{"exclude", "ignore"}
}
func (_ *walkConfigurer) Configure(c *config.Config, rel string, f *rule.File) {
var wc walkConfig
if raw, ok := c.Exts[walkName]; ok {
wc = raw.(walkConfig)
wc.ignore = false
if rel != "" {
prefix := path.Base(rel) + "/"
excludes := make([]string, 0, len(wc.excludes))
for _, x := range wc.excludes {
if strings.HasPrefix(x, prefix) {
excludes = append(excludes, x[len(prefix):])
}
}
wc.excludes = excludes
}
}
if f != nil {
for _, d := range f.Directives {
switch d.Key {
case "exclude":
wc.excludes = append(wc.excludes, d.Value)
case "ignore":
wc.ignore = true
}
}
}
c.Exts[walkName] = wc
}

View File

@ -1,251 +0,0 @@
/* Copyright 2018 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package walk
import (
"io/ioutil"
"log"
"os"
"path"
"path/filepath"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/pathtools"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
)
// WalkFunc is a callback called by Walk in each visited directory.
//
// dir is the absolute file system path to the directory being visited.
//
// rel is the relative slash-separated path to the directory from the
// repository root. Will be "" for the repository root directory itself.
//
// c is the configuration for the current directory. This may have been
// modified by directives in the directory's build file.
//
// update is true when the build file may be updated.
//
// f is the existing build file in the directory. Will be nil if there
// was no file.
//
// subdirs is a list of base names of subdirectories within dir, not
// including excluded files.
//
// regularFiles is a list of base names of regular files within dir, not
// including excluded files.
//
// genFiles is a list of names of generated files, found by reading
// "out" and "outs" attributes of rules in f.
type WalkFunc func(dir, rel string, c *config.Config, update bool, f *rule.File, subdirs, regularFiles, genFiles []string)
// Walk traverses the directory tree rooted at c.RepoRoot in depth-first order.
//
// Walk calls the Configure method on each configuration extension in cexts
// in each directory in pre-order, whether a build file is present in the
// directory or not.
//
// Walk calls the callback wf in post-order.
func Walk(c *config.Config, cexts []config.Configurer, wf WalkFunc) {
cexts = append(cexts, &walkConfigurer{})
knownDirectives := make(map[string]bool)
for _, cext := range cexts {
for _, d := range cext.KnownDirectives() {
knownDirectives[d] = true
}
}
updateRels := buildUpdateRels(c.RepoRoot, c.Dirs)
symlinks := symlinkResolver{root: c.RepoRoot, visited: []string{c.RepoRoot}}
var visit func(*config.Config, string, string, bool)
visit = func(c *config.Config, dir, rel string, isUpdateDir bool) {
haveError := false
if !isUpdateDir {
isUpdateDir = shouldUpdateDir(rel, updateRels)
}
// TODO: OPT: ReadDir stats all the files, which is slow. We just care about
// names and modes, so we should use something like
// golang.org/x/tools/internal/fastwalk to speed this up.
files, err := ioutil.ReadDir(dir)
if err != nil {
log.Print(err)
return
}
f, err := loadBuildFile(c, rel, dir, files)
if err != nil {
log.Print(err)
haveError = true
}
c = configure(cexts, knownDirectives, c, rel, f)
wc := getWalkConfig(c)
var subdirs, regularFiles []string
for _, fi := range files {
base := fi.Name()
switch {
case base == "" || base[0] == '.' || base[0] == '_' || wc.isExcluded(base):
continue
case fi.IsDir() || fi.Mode()&os.ModeSymlink != 0 && symlinks.follow(dir, base):
subdirs = append(subdirs, base)
default:
regularFiles = append(regularFiles, base)
}
}
for _, sub := range subdirs {
visit(c, filepath.Join(dir, sub), path.Join(rel, sub), isUpdateDir)
}
genFiles := findGenFiles(wc, f)
update := !haveError && isUpdateDir && !wc.ignore
wf(dir, rel, c, update, f, subdirs, regularFiles, genFiles)
}
visit(c, c.RepoRoot, "", false)
}
// buildUpdateRels builds a list of relative paths from the repository root
// directory (passed as an absolute file path) to directories that Gazelle
// may update. The relative paths are slash-separated. "" represents the
// root directory itself.
func buildUpdateRels(root string, dirs []string) []string {
var updateRels []string
for _, dir := range dirs {
rel, err := filepath.Rel(root, dir)
if err != nil {
// This should have been verified when c was built.
log.Panicf("%s: not a subdirectory of repository root %q", dir, root)
}
rel = filepath.ToSlash(rel)
if rel == "." || rel == "/" {
rel = ""
}
updateRels = append(updateRels, rel)
}
return updateRels
}
func shouldUpdateDir(rel string, updateRels []string) bool {
for _, r := range updateRels {
if pathtools.HasPrefix(rel, r) {
return true
}
}
return false
}
func loadBuildFile(c *config.Config, pkg, dir string, files []os.FileInfo) (*rule.File, error) {
var err error
readDir := dir
readFiles := files
if c.ReadBuildFilesDir != "" {
readDir = filepath.Join(c.ReadBuildFilesDir, filepath.FromSlash(pkg))
readFiles, err = ioutil.ReadDir(readDir)
if err != nil {
return nil, err
}
}
path := rule.MatchBuildFileName(readDir, c.ValidBuildFileNames, readFiles)
if path == "" {
return nil, nil
}
return rule.LoadFile(path, pkg)
}
func configure(cexts []config.Configurer, knownDirectives map[string]bool, c *config.Config, rel string, f *rule.File) *config.Config {
if rel != "" {
c = c.Clone()
}
if f != nil {
for _, d := range f.Directives {
if !knownDirectives[d.Key] {
log.Printf("%s: unknown directive: gazelle:%s", f.Path, d.Key)
}
}
}
for _, cext := range cexts {
cext.Configure(c, rel, f)
}
return c
}
func findGenFiles(wc walkConfig, f *rule.File) []string {
if f == nil {
return nil
}
var strs []string
for _, r := range f.Rules {
for _, key := range []string{"out", "outs"} {
if s := r.AttrString(key); s != "" {
strs = append(strs, s)
} else if ss := r.AttrStrings(key); len(ss) > 0 {
strs = append(strs, ss...)
}
}
}
var genFiles []string
for _, s := range strs {
if !wc.isExcluded(s) {
genFiles = append(genFiles, s)
}
}
return genFiles
}
type symlinkResolver struct {
root string
visited []string
}
// Decide if symlink dir/base should be followed.
func (r *symlinkResolver) follow(dir, base string) bool {
if dir == r.root && strings.HasPrefix(base, "bazel-") {
// Links such as bazel-<workspace>, bazel-out, bazel-genfiles are created by
// Bazel to point to internal build directories.
return false
}
// See if the symlink points to a tree that has been already visited.
fullpath := filepath.Join(dir, base)
dest, err := filepath.EvalSymlinks(fullpath)
if err != nil {
return false
}
if !filepath.IsAbs(dest) {
dest, err = filepath.Abs(filepath.Join(dir, dest))
if err != nil {
return false
}
}
for _, p := range r.visited {
if pathtools.HasPrefix(dest, p) || pathtools.HasPrefix(p, dest) {
return false
}
}
r.visited = append(r.visited, dest)
stat, err := os.Stat(fullpath)
if err != nil {
return false
}
return stat.IsDir()
}

View File

@ -0,0 +1,10 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["label.go"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/label",
importpath = "github.com/bazelbuild/bazel-gazelle/label",
visibility = ["//visibility:public"],
deps = ["//vendor/github.com/bazelbuild/bazel-gazelle/pathtools:go_default_library"],
)

View File

@ -13,6 +13,10 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
// Package label provides utilities for parsing and manipulating
// Bazel labels. See
// https://docs.bazel.build/versions/master/build-ref.html#labels
// for more information.
package label
import (
@ -22,20 +26,36 @@ import (
"regexp"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/pathtools"
"github.com/bazelbuild/bazel-gazelle/pathtools"
)
// A Label represents a label of a build target in Bazel.
// A Label represents a label of a build target in Bazel. Labels have three
// parts: a repository name, a package name, and a target name, formatted
// as @repo//pkg:target.
type Label struct {
Repo, Pkg, Name string
Relative bool
// Repo is the repository name. If omitted, the label refers to a target
// in the current repository.
Repo string
// Pkg is the package name, which is usually the directory that contains
// the target. If both Repo and Pkg are omitted, the label is relative.
Pkg string
// Name is the name of the target the label refers to. If omitted, Name
// is assumed to be the same as Pkg.
Name string
// Relative indicates whether the label refers to a target in the current
// package. Relative is true if and only if Repo and Pkg are both omitted.
Relative bool
}
// New constructs a new label from components.
func New(repo, pkg, name string) Label {
return Label{Repo: repo, Pkg: pkg, Name: name}
}
// NoLabel is the nil value of Label. It is not a valid label and may be
// NoLabel is the zero value of Label. It is not a valid label and may be
// returned when an error occurs.
var NoLabel = Label{}
@ -120,6 +140,9 @@ func (l Label) String() string {
return fmt.Sprintf("%s//%s:%s", repo, l.Pkg, l.Name)
}
// Abs computes an absolute label (one with a repository and package name)
// from this label. If this label is already absolute, it is returned
// unchanged.
func (l Label) Abs(repo, pkg string) Label {
if !l.Relative {
return l
@ -127,6 +150,9 @@ func (l Label) Abs(repo, pkg string) Label {
return Label{Repo: repo, Pkg: pkg, Name: l.Name}
}
// Rel attempts to compute a relative label from this label. If this label
// is already relative or is in a different package, this label may be
// returned unchanged.
func (l Label) Rel(repo, pkg string) Label {
if l.Relative || l.Repo != repo {
return l
@ -137,6 +163,8 @@ func (l Label) Rel(repo, pkg string) Label {
return Label{Pkg: l.Pkg, Name: l.Name}
}
// Equal returns whether two labels are exactly the same. It does not return
// true for different labels that refer to the same target.
func (l Label) Equal(other Label) bool {
return l.Repo == other.Repo &&
l.Pkg == other.Pkg &&

View File

@ -0,0 +1,14 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["lang.go"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/language",
importpath = "github.com/bazelbuild/bazel-gazelle/language",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/resolve:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library",
],
)

View File

@ -0,0 +1,34 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"config.go",
"constants.go",
"fileinfo.go",
"fix.go",
"generate.go",
"kinds.go",
"known_go_imports.go",
"known_proto_imports.go",
"lang.go",
"package.go",
"resolve.go",
"std_package_list.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/language/go",
importpath = "github.com/bazelbuild/bazel-gazelle/language/go",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/flag:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/language:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/language/proto:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/pathtools:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/repo:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/resolve:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library",
"//vendor/github.com/bazelbuild/buildtools/build:go_default_library",
],
)

View File

@ -23,10 +23,10 @@ import (
"path"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/config"
gzflag "github.com/bazelbuild/bazel-gazelle/internal/flag"
"github.com/bazelbuild/bazel-gazelle/internal/language/proto"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
gzflag "github.com/bazelbuild/bazel-gazelle/flag"
"github.com/bazelbuild/bazel-gazelle/language/proto"
"github.com/bazelbuild/bazel-gazelle/rule"
bzl "github.com/bazelbuild/buildtools/build"
)
@ -59,10 +59,30 @@ type goConfig struct {
// depMode determines how imports that are not standard, indexed, or local
// (under the current prefix) should be resolved.
depMode dependencyMode
// goProtoCompilers is the protocol buffers compiler(s) to use for go code.
goProtoCompilers []string
// goProtoCompilersSet indicates whether goProtoCompiler was set explicitly.
goProtoCompilersSet bool
// goGrpcCompilers is the gRPC compiler(s) to use for go code.
goGrpcCompilers []string
// goGrpcCompilersSet indicates whether goGrpcCompiler was set explicitly.
goGrpcCompilersSet bool
}
var (
defaultGoProtoCompilers = []string{"@io_bazel_rules_go//proto:go_proto"}
defaultGoGrpcCompilers = []string{"@io_bazel_rules_go//proto:go_grpc"}
)
func newGoConfig() *goConfig {
gc := &goConfig{}
gc := &goConfig{
goProtoCompilers: defaultGoProtoCompilers,
goGrpcCompilers: defaultGoGrpcCompilers,
}
gc.preprocessTags()
return gc
}
@ -105,6 +125,14 @@ func (gc *goConfig) setBuildTags(tags string) error {
return nil
}
func getProtoMode(c *config.Config) proto.Mode {
if pc := proto.GetProtoConfig(c); pc != nil {
return pc.Mode
} else {
return proto.DisableGlobalMode
}
}
// dependencyMode determines how imports of packages outside of the prefix
// are resolved.
type dependencyMode int
@ -163,6 +191,8 @@ func (f tagsFlag) String() string {
func (_ *goLang) KnownDirectives() []string {
return []string{
"build_tags",
"go_grpc_compilers",
"go_proto_compilers",
"importmap_prefix",
"prefix",
}
@ -184,6 +214,14 @@ func (_ *goLang) RegisterFlags(fs *flag.FlagSet, cmd string, c *config.Config) {
&externalFlag{&gc.depMode},
"external",
"external: resolve external packages with go_repository\n\tvendored: resolve external packages as packages in vendor/")
fs.Var(
&gzflag.MultiFlag{Values: &gc.goProtoCompilers, IsSet: &gc.goProtoCompilersSet},
"go_proto_compiler",
"go_proto_library compiler to use (may be repeated)")
fs.Var(
&gzflag.MultiFlag{Values: &gc.goGrpcCompilers, IsSet: &gc.goGrpcCompilersSet},
"go_grpc_compiler",
"go_proto_library compiler to use for gRPC (may be repeated)")
}
c.Exts[goName] = gc
}
@ -194,8 +232,9 @@ func (_ *goLang) CheckFlags(fs *flag.FlagSet, c *config.Config) error {
// or when the package name can't be determined.
// TODO(jayconrod): deprecate and remove this behavior.
gc := getGoConfig(c)
pc := proto.GetProtoConfig(c)
pc.GoPrefix = gc.prefix
if pc := proto.GetProtoConfig(c); pc != nil {
pc.GoPrefix = gc.prefix
}
return nil
}
@ -234,6 +273,24 @@ func (_ *goLang) Configure(c *config.Config, rel string, f *rule.File) {
}
gc.preprocessTags()
gc.setBuildTags(d.Value)
case "go_grpc_compilers":
// Special syntax (empty value) to reset directive.
if d.Value == "" {
gc.goGrpcCompilersSet = false
gc.goGrpcCompilers = defaultGoGrpcCompilers
} else {
gc.goGrpcCompilersSet = true
gc.goGrpcCompilers = splitValue(d.Value)
}
case "go_proto_compilers":
// Special syntax (empty value) to reset directive.
if d.Value == "" {
gc.goProtoCompilersSet = false
gc.goProtoCompilers = defaultGoProtoCompilers
} else {
gc.goProtoCompilersSet = true
gc.goProtoCompilers = splitValue(d.Value)
}
case "importmap_prefix":
gc.importMapPrefix = d.Value
gc.importMapPrefixRel = rel
@ -274,3 +331,14 @@ func checkPrefix(prefix string) error {
}
return nil
}
// splitDirective splits a comma-separated directive value into its component
// parts, trimming each of any whitespace characters.
func splitValue(value string) []string {
parts := strings.Split(value, ",")
values := make([]string, 0, len(parts))
for _, part := range parts {
values = append(values, strings.TrimSpace(part))
}
return values
}

View File

@ -16,12 +16,29 @@ limitations under the License.
package golang
const (
// defaultLibName is the name of the default go_library rule in a Go
// package directory. This name was originally chosen so that rules_go
// could translate between Bazel labels and Go import paths using go_prefix.
// It is no longer needed since go_prefix was deleted.
defaultLibName = "go_default_library"
// defaultTestName is a name of an internal test corresponding to
// defaultLibName. It does not need to be consistent to something but it
// just needs to be unique in the Bazel package
defaultTestName = "go_default_test"
// legacyProtoFilegroupName is the anme of a filegroup created in legacy
// mode for libraries that contained .pb.go files and .proto files.
legacyProtoFilegroupName = "go_default_library_protos"
// grpcCompilerLabel is the label for the gRPC compiler plugin, used in the
// "compilers" attribute of go_proto_library rules.
grpcCompilerLabel = "@io_bazel_rules_go//proto:go_grpc"
// wellKnownTypesGoPrefix is the import path for the Go repository containing
// pre-generated code for the Well Known Types.
wellKnownTypesGoPrefix = "github.com/golang/protobuf"
// wellKnownTypesPkg is the package name for the predefined WKTs in rules_go.
wellKnownTypesPkg = "proto/wkt"
)

View File

@ -18,7 +18,7 @@ std_package_list = go_rule(
attrs = {
"out": attr.output(mandatory = True),
"_gen_std_package_list": attr.label(
default = "//internal/language/go/gen_std_package_list",
default = "//language/go/gen_std_package_list",
cfg = "host",
executable = True,
),

View File

@ -32,9 +32,9 @@ import (
"unicode"
"unicode/utf8"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/language/proto"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/language/proto"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// fileInfo holds information used to decide how to build a file. This
@ -215,6 +215,9 @@ func fileNameInfo(path_ string) fileInfo {
default:
ext = unknownExt
}
if strings.HasPrefix(name, ".") || strings.HasPrefix(name, "_") {
ext = unknownExt
}
// Determine test, goos, and goarch. This is intended to match the logic
// in goodOSArchFile in go/build.
@ -462,6 +465,9 @@ func expandSrcDir(str string, srcdir string) (string, bool) {
// so convert native paths with a different delimiter
// to "/" before starting (eg: on windows).
srcdir = filepath.ToSlash(srcdir)
if srcdir == "" {
srcdir = "."
}
// Spaces are tolerated in ${SRCDIR}, but not anywhere else.
chunks := strings.Split(str, "${SRCDIR}")

View File

@ -18,9 +18,9 @@ package golang
import (
"log"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/language/proto"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/language/proto"
"github.com/bazelbuild/bazel-gazelle/rule"
bzl "github.com/bazelbuild/buildtools/build"
)
@ -59,7 +59,7 @@ func migrateGrpcCompilers(c *config.Config, f *rule.File) {
continue
}
r.SetKind("go_proto_library")
r.SetAttr("compilers", []string{config.GrpcCompilerLabel})
r.SetAttr("compilers", []string{grpcCompilerLabel})
}
}
@ -74,7 +74,7 @@ func squashCgoLibrary(c *config.Config, f *rule.File) {
// Find the default cgo_library and go_library rules.
var cgoLibrary, goLibrary *rule.Rule
for _, r := range f.Rules {
if r.Kind() == "cgo_library" && r.Name() == config.DefaultCgoLibName && !r.ShouldKeep() {
if r.Kind() == "cgo_library" && r.Name() == "cgo_default_library" && !r.ShouldKeep() {
if cgoLibrary != nil {
log.Printf("%s: when fixing existing file, multiple cgo_library rules with default name found", f.Path)
continue
@ -82,7 +82,7 @@ func squashCgoLibrary(c *config.Config, f *rule.File) {
cgoLibrary = r
continue
}
if r.Kind() == "go_library" && r.Name() == config.DefaultLibName {
if r.Kind() == "go_library" && r.Name() == defaultLibName {
if goLibrary != nil {
log.Printf("%s: when fixing existing file, multiple go_library rules with default name referencing cgo_library found", f.Path)
}
@ -101,7 +101,7 @@ func squashCgoLibrary(c *config.Config, f *rule.File) {
if goLibrary == nil {
cgoLibrary.SetKind("go_library")
cgoLibrary.SetName(config.DefaultLibName)
cgoLibrary.SetName(defaultLibName)
cgoLibrary.SetAttr("cgo", true)
return
}
@ -126,9 +126,9 @@ func squashXtest(c *config.Config, f *rule.File) {
if r.Kind() != "go_test" {
continue
}
if r.Name() == config.DefaultTestName {
if r.Name() == defaultTestName {
itest = r
} else if r.Name() == config.DefaultXTestName {
} else if r.Name() == "go_default_xtest" {
xtest = r
}
}
@ -147,7 +147,7 @@ func squashXtest(c *config.Config, f *rule.File) {
// If there was no internal test, we can just rename the external test.
if itest == nil {
xtest.SetName(config.DefaultTestName)
xtest.SetName(defaultTestName)
return
}
@ -187,8 +187,7 @@ func flattenSrcs(c *config.Config, f *rule.File) {
// are not migrated.
func removeLegacyProto(c *config.Config, f *rule.File) {
// Don't fix if the proto mode was set to something other than the default.
pc := proto.GetProtoConfig(c)
if pc.Mode != proto.DefaultMode {
if pcMode := getProtoMode(c); pcMode != proto.DefaultMode {
return
}

View File

@ -16,7 +16,6 @@ limitations under the License.
package golang
import (
"fmt"
"go/build"
"log"
"path"
@ -25,21 +24,23 @@ import (
"strings"
"sync"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/language/proto"
"github.com/bazelbuild/bazel-gazelle/internal/pathtools"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/language"
"github.com/bazelbuild/bazel-gazelle/language/proto"
"github.com/bazelbuild/bazel-gazelle/pathtools"
"github.com/bazelbuild/bazel-gazelle/rule"
)
func (gl *goLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File, subdirs, regularFiles, genFiles []string, otherEmpty, otherGen []*rule.Rule) (empty, gen []*rule.Rule) {
func (gl *goLang) GenerateRules(args language.GenerateArgs) language.GenerateResult {
// Extract information about proto files. We need this to exclude .pb.go
// files and generate go_proto_library rules.
c := args.Config
gc := getGoConfig(c)
pc := proto.GetProtoConfig(c)
pcMode := getProtoMode(c)
var protoRuleNames []string
protoPackages := make(map[string]proto.Package)
protoFileInfo := make(map[string]proto.FileInfo)
for _, r := range otherGen {
for _, r := range args.OtherGen {
if r.Kind() != "proto_library" {
continue
}
@ -52,7 +53,7 @@ func (gl *goLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File,
}
sort.Strings(protoRuleNames)
var emptyProtoRuleNames []string
for _, r := range otherEmpty {
for _, r := range args.OtherEmpty {
if r.Kind() == "proto_library" {
emptyProtoRuleNames = append(emptyProtoRuleNames, r.Name())
}
@ -60,7 +61,9 @@ func (gl *goLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File,
// If proto rule generation is enabled, exclude .pb.go files that correspond
// to any .proto files present.
if !pc.Mode.ShouldIncludePregeneratedFiles() {
regularFiles := append([]string{}, args.RegularFiles...)
genFiles := append([]string{}, args.GenFiles...)
if !pcMode.ShouldIncludePregeneratedFiles() {
keep := func(f string) bool {
if strings.HasSuffix(f, ".pb.go") {
_, ok := protoFileInfo[strings.TrimSuffix(f, ".pb.go")+".proto"]
@ -86,34 +89,34 @@ func (gl *goLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File,
// Look for a subdirectory named testdata. Only treat it as data if it does
// not contain a buildable package.
var hasTestdata bool
for _, sub := range subdirs {
for _, sub := range args.Subdirs {
if sub == "testdata" {
hasTestdata = !gl.goPkgRels[path.Join(rel, "testdata")]
hasTestdata = !gl.goPkgRels[path.Join(args.Rel, "testdata")]
break
}
}
// Build a set of packages from files in this directory.
goPackageMap, goFilesWithUnknownPackage := buildPackages(c, dir, rel, goFiles, hasTestdata)
goPackageMap, goFilesWithUnknownPackage := buildPackages(c, args.Dir, args.Rel, goFiles, hasTestdata)
// Select a package to generate rules for. If there is no package, create
// an empty package so we can generate empty rules.
var protoName string
pkg, err := selectPackage(c, dir, goPackageMap)
pkg, err := selectPackage(c, args.Dir, goPackageMap)
if err != nil {
if _, ok := err.(*build.NoGoError); ok {
if len(protoPackages) == 1 {
for name, ppkg := range protoPackages {
pkg = &goPackage{
name: goProtoPackageName(ppkg),
importPath: goProtoImportPath(gc, ppkg, rel),
importPath: goProtoImportPath(gc, ppkg, args.Rel),
proto: protoTargetFromProtoPackage(name, ppkg),
}
protoName = name
break
}
} else {
pkg = emptyPackage(c, dir, rel)
pkg = emptyPackage(c, args.Dir, args.Rel)
}
} else {
log.Print(err)
@ -129,7 +132,7 @@ func (gl *goLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File,
}
for _, name := range protoRuleNames {
ppkg := protoPackages[name]
if pkg.importPath == goProtoImportPath(gc, ppkg, rel) {
if pkg.importPath == goProtoImportPath(gc, ppkg, args.Rel) {
protoName = name
pkg.proto = protoTargetFromProtoPackage(name, ppkg)
break
@ -139,26 +142,31 @@ func (gl *goLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File,
// Generate rules for proto packages. These should come before the other
// Go rules.
g := newGenerator(c, f, rel)
g := &generator{
c: c,
rel: args.Rel,
shouldSetVisibility: args.File == nil || !args.File.HasDefaultVisibility(),
}
var res language.GenerateResult
var rules []*rule.Rule
var protoEmbed string
for _, name := range protoRuleNames {
ppkg := protoPackages[name]
var rs []*rule.Rule
if name == protoName {
protoEmbed, rs = g.generateProto(pc.Mode, pkg.proto, pkg.importPath)
protoEmbed, rs = g.generateProto(pcMode, pkg.proto, pkg.importPath)
} else {
target := protoTargetFromProtoPackage(name, ppkg)
importPath := goProtoImportPath(gc, ppkg, rel)
_, rs = g.generateProto(pc.Mode, target, importPath)
importPath := goProtoImportPath(gc, ppkg, args.Rel)
_, rs = g.generateProto(pcMode, target, importPath)
}
rules = append(rules, rs...)
}
for _, name := range emptyProtoRuleNames {
goProtoName := strings.TrimSuffix(name, "_proto") + "_go_proto"
empty = append(empty, rule.NewRule("go_proto_library", goProtoName))
res.Empty = append(res.Empty, rule.NewRule("go_proto_library", goProtoName))
}
if pkg != nil && pc.Mode == proto.PackageMode && pkg.firstGoFile() == "" {
if pkg != nil && pcMode == proto.PackageMode && pkg.firstGoFile() == "" {
// In proto package mode, don't generate a go_library embedding a
// go_proto_library unless there are actually go files.
protoEmbed = ""
@ -178,7 +186,7 @@ func (gl *goLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File,
// Process the other static files.
for _, file := range otherFiles {
info := otherFileInfo(filepath.Join(dir, file))
info := otherFileInfo(filepath.Join(args.Dir, file))
if err := pkg.addFile(c, info, cgo); err != nil {
log.Print(err)
}
@ -195,7 +203,7 @@ func (gl *goLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File,
if regularFileSet[f] {
continue
}
info := fileNameInfo(filepath.Join(dir, f))
info := fileNameInfo(filepath.Join(args.Dir, f))
if err := pkg.addFile(c, info, cgo); err != nil {
log.Print(err)
}
@ -204,7 +212,7 @@ func (gl *goLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File,
// Generate Go rules.
if protoName == "" {
// Empty proto rules for deletion.
_, rs := g.generateProto(pc.Mode, pkg.proto, pkg.importPath)
_, rs := g.generateProto(pcMode, pkg.proto, pkg.importPath)
rules = append(rules, rs...)
}
lib := g.generateLib(pkg, protoEmbed)
@ -220,24 +228,25 @@ func (gl *goLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File,
for _, r := range rules {
if r.IsEmpty(goKinds[r.Kind()]) {
empty = append(empty, r)
res.Empty = append(res.Empty, r)
} else {
gen = append(gen, r)
res.Gen = append(res.Gen, r)
res.Imports = append(res.Imports, r.PrivateAttr(config.GazelleImportsKey))
}
}
if f != nil || len(gen) > 0 {
gl.goPkgRels[rel] = true
if args.File != nil || len(res.Gen) > 0 {
gl.goPkgRels[args.Rel] = true
} else {
for _, sub := range subdirs {
if gl.goPkgRels[path.Join(rel, sub)] {
gl.goPkgRels[rel] = true
for _, sub := range args.Subdirs {
if gl.goPkgRels[path.Join(args.Rel, sub)] {
gl.goPkgRels[args.Rel] = true
break
}
}
}
return empty, gen
return res
}
func filterFiles(files *[]string, pred func(string) bool) {
@ -336,40 +345,12 @@ func defaultPackageName(c *config.Config, rel string) string {
return pathtools.RelBaseName(rel, gc.prefix, "")
}
// hasDefaultVisibility returns whether oldFile contains a "package" rule with
// a "default_visibility" attribute. Rules generated by Gazelle should not
// have their own visibility attributes if this is the case.
func hasDefaultVisibility(oldFile *rule.File) bool {
for _, r := range oldFile.Rules {
if r.Kind() == "package" && r.Attr("default_visibility") != nil {
return true
}
}
return false
}
// checkInternalVisibility overrides the given visibility if the package is
// internal.
func checkInternalVisibility(rel, visibility string) string {
if i := strings.LastIndex(rel, "/internal/"); i >= 0 {
visibility = fmt.Sprintf("//%s:__subpackages__", rel[:i])
} else if strings.HasPrefix(rel, "internal/") {
visibility = "//:__subpackages__"
}
return visibility
}
type generator struct {
c *config.Config
rel string
shouldSetVisibility bool
}
func newGenerator(c *config.Config, f *rule.File, rel string) *generator {
shouldSetVisibility := f == nil || !hasDefaultVisibility(f)
return &generator{c: c, rel: rel, shouldSetVisibility: shouldSetVisibility}
}
func (g *generator) generateProto(mode proto.Mode, target protoTarget, importPath string) (string, []*rule.Rule) {
if !mode.ShouldGenerateRules() && mode != proto.LegacyMode {
// Don't create or delete proto rules in this mode. Any existing rules
@ -377,14 +358,15 @@ func (g *generator) generateProto(mode proto.Mode, target protoTarget, importPat
return "", nil
}
filegroupName := config.DefaultProtosName
gc := getGoConfig(g.c)
filegroupName := legacyProtoFilegroupName
protoName := target.name
if protoName == "" {
importPath := inferImportPath(getGoConfig(g.c), g.rel)
importPath := inferImportPath(gc, g.rel)
protoName = proto.RuleName(importPath)
}
goProtoName := strings.TrimSuffix(protoName, "_proto") + "_go_proto"
visibility := []string{checkInternalVisibility(g.rel, "//visibility:public")}
visibility := []string{rule.CheckInternalVisibility(g.rel, "//visibility:public")}
if mode == proto.LegacyMode {
filegroup := rule.NewRule("filegroup", filegroupName)
@ -409,7 +391,9 @@ func (g *generator) generateProto(mode proto.Mode, target protoTarget, importPat
goProtoLibrary.SetAttr("proto", ":"+protoName)
g.setImportAttrs(goProtoLibrary, importPath)
if target.hasServices {
goProtoLibrary.SetAttr("compilers", []string{"@io_bazel_rules_go//proto:go_grpc"})
goProtoLibrary.SetAttr("compilers", gc.goGrpcCompilers)
} else if gc.goProtoCompilersSet {
goProtoLibrary.SetAttr("compilers", gc.goProtoCompilers)
}
if g.shouldSetVisibility {
goProtoLibrary.SetAttr("visibility", visibility)
@ -419,7 +403,7 @@ func (g *generator) generateProto(mode proto.Mode, target protoTarget, importPat
}
func (g *generator) generateLib(pkg *goPackage, embed string) *rule.Rule {
goLibrary := rule.NewRule("go_library", config.DefaultLibName)
goLibrary := rule.NewRule("go_library", defaultLibName)
if !pkg.library.sources.hasGo() && embed == "" {
return goLibrary // empty
}
@ -428,7 +412,7 @@ func (g *generator) generateLib(pkg *goPackage, embed string) *rule.Rule {
// Libraries made for a go_binary should not be exposed to the public.
visibility = "//visibility:private"
} else {
visibility = checkInternalVisibility(pkg.rel, "//visibility:public")
visibility = rule.CheckInternalVisibility(pkg.rel, "//visibility:public")
}
g.setCommonAttrs(goLibrary, pkg.rel, visibility, pkg.library, embed)
g.setImportAttrs(goLibrary, pkg.importPath)
@ -441,13 +425,13 @@ func (g *generator) generateBin(pkg *goPackage, library string) *rule.Rule {
if !pkg.isCommand() || pkg.binary.sources.isEmpty() && library == "" {
return goBinary // empty
}
visibility := checkInternalVisibility(pkg.rel, "//visibility:public")
visibility := rule.CheckInternalVisibility(pkg.rel, "//visibility:public")
g.setCommonAttrs(goBinary, pkg.rel, visibility, pkg.binary, library)
return goBinary
}
func (g *generator) generateTest(pkg *goPackage, library string) *rule.Rule {
goTest := rule.NewRule("go_test", config.DefaultTestName)
goTest := rule.NewRule("go_test", defaultTestName)
if !pkg.test.sources.hasGo() {
return goTest // empty
}

View File

@ -15,7 +15,7 @@ limitations under the License.
package golang
import "github.com/bazelbuild/bazel-gazelle/internal/rule"
import "github.com/bazelbuild/bazel-gazelle/rule"
var goKinds = map[string]rule.KindInfo{
"filegroup": {
@ -78,6 +78,7 @@ var goKinds = map[string]rule.KindInfo{
"copts": true,
"embed": true,
"proto": true,
"compilers": true,
},
ResolveAttrs: map[string]bool{"deps": true},
},

View File

@ -0,0 +1,166 @@
// Generated by language/proto/gen/gen_known_imports.go
// From language/proto/proto.csv
package golang
import "github.com/bazelbuild/bazel-gazelle/label"
var knownGoProtoImports = map[string]label.Label{
"github.com/golang/protobuf/ptypes/any": label.New("io_bazel_rules_go", "proto/wkt", "any_go_proto"),
"google.golang.org/genproto/protobuf/api": label.New("io_bazel_rules_go", "proto/wkt", "api_go_proto"),
"github.com/golang/protobuf/protoc-gen-go/plugin": label.New("io_bazel_rules_go", "proto/wkt", "compiler_plugin_go_proto"),
"github.com/golang/protobuf/protoc-gen-go/descriptor": label.New("io_bazel_rules_go", "proto/wkt", "descriptor_go_proto"),
"github.com/golang/protobuf/ptypes/duration": label.New("io_bazel_rules_go", "proto/wkt", "duration_go_proto"),
"github.com/golang/protobuf/ptypes/empty": label.New("io_bazel_rules_go", "proto/wkt", "empty_go_proto"),
"google.golang.org/genproto/protobuf/field_mask": label.New("io_bazel_rules_go", "proto/wkt", "field_mask_go_proto"),
"google.golang.org/genproto/protobuf/source_context": label.New("io_bazel_rules_go", "proto/wkt", "source_context_go_proto"),
"github.com/golang/protobuf/ptypes/struct": label.New("io_bazel_rules_go", "proto/wkt", "struct_go_proto"),
"github.com/golang/protobuf/ptypes/timestamp": label.New("io_bazel_rules_go", "proto/wkt", "timestamp_go_proto"),
"google.golang.org/genproto/protobuf/ptype": label.New("io_bazel_rules_go", "proto/wkt", "type_go_proto"),
"github.com/golang/protobuf/ptypes/wrappers": label.New("io_bazel_rules_go", "proto/wkt", "wrappers_go_proto"),
"google.golang.org/genproto/googleapis/ads/googleads/v0/common": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google.golang.org/genproto/googleapis/ads/googleads/v0/enums": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google.golang.org/genproto/googleapis/ads/googleads/v0/errors": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google.golang.org/genproto/googleapis/ads/googleads/v0/resources": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google.golang.org/genproto/googleapis/ads/googleads/v0/services": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google.golang.org/genproto/googleapis/api/annotations": label.New("go_googleapis", "google/api", "annotations_go_proto"),
"google.golang.org/genproto/googleapis/api/serviceconfig": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google.golang.org/genproto/googleapis/api/configchange": label.New("go_googleapis", "google/api", "configchange_go_proto"),
"google.golang.org/genproto/googleapis/api/distribution": label.New("go_googleapis", "google/api", "distribution_go_proto"),
"google.golang.org/genproto/googleapis/api": label.New("go_googleapis", "google/api", "api_go_proto"),
"google.golang.org/genproto/googleapis/api/expr/v1alpha1": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_go_proto"),
"google.golang.org/genproto/googleapis/api/expr/v1beta1": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_go_proto"),
"google.golang.org/genproto/googleapis/api/httpbody": label.New("go_googleapis", "google/api", "httpbody_go_proto"),
"google.golang.org/genproto/googleapis/api/label": label.New("go_googleapis", "google/api", "label_go_proto"),
"google.golang.org/genproto/googleapis/api/metric": label.New("go_googleapis", "google/api", "metric_go_proto"),
"google.golang.org/genproto/googleapis/api/monitoredres": label.New("go_googleapis", "google/api", "monitoredres_go_proto"),
"google.golang.org/genproto/googleapis/api/servicecontrol/v1": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google.golang.org/genproto/googleapis/api/servicemanagement/v1": label.New("go_googleapis", "google/api/servicemanagement/v1", "servicemanagement_go_proto"),
"google.golang.org/genproto/googleapis/appengine/legacy": label.New("go_googleapis", "google/appengine/legacy", "legacy_go_proto"),
"google.golang.org/genproto/googleapis/appengine/logging/v1": label.New("go_googleapis", "google/appengine/logging/v1", "logging_go_proto"),
"google.golang.org/genproto/googleapis/appengine/v1": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google.golang.org/genproto/googleapis/assistant/embedded/v1alpha1": label.New("go_googleapis", "google/assistant/embedded/v1alpha1", "embedded_go_proto"),
"google.golang.org/genproto/googleapis/assistant/embedded/v1alpha2": label.New("go_googleapis", "google/assistant/embedded/v1alpha2", "embedded_go_proto"),
"google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_go_proto"),
"google.golang.org/genproto/googleapis/bigtable/admin/table/v1": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_go_proto"),
"google.golang.org/genproto/googleapis/bigtable/admin/v2": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google.golang.org/genproto/googleapis/bigtable/v1": label.New("go_googleapis", "google/bigtable/v1", "bigtable_go_proto"),
"google.golang.org/genproto/googleapis/bigtable/v2": label.New("go_googleapis", "google/bigtable/v2", "bigtable_go_proto"),
"google.golang.org/genproto/googleapis/bytestream": label.New("go_googleapis", "google/bytestream", "bytestream_go_proto"),
"google.golang.org/genproto/googleapis/cloud/asset/v1beta1": label.New("go_googleapis", "google/cloud/asset/v1beta1", "asset_go_proto"),
"google.golang.org/genproto/googleapis/cloud/audit": label.New("go_googleapis", "google/cloud/audit", "audit_go_proto"),
"google.golang.org/genproto/googleapis/cloud/automl/v1beta1": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1": label.New("go_googleapis", "google/cloud/bigquery/datatransfer/v1", "datatransfer_go_proto"),
"google.golang.org/genproto/googleapis/cloud/bigquery/logging/v1": label.New("go_googleapis", "google/cloud/bigquery/logging/v1", "logging_go_proto"),
"google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_go_proto"),
"google.golang.org/genproto/googleapis/cloud/billing/v1": label.New("go_googleapis", "google/cloud/billing/v1", "billing_go_proto"),
"google.golang.org/genproto/googleapis/cloud/dataproc/v1": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_go_proto"),
"google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google.golang.org/genproto/googleapis/cloud/dialogflow/v2": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google.golang.org/genproto/googleapis/cloud/functions/v1beta2": label.New("go_googleapis", "google/cloud/functions/v1beta2", "functions_go_proto"),
"google.golang.org/genproto/googleapis/cloud/iot/v1": label.New("go_googleapis", "google/cloud/iot/v1", "iot_go_proto"),
"google.golang.org/genproto/googleapis/cloud/kms/v1": label.New("go_googleapis", "google/cloud/kms/v1", "kms_go_proto"),
"google.golang.org/genproto/googleapis/cloud/language/v1": label.New("go_googleapis", "google/cloud/language/v1", "language_go_proto"),
"google.golang.org/genproto/googleapis/cloud/language/v1beta1": label.New("go_googleapis", "google/cloud/language/v1beta1", "language_go_proto"),
"google.golang.org/genproto/googleapis/cloud/language/v1beta2": label.New("go_googleapis", "google/cloud/language/v1beta2", "language_go_proto"),
"google.golang.org/genproto/googleapis/cloud/location": label.New("go_googleapis", "google/cloud/location", "location_go_proto"),
"google.golang.org/genproto/googleapis/cloud/ml/v1": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google.golang.org/genproto/googleapis/cloud/oslogin/common": label.New("go_googleapis", "google/cloud/oslogin/common", "common_go_proto"),
"google.golang.org/genproto/googleapis/cloud/oslogin/v1": label.New("go_googleapis", "google/cloud/oslogin/v1", "oslogin_go_proto"),
"google.golang.org/genproto/googleapis/cloud/oslogin/v1alpha": label.New("go_googleapis", "google/cloud/oslogin/v1alpha", "oslogin_go_proto"),
"google.golang.org/genproto/googleapis/cloud/oslogin/v1beta": label.New("go_googleapis", "google/cloud/oslogin/v1beta", "oslogin_go_proto"),
"google.golang.org/genproto/googleapis/cloud/redis/v1": label.New("go_googleapis", "google/cloud/redis/v1", "redis_go_proto"),
"google.golang.org/genproto/googleapis/cloud/redis/v1beta1": label.New("go_googleapis", "google/cloud/redis/v1beta1", "redis_go_proto"),
"google.golang.org/genproto/googleapis/cloud/resourcemanager/v2": label.New("go_googleapis", "google/cloud/resourcemanager/v2", "resourcemanager_go_proto"),
"google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1": label.New("go_googleapis", "google/cloud/runtimeconfig/v1beta1", "runtimeconfig_go_proto"),
"google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1": label.New("go_googleapis", "google/cloud/scheduler/v1beta1", "scheduler_go_proto"),
"google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_go_proto"),
"google.golang.org/genproto/googleapis/cloud/speech/v1": label.New("go_googleapis", "google/cloud/speech/v1", "speech_go_proto"),
"google.golang.org/genproto/googleapis/cloud/speech/v1p1beta1": label.New("go_googleapis", "google/cloud/speech/v1p1beta1", "speech_go_proto"),
"google.golang.org/genproto/googleapis/cloud/support/common": label.New("go_googleapis", "google/cloud/support", "common_go_proto"),
"google.golang.org/genproto/googleapis/cloud/support/v1alpha1": label.New("go_googleapis", "google/cloud/support/v1alpha1", "support_go_proto"),
"google.golang.org/genproto/googleapis/cloud/tasks/v2beta2": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_go_proto"),
"google.golang.org/genproto/googleapis/cloud/tasks/v2beta3": label.New("go_googleapis", "google/cloud/tasks/v2beta3", "tasks_go_proto"),
"google.golang.org/genproto/googleapis/cloud/texttospeech/v1": label.New("go_googleapis", "google/cloud/texttospeech/v1", "texttospeech_go_proto"),
"google.golang.org/genproto/googleapis/cloud/texttospeech/v1beta1": label.New("go_googleapis", "google/cloud/texttospeech/v1beta1", "texttospeech_go_proto"),
"google.golang.org/genproto/googleapis/cloud/videointelligence/v1": label.New("go_googleapis", "google/cloud/videointelligence/v1", "videointelligence_go_proto"),
"google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta1": label.New("go_googleapis", "google/cloud/videointelligence/v1beta1", "videointelligence_go_proto"),
"google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta2": label.New("go_googleapis", "google/cloud/videointelligence/v1beta2", "videointelligence_go_proto"),
"google.golang.org/genproto/googleapis/cloud/videointelligence/v1p1beta1": label.New("go_googleapis", "google/cloud/videointelligence/v1p1beta1", "videointelligence_go_proto"),
"google.golang.org/genproto/googleapis/cloud/videointelligence/v1p2beta1": label.New("go_googleapis", "google/cloud/videointelligence/v1p2beta1", "videointelligence_go_proto"),
"google.golang.org/genproto/googleapis/cloud/vision/v1": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_go_proto"),
"google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_go_proto"),
"google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_go_proto"),
"google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google.golang.org/genproto/googleapis/container/v1": label.New("go_googleapis", "google/container/v1", "container_go_proto"),
"google.golang.org/genproto/googleapis/container/v1alpha1": label.New("go_googleapis", "google/container/v1alpha1", "container_go_proto"),
"google.golang.org/genproto/googleapis/container/v1beta1": label.New("go_googleapis", "google/container/v1beta1", "container_go_proto"),
"google.golang.org/genproto/googleapis/datastore/admin/v1": label.New("go_googleapis", "google/datastore/admin/v1", "admin_go_proto"),
"google.golang.org/genproto/googleapis/datastore/admin/v1beta1": label.New("go_googleapis", "google/datastore/admin/v1beta1", "admin_go_proto"),
"google.golang.org/genproto/googleapis/datastore/v1": label.New("go_googleapis", "google/datastore/v1", "datastore_go_proto"),
"google.golang.org/genproto/googleapis/datastore/v1beta3": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_go_proto"),
"google.golang.org/genproto/googleapis/devtools/build/v1": label.New("go_googleapis", "google/devtools/build/v1", "build_go_proto"),
"google.golang.org/genproto/googleapis/devtools/cloudbuild/v1": label.New("go_googleapis", "google/devtools/cloudbuild/v1", "cloudbuild_go_proto"),
"google.golang.org/genproto/googleapis/devtools/clouddebugger/v2": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_go_proto"),
"google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_go_proto"),
"google.golang.org/genproto/googleapis/devtools/cloudprofiler/v2": label.New("go_googleapis", "google/devtools/cloudprofiler/v2", "cloudprofiler_go_proto"),
"google.golang.org/genproto/googleapis/devtools/cloudtrace/v1": label.New("go_googleapis", "google/devtools/cloudtrace/v1", "cloudtrace_go_proto"),
"google.golang.org/genproto/googleapis/devtools/cloudtrace/v2": label.New("go_googleapis", "google/devtools/cloudtrace/v2", "cloudtrace_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/attestation": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/attestation", "attestation_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/build": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/build", "build_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/common": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/common", "common_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1", "containeranalysis_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/deployment": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/deployment", "deployment_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/discovery": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/discovery", "discovery_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/grafeas": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/grafeas", "grafeas_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/image": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/image", "image_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/package": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/package", "package_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/provenance": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/provenance", "provenance_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/source": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/source", "source_go_proto"),
"google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/vulnerability": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/vulnerability", "vulnerability_go_proto"),
"google.golang.org/genproto/googleapis/devtools/remoteexecution/v1test": label.New("go_googleapis", "google/devtools/remoteexecution/v1test", "remoteexecution_go_proto"),
"google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_go_proto"),
"google.golang.org/genproto/googleapis/devtools/resultstore/v2": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google.golang.org/genproto/googleapis/devtools/source/v1": label.New("go_googleapis", "google/devtools/source/v1", "source_go_proto"),
"google.golang.org/genproto/googleapis/devtools/sourcerepo/v1": label.New("go_googleapis", "google/devtools/sourcerepo/v1", "sourcerepo_go_proto"),
"google.golang.org/genproto/googleapis/example/library/v1": label.New("go_googleapis", "google/example/library/v1", "library_go_proto"),
"google.golang.org/genproto/googleapis/firestore/admin/v1": label.New("go_googleapis", "google/firestore/admin/v1", "admin_go_proto"),
"google.golang.org/genproto/googleapis/firestore/admin/v1beta1": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_go_proto"),
"google.golang.org/genproto/googleapis/firestore/admin/v1beta2": label.New("go_googleapis", "google/firestore/admin/v1beta2", "admin_go_proto"),
"google.golang.org/genproto/googleapis/firestore/v1": label.New("go_googleapis", "google/firestore/v1", "firestore_go_proto"),
"google.golang.org/genproto/googleapis/firestore/v1beta1": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google.golang.org/genproto/googleapis/genomics/v1": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google.golang.org/genproto/googleapis/genomics/v1alpha2": label.New("go_googleapis", "google/genomics/v1alpha2", "genomics_go_proto"),
"google.golang.org/genproto/googleapis/home/graph/v1": label.New("go_googleapis", "google/home/graph/v1", "graph_go_proto"),
"google.golang.org/genproto/googleapis/iam/admin/v1": label.New("go_googleapis", "google/iam/admin/v1", "admin_go_proto"),
"google.golang.org/genproto/googleapis/iam/credentials/v1": label.New("go_googleapis", "google/iam/credentials/v1", "credentials_go_proto"),
"google.golang.org/genproto/googleapis/iam/v1": label.New("go_googleapis", "google/iam/v1", "iam_go_proto"),
"google.golang.org/genproto/googleapis/iam/v1/logging": label.New("go_googleapis", "google/iam/v1/logging", "logging_go_proto"),
"google.golang.org/genproto/googleapis/logging/type": label.New("go_googleapis", "google/logging/type", "ltype_go_proto"),
"google.golang.org/genproto/googleapis/logging/v2": label.New("go_googleapis", "google/logging/v2", "logging_go_proto"),
"google.golang.org/genproto/googleapis/longrunning": label.New("go_googleapis", "google/longrunning", "longrunning_go_proto"),
"google.golang.org/genproto/googleapis/monitoring/v3": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google.golang.org/genproto/googleapis/privacy/dlp/v2": label.New("go_googleapis", "google/privacy/dlp/v2", "dlp_go_proto"),
"google.golang.org/genproto/googleapis/pubsub/v1": label.New("go_googleapis", "google/pubsub/v1", "pubsub_go_proto"),
"google.golang.org/genproto/googleapis/pubsub/v1beta2": label.New("go_googleapis", "google/pubsub/v1beta2", "pubsub_go_proto"),
"google.golang.org/genproto/googleapis/rpc/code": label.New("go_googleapis", "google/rpc", "code_go_proto"),
"google.golang.org/genproto/googleapis/rpc/errdetails": label.New("go_googleapis", "google/rpc", "errdetails_go_proto"),
"google.golang.org/genproto/googleapis/rpc/status": label.New("go_googleapis", "google/rpc", "status_go_proto"),
"google.golang.org/genproto/googleapis/spanner/admin/database/v1": label.New("go_googleapis", "google/spanner/admin/database/v1", "database_go_proto"),
"google.golang.org/genproto/googleapis/spanner/admin/instance/v1": label.New("go_googleapis", "google/spanner/admin/instance/v1", "instance_go_proto"),
"google.golang.org/genproto/googleapis/spanner/v1": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google.golang.org/genproto/googleapis/storagetransfer/v1": label.New("go_googleapis", "google/storagetransfer/v1", "storagetransfer_go_proto"),
"google.golang.org/genproto/googleapis/streetview/publish/v1": label.New("go_googleapis", "google/streetview/publish/v1", "publish_go_proto"),
"google.golang.org/genproto/googleapis/type/color": label.New("go_googleapis", "google/type", "color_go_proto"),
"google.golang.org/genproto/googleapis/type/date": label.New("go_googleapis", "google/type", "date_go_proto"),
"google.golang.org/genproto/googleapis/type/dayofweek": label.New("go_googleapis", "google/type", "dayofweek_go_proto"),
"google.golang.org/genproto/googleapis/type/latlng": label.New("go_googleapis", "google/type", "latlng_go_proto"),
"google.golang.org/genproto/googleapis/type/money": label.New("go_googleapis", "google/type", "money_go_proto"),
"google.golang.org/genproto/googleapis/type/postaladdress": label.New("go_googleapis", "google/type", "postaladdress_go_proto"),
"google.golang.org/genproto/googleapis/type/timeofday": label.New("go_googleapis", "google/type", "timeofday_go_proto"),
"google.golang.org/genproto/googleapis/watcher/v1": label.New("go_googleapis", "google/watcher/v1", "watcher_go_proto"),
}

View File

@ -0,0 +1,727 @@
// Generated by language/proto/gen/gen_known_imports.go
// From language/proto/proto.csv
package golang
import "github.com/bazelbuild/bazel-gazelle/label"
var knownProtoImports = map[string]label.Label{
"google/protobuf/any.proto": label.New("io_bazel_rules_go", "proto/wkt", "any_go_proto"),
"google/protobuf/api.proto": label.New("io_bazel_rules_go", "proto/wkt", "api_go_proto"),
"google/protobuf/compiler/plugin.proto": label.New("io_bazel_rules_go", "proto/wkt", "compiler_plugin_go_proto"),
"google/protobuf/descriptor.proto": label.New("io_bazel_rules_go", "proto/wkt", "descriptor_go_proto"),
"google/protobuf/duration.proto": label.New("io_bazel_rules_go", "proto/wkt", "duration_go_proto"),
"google/protobuf/empty.proto": label.New("io_bazel_rules_go", "proto/wkt", "empty_go_proto"),
"google/protobuf/field_mask.proto": label.New("io_bazel_rules_go", "proto/wkt", "field_mask_go_proto"),
"google/protobuf/source_context.proto": label.New("io_bazel_rules_go", "proto/wkt", "source_context_go_proto"),
"google/protobuf/struct.proto": label.New("io_bazel_rules_go", "proto/wkt", "struct_go_proto"),
"google/protobuf/timestamp.proto": label.New("io_bazel_rules_go", "proto/wkt", "timestamp_go_proto"),
"google/protobuf/type.proto": label.New("io_bazel_rules_go", "proto/wkt", "type_go_proto"),
"google/protobuf/wrappers.proto": label.New("io_bazel_rules_go", "proto/wkt", "wrappers_go_proto"),
"google/ads/googleads/v0/common/ad_type_infos.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/bidding.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/criteria.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/criterion_category_availability.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/custom_parameter.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/dates.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/explorer_auto_optimizer_setting.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/feed_common.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/frequency_cap.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/keyword_plan_common.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/matching_function.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/metrics.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/policy.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/real_time_bidding_setting.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/tag_snippet.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/user_lists.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/common/value.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_go_proto"),
"google/ads/googleads/v0/enums/access_reason.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/account_budget_proposal_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/account_budget_proposal_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/account_budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/ad_customizer_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/ad_group_ad_rotation_mode.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/ad_group_ad_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/ad_group_criterion_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/ad_group_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/ad_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/ad_network_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/ad_serving_optimization_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/ad_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/advertising_channel_sub_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/advertising_channel_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/affiliate_location_feed_relationship_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/age_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/app_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/attribution_model.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/bid_modifier_source.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/bidding_source.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/bidding_strategy_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/billing_setup_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/budget_delivery_method.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/call_conversion_reporting_state.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/call_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/callout_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/campaign_group_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/campaign_serving_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/campaign_shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/campaign_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/change_status_operation.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/change_status_resource_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/content_label_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/conversion_action_category.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/conversion_action_counting_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/conversion_action_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/conversion_action_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/criterion_category_channel_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/criterion_category_locale_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/custom_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/customer_match_upload_key_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/data_driven_model_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/day_of_week.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/device.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/display_ad_format_setting.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/education_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/feed_attribute_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/feed_item_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/feed_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/feed_mapping_criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/feed_mapping_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/feed_origin.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/feed_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/flight_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/frequency_cap_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/frequency_cap_level.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/frequency_cap_time_unit.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/gender_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/geo_target_constant_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/geo_targeting_restriction.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/google_ads_field_category.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/google_ads_field_data_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/hotel_date_selection_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/hotel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/income_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/interaction_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/job_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/keyword_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/keyword_plan_competition_level.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/keyword_plan_forecast_interval.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/keyword_plan_network.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/listing_custom_attribute_index.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/listing_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/local_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/manager_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/media_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/message_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/mime_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/minute_of_hour.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/month_of_year.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/page_one_promoted_strategy_goal.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/parental_status_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/placeholder_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/policy_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/policy_review_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/policy_topic_entry_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/policy_topic_evidence_destination_mismatch_url_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/preferred_content_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/price_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/product_channel.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/product_channel_exclusivity.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/product_condition.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/product_type_level.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/promotion_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/proximity_radius_units.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/quality_score_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/real_estate_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/recommendation_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/search_term_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/search_term_targeting_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/shared_set_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/sitelink_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/slot.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/spending_limit_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/structured_snippet_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/target_cpa_opt_in_recommendation_goal.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/targeting_dimension.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/time_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/tracking_code_page_format.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/tracking_code_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/travel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/user_interest_taxonomy_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/user_list_access_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/user_list_closing_reason.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/user_list_crm_data_source_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/user_list_membership_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/user_list_size_range.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/enums/user_list_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_go_proto"),
"google/ads/googleads/v0/errors/account_budget_proposal_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/ad_customizer_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/ad_group_ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/ad_group_bid_modifier_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/ad_group_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/ad_group_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/ad_sharing_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/adx_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/authentication_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/authorization_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/bidding_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/bidding_strategy_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/billing_setup_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/campaign_budget_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/campaign_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/campaign_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/campaign_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/campaign_shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/change_status_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/collection_size_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/context_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/conversion_action_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/customer_client_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/customer_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/customer_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/customer_manager_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/database_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/date_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/date_range_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/distinct_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/enum_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/errors.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/feed_attribute_reference_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/feed_item_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/feed_mapping_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/field_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/field_mask_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/function_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/function_parsing_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/geo_target_constant_suggestion_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/header_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/id_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/image_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/internal_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/keyword_plan_ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/keyword_plan_campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/keyword_plan_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/keyword_plan_idea_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/keyword_plan_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/keyword_plan_negative_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/list_operation_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/media_bundle_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/media_file_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/multiplier_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/mutate_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/new_resource_creation_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/not_empty_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/null_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/operation_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/operator_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/policy_finding_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/query_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/quota_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/range_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/recommendation_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/region_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/request_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/resource_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/resource_count_limit_exceeded_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/setting_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/shared_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/string_format_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/string_length_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/url_field_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/errors/user_list_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_go_proto"),
"google/ads/googleads/v0/resources/account_budget.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/account_budget_proposal.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/ad.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/ad_group_ad.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/ad_group_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/ad_group_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/ad_group_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/ad_group_feed.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/age_range_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/bidding_strategy.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/billing_setup.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/campaign.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/campaign_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/campaign_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/campaign_budget.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/campaign_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/campaign_feed.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/campaign_group.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/campaign_shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/carrier_constant.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/change_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/conversion_action.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/customer.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/customer_client.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/customer_client_link.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/customer_feed.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/customer_manager_link.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/display_keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/feed.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/feed_item.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/feed_mapping.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/gender_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/geo_target_constant.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/google_ads_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/hotel_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/hotel_performance_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/keyword_plan.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/keyword_plan_ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/keyword_plan_campaign.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/keyword_plan_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/keyword_plan_negative_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/language_constant.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/managed_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/media_file.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/parental_status_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/payments_account.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/product_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/recommendation.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/shared_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/topic_constant.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/topic_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/user_interest.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/user_list.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/resources/video.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_go_proto"),
"google/ads/googleads/v0/services/account_budget_proposal_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/account_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/ad_group_ad_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/ad_group_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/ad_group_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/ad_group_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/ad_group_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/age_range_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/bidding_strategy_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/billing_setup_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/campaign_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/campaign_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/campaign_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/campaign_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/campaign_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/campaign_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/campaign_shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/carrier_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/change_status_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/conversion_action_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/customer_client_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/customer_client_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/customer_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/customer_manager_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/customer_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/display_keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/feed_item_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/feed_mapping_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/gender_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/geo_target_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/google_ads_field_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/google_ads_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/hotel_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/hotel_performance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/keyword_plan_ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/keyword_plan_campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/keyword_plan_idea_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/keyword_plan_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/keyword_plan_negative_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/keyword_plan_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/language_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/managed_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/media_file_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/parental_status_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/payments_account_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/product_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/recommendation_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/shared_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/topic_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/topic_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/user_interest_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/user_list_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/ads/googleads/v0/services/video_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_go_proto"),
"google/api/annotations.proto": label.New("go_googleapis", "google/api", "annotations_go_proto"),
"google/api/auth.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/backend.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/billing.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/config_change.proto": label.New("go_googleapis", "google/api", "configchange_go_proto"),
"google/api/consumer.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/context.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/control.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/distribution.proto": label.New("go_googleapis", "google/api", "distribution_go_proto"),
"google/api/documentation.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/endpoint.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/experimental/authorization_config.proto": label.New("go_googleapis", "google/api", "api_go_proto"),
"google/api/experimental/experimental.proto": label.New("go_googleapis", "google/api", "api_go_proto"),
"google/api/expr/v1alpha1/cel_service.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_go_proto"),
"google/api/expr/v1alpha1/checked.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_go_proto"),
"google/api/expr/v1alpha1/conformance_service.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_go_proto"),
"google/api/expr/v1alpha1/eval.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_go_proto"),
"google/api/expr/v1alpha1/explain.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_go_proto"),
"google/api/expr/v1alpha1/syntax.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_go_proto"),
"google/api/expr/v1alpha1/value.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_go_proto"),
"google/api/expr/v1beta1/decl.proto": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_go_proto"),
"google/api/expr/v1beta1/eval.proto": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_go_proto"),
"google/api/expr/v1beta1/expr.proto": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_go_proto"),
"google/api/expr/v1beta1/source.proto": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_go_proto"),
"google/api/expr/v1beta1/value.proto": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_go_proto"),
"google/api/http.proto": label.New("go_googleapis", "google/api", "annotations_go_proto"),
"google/api/httpbody.proto": label.New("go_googleapis", "google/api", "httpbody_go_proto"),
"google/api/label.proto": label.New("go_googleapis", "google/api", "label_go_proto"),
"google/api/launch_stage.proto": label.New("go_googleapis", "google/api", "api_go_proto"),
"google/api/log.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/logging.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/metric.proto": label.New("go_googleapis", "google/api", "metric_go_proto"),
"google/api/monitored_resource.proto": label.New("go_googleapis", "google/api", "monitoredres_go_proto"),
"google/api/monitoring.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/quota.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/service.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/servicecontrol/v1/check_error.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/distribution.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/log_entry.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/metric_value.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/operation.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/quota_controller.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicecontrol/v1/service_controller.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_go_proto"),
"google/api/servicemanagement/v1/resources.proto": label.New("go_googleapis", "google/api/servicemanagement/v1", "servicemanagement_go_proto"),
"google/api/servicemanagement/v1/servicemanager.proto": label.New("go_googleapis", "google/api/servicemanagement/v1", "servicemanagement_go_proto"),
"google/api/source_info.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/system_parameter.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/api/usage.proto": label.New("go_googleapis", "google/api", "serviceconfig_go_proto"),
"google/appengine/legacy/audit_data.proto": label.New("go_googleapis", "google/appengine/legacy", "legacy_go_proto"),
"google/appengine/logging/v1/request_log.proto": label.New("go_googleapis", "google/appengine/logging/v1", "logging_go_proto"),
"google/appengine/v1/app_yaml.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/appengine.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/application.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/audit_data.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/deploy.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/instance.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/location.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/operation.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/service.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/appengine/v1/version.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_go_proto"),
"google/assistant/embedded/v1alpha1/embedded_assistant.proto": label.New("go_googleapis", "google/assistant/embedded/v1alpha1", "embedded_go_proto"),
"google/assistant/embedded/v1alpha2/embedded_assistant.proto": label.New("go_googleapis", "google/assistant/embedded/v1alpha2", "embedded_go_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_data.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_go_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_service.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_go_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_go_proto"),
"google/bigtable/admin/table/v1/bigtable_table_data.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_go_proto"),
"google/bigtable/admin/table/v1/bigtable_table_service.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_go_proto"),
"google/bigtable/admin/table/v1/bigtable_table_service_messages.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_go_proto"),
"google/bigtable/admin/v2/bigtable_instance_admin.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google/bigtable/admin/v2/bigtable_table_admin.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google/bigtable/admin/v2/common.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google/bigtable/admin/v2/instance.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google/bigtable/admin/v2/table.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_go_proto"),
"google/bigtable/v1/bigtable_data.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_go_proto"),
"google/bigtable/v1/bigtable_service.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_go_proto"),
"google/bigtable/v1/bigtable_service_messages.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_go_proto"),
"google/bigtable/v2/bigtable.proto": label.New("go_googleapis", "google/bigtable/v2", "bigtable_go_proto"),
"google/bigtable/v2/data.proto": label.New("go_googleapis", "google/bigtable/v2", "bigtable_go_proto"),
"google/bytestream/bytestream.proto": label.New("go_googleapis", "google/bytestream", "bytestream_go_proto"),
"google/cloud/asset/v1beta1/asset_service.proto": label.New("go_googleapis", "google/cloud/asset/v1beta1", "asset_go_proto"),
"google/cloud/asset/v1beta1/assets.proto": label.New("go_googleapis", "google/cloud/asset/v1beta1", "asset_go_proto"),
"google/cloud/audit/audit_log.proto": label.New("go_googleapis", "google/cloud/audit", "audit_go_proto"),
"google/cloud/automl/v1beta1/annotation_payload.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/classification.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/data_items.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/dataset.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/image.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/io.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/model.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/model_evaluation.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/operations.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/prediction_service.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/service.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/text.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/automl/v1beta1/translation.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"),
"google/cloud/bigquery/datatransfer/v1/datatransfer.proto": label.New("go_googleapis", "google/cloud/bigquery/datatransfer/v1", "datatransfer_go_proto"),
"google/cloud/bigquery/datatransfer/v1/transfer.proto": label.New("go_googleapis", "google/cloud/bigquery/datatransfer/v1", "datatransfer_go_proto"),
"google/cloud/bigquery/logging/v1/audit_data.proto": label.New("go_googleapis", "google/cloud/bigquery/logging/v1", "logging_go_proto"),
"google/cloud/bigquery/storage/v1beta1/avro.proto": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_go_proto"),
"google/cloud/bigquery/storage/v1beta1/read_options.proto": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_go_proto"),
"google/cloud/bigquery/storage/v1beta1/storage.proto": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_go_proto"),
"google/cloud/bigquery/storage/v1beta1/table_reference.proto": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_go_proto"),
"google/cloud/billing/v1/cloud_billing.proto": label.New("go_googleapis", "google/cloud/billing/v1", "billing_go_proto"),
"google/cloud/dataproc/v1/clusters.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_go_proto"),
"google/cloud/dataproc/v1/jobs.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_go_proto"),
"google/cloud/dataproc/v1/operations.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_go_proto"),
"google/cloud/dataproc/v1/workflow_templates.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_go_proto"),
"google/cloud/dataproc/v1beta2/clusters.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google/cloud/dataproc/v1beta2/jobs.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google/cloud/dataproc/v1beta2/operations.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google/cloud/dataproc/v1beta2/shared.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google/cloud/dataproc/v1beta2/workflow_templates.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_go_proto"),
"google/cloud/dialogflow/v2/agent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/context.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/intent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/session.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/session_entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2/webhook.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/agent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/audio_config.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/context.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/document.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/intent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/knowledge_base.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/session.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/session_entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/dialogflow/v2beta1/webhook.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_go_proto"),
"google/cloud/functions/v1beta2/functions.proto": label.New("go_googleapis", "google/cloud/functions/v1beta2", "functions_go_proto"),
"google/cloud/functions/v1beta2/operations.proto": label.New("go_googleapis", "google/cloud/functions/v1beta2", "functions_go_proto"),
"google/cloud/iot/v1/device_manager.proto": label.New("go_googleapis", "google/cloud/iot/v1", "iot_go_proto"),
"google/cloud/iot/v1/resources.proto": label.New("go_googleapis", "google/cloud/iot/v1", "iot_go_proto"),
"google/cloud/kms/v1/resources.proto": label.New("go_googleapis", "google/cloud/kms/v1", "kms_go_proto"),
"google/cloud/kms/v1/service.proto": label.New("go_googleapis", "google/cloud/kms/v1", "kms_go_proto"),
"google/cloud/language/v1/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1", "language_go_proto"),
"google/cloud/language/v1beta1/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1beta1", "language_go_proto"),
"google/cloud/language/v1beta2/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1beta2", "language_go_proto"),
"google/cloud/location/locations.proto": label.New("go_googleapis", "google/cloud/location", "location_go_proto"),
"google/cloud/ml/v1/job_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google/cloud/ml/v1/model_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google/cloud/ml/v1/operation_metadata.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google/cloud/ml/v1/prediction_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google/cloud/ml/v1/project_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_go_proto"),
"google/cloud/oslogin/common/common.proto": label.New("go_googleapis", "google/cloud/oslogin/common", "common_go_proto"),
"google/cloud/oslogin/v1/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1", "oslogin_go_proto"),
"google/cloud/oslogin/v1alpha/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1alpha", "oslogin_go_proto"),
"google/cloud/oslogin/v1beta/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1beta", "oslogin_go_proto"),
"google/cloud/redis/v1/cloud_redis.proto": label.New("go_googleapis", "google/cloud/redis/v1", "redis_go_proto"),
"google/cloud/redis/v1beta1/cloud_redis.proto": label.New("go_googleapis", "google/cloud/redis/v1beta1", "redis_go_proto"),
"google/cloud/resourcemanager/v2/folders.proto": label.New("go_googleapis", "google/cloud/resourcemanager/v2", "resourcemanager_go_proto"),
"google/cloud/runtimeconfig/v1beta1/resources.proto": label.New("go_googleapis", "google/cloud/runtimeconfig/v1beta1", "runtimeconfig_go_proto"),
"google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto": label.New("go_googleapis", "google/cloud/runtimeconfig/v1beta1", "runtimeconfig_go_proto"),
"google/cloud/scheduler/v1beta1/cloudscheduler.proto": label.New("go_googleapis", "google/cloud/scheduler/v1beta1", "scheduler_go_proto"),
"google/cloud/scheduler/v1beta1/job.proto": label.New("go_googleapis", "google/cloud/scheduler/v1beta1", "scheduler_go_proto"),
"google/cloud/scheduler/v1beta1/target.proto": label.New("go_googleapis", "google/cloud/scheduler/v1beta1", "scheduler_go_proto"),
"google/cloud/securitycenter/v1beta1/asset.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_go_proto"),
"google/cloud/securitycenter/v1beta1/finding.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_go_proto"),
"google/cloud/securitycenter/v1beta1/organization_settings.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_go_proto"),
"google/cloud/securitycenter/v1beta1/security_marks.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_go_proto"),
"google/cloud/securitycenter/v1beta1/securitycenter_service.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_go_proto"),
"google/cloud/securitycenter/v1beta1/source.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_go_proto"),
"google/cloud/speech/v1/cloud_speech.proto": label.New("go_googleapis", "google/cloud/speech/v1", "speech_go_proto"),
"google/cloud/speech/v1p1beta1/cloud_speech.proto": label.New("go_googleapis", "google/cloud/speech/v1p1beta1", "speech_go_proto"),
"google/cloud/support/common.proto": label.New("go_googleapis", "google/cloud/support", "common_go_proto"),
"google/cloud/support/v1alpha1/cloud_support.proto": label.New("go_googleapis", "google/cloud/support/v1alpha1", "support_go_proto"),
"google/cloud/tasks/v2beta2/cloudtasks.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_go_proto"),
"google/cloud/tasks/v2beta2/queue.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_go_proto"),
"google/cloud/tasks/v2beta2/target.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_go_proto"),
"google/cloud/tasks/v2beta2/task.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_go_proto"),
"google/cloud/tasks/v2beta3/cloudtasks.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta3", "tasks_go_proto"),
"google/cloud/tasks/v2beta3/queue.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta3", "tasks_go_proto"),
"google/cloud/tasks/v2beta3/target.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta3", "tasks_go_proto"),
"google/cloud/tasks/v2beta3/task.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta3", "tasks_go_proto"),
"google/cloud/texttospeech/v1/cloud_tts.proto": label.New("go_googleapis", "google/cloud/texttospeech/v1", "texttospeech_go_proto"),
"google/cloud/texttospeech/v1beta1/cloud_tts.proto": label.New("go_googleapis", "google/cloud/texttospeech/v1beta1", "texttospeech_go_proto"),
"google/cloud/videointelligence/v1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1", "videointelligence_go_proto"),
"google/cloud/videointelligence/v1beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1beta1", "videointelligence_go_proto"),
"google/cloud/videointelligence/v1beta2/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1beta2", "videointelligence_go_proto"),
"google/cloud/videointelligence/v1p1beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1p1beta1", "videointelligence_go_proto"),
"google/cloud/videointelligence/v1p2beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1p2beta1", "videointelligence_go_proto"),
"google/cloud/vision/v1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google/cloud/vision/v1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google/cloud/vision/v1/product_search.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google/cloud/vision/v1/product_search_service.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google/cloud/vision/v1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google/cloud/vision/v1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_go_proto"),
"google/cloud/vision/v1p1beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_go_proto"),
"google/cloud/vision/v1p1beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_go_proto"),
"google/cloud/vision/v1p1beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_go_proto"),
"google/cloud/vision/v1p1beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_go_proto"),
"google/cloud/vision/v1p2beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_go_proto"),
"google/cloud/vision/v1p2beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_go_proto"),
"google/cloud/vision/v1p2beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_go_proto"),
"google/cloud/vision/v1p2beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_go_proto"),
"google/cloud/vision/v1p3beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_go_proto"),
"google/cloud/vision/v1p3beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_go_proto"),
"google/cloud/vision/v1p3beta1/product_search.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_go_proto"),
"google/cloud/vision/v1p3beta1/product_search_service.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_go_proto"),
"google/cloud/vision/v1p3beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_go_proto"),
"google/cloud/vision/v1p3beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_go_proto"),
"google/cloud/websecurityscanner/v1alpha/crawled_url.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/finding.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/finding_addon.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/scan_config.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/scan_run.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_go_proto"),
"google/container/v1/cluster_service.proto": label.New("go_googleapis", "google/container/v1", "container_go_proto"),
"google/container/v1alpha1/cluster_service.proto": label.New("go_googleapis", "google/container/v1alpha1", "container_go_proto"),
"google/container/v1beta1/cluster_service.proto": label.New("go_googleapis", "google/container/v1beta1", "container_go_proto"),
"google/datastore/admin/v1/datastore_admin.proto": label.New("go_googleapis", "google/datastore/admin/v1", "admin_go_proto"),
"google/datastore/admin/v1/index.proto": label.New("go_googleapis", "google/datastore/admin/v1", "admin_go_proto"),
"google/datastore/admin/v1beta1/datastore_admin.proto": label.New("go_googleapis", "google/datastore/admin/v1beta1", "admin_go_proto"),
"google/datastore/v1/datastore.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_go_proto"),
"google/datastore/v1/entity.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_go_proto"),
"google/datastore/v1/query.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_go_proto"),
"google/datastore/v1beta3/datastore.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_go_proto"),
"google/datastore/v1beta3/entity.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_go_proto"),
"google/datastore/v1beta3/query.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_go_proto"),
"google/devtools/build/v1/build_events.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_go_proto"),
"google/devtools/build/v1/build_status.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_go_proto"),
"google/devtools/build/v1/publish_build_event.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_go_proto"),
"google/devtools/cloudbuild/v1/cloudbuild.proto": label.New("go_googleapis", "google/devtools/cloudbuild/v1", "cloudbuild_go_proto"),
"google/devtools/clouddebugger/v2/controller.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_go_proto"),
"google/devtools/clouddebugger/v2/data.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_go_proto"),
"google/devtools/clouddebugger/v2/debugger.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_go_proto"),
"google/devtools/clouderrorreporting/v1beta1/common.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_go_proto"),
"google/devtools/clouderrorreporting/v1beta1/error_group_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_go_proto"),
"google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_go_proto"),
"google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_go_proto"),
"google/devtools/cloudprofiler/v2/profiler.proto": label.New("go_googleapis", "google/devtools/cloudprofiler/v2", "cloudprofiler_go_proto"),
"google/devtools/cloudtrace/v1/trace.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v1", "cloudtrace_go_proto"),
"google/devtools/cloudtrace/v2/trace.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v2", "cloudtrace_go_proto"),
"google/devtools/cloudtrace/v2/tracing.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v2", "cloudtrace_go_proto"),
"google/devtools/containeranalysis/v1alpha1/bill_of_materials.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1alpha1/containeranalysis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1alpha1/image_basis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1alpha1/package_vulnerability.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1alpha1/provenance.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1alpha1/source_context.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1beta1/attestation/attestation.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/attestation", "attestation_go_proto"),
"google/devtools/containeranalysis/v1beta1/build/build.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/build", "build_go_proto"),
"google/devtools/containeranalysis/v1beta1/common/common.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/common", "common_go_proto"),
"google/devtools/containeranalysis/v1beta1/containeranalysis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1", "containeranalysis_go_proto"),
"google/devtools/containeranalysis/v1beta1/deployment/deployment.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/deployment", "deployment_go_proto"),
"google/devtools/containeranalysis/v1beta1/discovery/discovery.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/discovery", "discovery_go_proto"),
"google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/grafeas", "grafeas_go_proto"),
"google/devtools/containeranalysis/v1beta1/image/image.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/image", "image_go_proto"),
"google/devtools/containeranalysis/v1beta1/package/package.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/package", "package_go_proto"),
"google/devtools/containeranalysis/v1beta1/provenance/provenance.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/provenance", "provenance_go_proto"),
"google/devtools/containeranalysis/v1beta1/source/source.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/source", "source_go_proto"),
"google/devtools/containeranalysis/v1beta1/vulnerability/vulnerability.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/vulnerability", "vulnerability_go_proto"),
"google/devtools/remoteexecution/v1test/remote_execution.proto": label.New("go_googleapis", "google/devtools/remoteexecution/v1test", "remoteexecution_go_proto"),
"google/devtools/remoteworkers/v1test2/bots.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_go_proto"),
"google/devtools/remoteworkers/v1test2/command.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_go_proto"),
"google/devtools/remoteworkers/v1test2/tasks.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_go_proto"),
"google/devtools/remoteworkers/v1test2/worker.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_go_proto"),
"google/devtools/resultstore/v2/action.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/common.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/configuration.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/configured_target.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/coverage.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/coverage_summary.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/file.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/file_set.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/invocation.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/resultstore_download.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/resultstore_file_download.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/resultstore_upload.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/target.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/resultstore/v2/test_suite.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_go_proto"),
"google/devtools/source/v1/source_context.proto": label.New("go_googleapis", "google/devtools/source/v1", "source_go_proto"),
"google/devtools/sourcerepo/v1/sourcerepo.proto": label.New("go_googleapis", "google/devtools/sourcerepo/v1", "sourcerepo_go_proto"),
"google/example/library/v1/library.proto": label.New("go_googleapis", "google/example/library/v1", "library_go_proto"),
"google/firestore/admin/v1/field.proto": label.New("go_googleapis", "google/firestore/admin/v1", "admin_go_proto"),
"google/firestore/admin/v1/firestore_admin.proto": label.New("go_googleapis", "google/firestore/admin/v1", "admin_go_proto"),
"google/firestore/admin/v1/index.proto": label.New("go_googleapis", "google/firestore/admin/v1", "admin_go_proto"),
"google/firestore/admin/v1/location.proto": label.New("go_googleapis", "google/firestore/admin/v1", "admin_go_proto"),
"google/firestore/admin/v1/operation.proto": label.New("go_googleapis", "google/firestore/admin/v1", "admin_go_proto"),
"google/firestore/admin/v1beta1/firestore_admin.proto": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_go_proto"),
"google/firestore/admin/v1beta1/index.proto": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_go_proto"),
"google/firestore/admin/v1beta1/location.proto": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_go_proto"),
"google/firestore/admin/v1beta2/field.proto": label.New("go_googleapis", "google/firestore/admin/v1beta2", "admin_go_proto"),
"google/firestore/admin/v1beta2/firestore_admin.proto": label.New("go_googleapis", "google/firestore/admin/v1beta2", "admin_go_proto"),
"google/firestore/admin/v1beta2/index.proto": label.New("go_googleapis", "google/firestore/admin/v1beta2", "admin_go_proto"),
"google/firestore/admin/v1beta2/operation.proto": label.New("go_googleapis", "google/firestore/admin/v1beta2", "admin_go_proto"),
"google/firestore/v1/common.proto": label.New("go_googleapis", "google/firestore/v1", "firestore_go_proto"),
"google/firestore/v1/document.proto": label.New("go_googleapis", "google/firestore/v1", "firestore_go_proto"),
"google/firestore/v1/firestore.proto": label.New("go_googleapis", "google/firestore/v1", "firestore_go_proto"),
"google/firestore/v1/query.proto": label.New("go_googleapis", "google/firestore/v1", "firestore_go_proto"),
"google/firestore/v1/write.proto": label.New("go_googleapis", "google/firestore/v1", "firestore_go_proto"),
"google/firestore/v1beta1/common.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google/firestore/v1beta1/document.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google/firestore/v1beta1/firestore.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google/firestore/v1beta1/query.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google/firestore/v1beta1/write.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_go_proto"),
"google/genomics/v1/annotations.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/cigar.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/datasets.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/operations.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/position.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/range.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/readalignment.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/readgroup.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/readgroupset.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/reads.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/references.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1/variants.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_go_proto"),
"google/genomics/v1alpha2/pipelines.proto": label.New("go_googleapis", "google/genomics/v1alpha2", "genomics_go_proto"),
"google/home/graph/v1/device.proto": label.New("go_googleapis", "google/home/graph/v1", "graph_go_proto"),
"google/home/graph/v1/homegraph.proto": label.New("go_googleapis", "google/home/graph/v1", "graph_go_proto"),
"google/iam/admin/v1/iam.proto": label.New("go_googleapis", "google/iam/admin/v1", "admin_go_proto"),
"google/iam/credentials/v1/common.proto": label.New("go_googleapis", "google/iam/credentials/v1", "credentials_go_proto"),
"google/iam/credentials/v1/iamcredentials.proto": label.New("go_googleapis", "google/iam/credentials/v1", "credentials_go_proto"),
"google/iam/v1/iam_policy.proto": label.New("go_googleapis", "google/iam/v1", "iam_go_proto"),
"google/iam/v1/logging/audit_data.proto": label.New("go_googleapis", "google/iam/v1/logging", "logging_go_proto"),
"google/iam/v1/policy.proto": label.New("go_googleapis", "google/iam/v1", "iam_go_proto"),
"google/logging/type/http_request.proto": label.New("go_googleapis", "google/logging/type", "ltype_go_proto"),
"google/logging/type/log_severity.proto": label.New("go_googleapis", "google/logging/type", "ltype_go_proto"),
"google/logging/v2/log_entry.proto": label.New("go_googleapis", "google/logging/v2", "logging_go_proto"),
"google/logging/v2/logging.proto": label.New("go_googleapis", "google/logging/v2", "logging_go_proto"),
"google/logging/v2/logging_config.proto": label.New("go_googleapis", "google/logging/v2", "logging_go_proto"),
"google/logging/v2/logging_metrics.proto": label.New("go_googleapis", "google/logging/v2", "logging_go_proto"),
"google/longrunning/operations.proto": label.New("go_googleapis", "google/longrunning", "longrunning_go_proto"),
"google/monitoring/v3/alert.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/alert_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/common.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/dropped_labels.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/group.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/group_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/metric.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/metric_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/mutation_record.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/notification.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/notification_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/span_context.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/uptime.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/monitoring/v3/uptime_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_go_proto"),
"google/privacy/dlp/v2/dlp.proto": label.New("go_googleapis", "google/privacy/dlp/v2", "dlp_go_proto"),
"google/privacy/dlp/v2/storage.proto": label.New("go_googleapis", "google/privacy/dlp/v2", "dlp_go_proto"),
"google/pubsub/v1/pubsub.proto": label.New("go_googleapis", "google/pubsub/v1", "pubsub_go_proto"),
"google/pubsub/v1beta2/pubsub.proto": label.New("go_googleapis", "google/pubsub/v1beta2", "pubsub_go_proto"),
"google/rpc/code.proto": label.New("go_googleapis", "google/rpc", "code_go_proto"),
"google/rpc/error_details.proto": label.New("go_googleapis", "google/rpc", "errdetails_go_proto"),
"google/rpc/status.proto": label.New("go_googleapis", "google/rpc", "status_go_proto"),
"google/spanner/admin/database/v1/spanner_database_admin.proto": label.New("go_googleapis", "google/spanner/admin/database/v1", "database_go_proto"),
"google/spanner/admin/instance/v1/spanner_instance_admin.proto": label.New("go_googleapis", "google/spanner/admin/instance/v1", "instance_go_proto"),
"google/spanner/v1/keys.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/mutation.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/query_plan.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/result_set.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/spanner.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/transaction.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/spanner/v1/type.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_go_proto"),
"google/storagetransfer/v1/transfer.proto": label.New("go_googleapis", "google/storagetransfer/v1", "storagetransfer_go_proto"),
"google/storagetransfer/v1/transfer_types.proto": label.New("go_googleapis", "google/storagetransfer/v1", "storagetransfer_go_proto"),
"google/streetview/publish/v1/resources.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_go_proto"),
"google/streetview/publish/v1/rpcmessages.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_go_proto"),
"google/streetview/publish/v1/streetview_publish.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_go_proto"),
"google/type/color.proto": label.New("go_googleapis", "google/type", "color_go_proto"),
"google/type/date.proto": label.New("go_googleapis", "google/type", "date_go_proto"),
"google/type/dayofweek.proto": label.New("go_googleapis", "google/type", "dayofweek_go_proto"),
"google/type/latlng.proto": label.New("go_googleapis", "google/type", "latlng_go_proto"),
"google/type/money.proto": label.New("go_googleapis", "google/type", "money_go_proto"),
"google/type/postal_address.proto": label.New("go_googleapis", "google/type", "postaladdress_go_proto"),
"google/type/timeofday.proto": label.New("go_googleapis", "google/type", "timeofday_go_proto"),
"google/watcher/v1/watch.proto": label.New("go_googleapis", "google/watcher/v1", "watcher_go_proto"),
}

View File

@ -51,10 +51,9 @@ limitations under the License.
//
// Gazelle has special cases for import paths associated with proto Well
// Known Types and Google APIs. rules_go declares canonical rules for these.
package golang
import "github.com/bazelbuild/bazel-gazelle/internal/language"
import "github.com/bazelbuild/bazel-gazelle/language"
const goName = "go"
@ -66,6 +65,6 @@ type goLang struct {
func (_ *goLang) Name() string { return goName }
func New() language.Language {
func NewLanguage() language.Language {
return &goLang{goPkgRels: make(map[string]bool)}
}

View File

@ -22,9 +22,9 @@ import (
"sort"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/language/proto"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/language/proto"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// goPackage contains metadata for a set of .go and .proto files that can be
@ -92,7 +92,7 @@ func (pkg *goPackage) addFile(c *config.Config, info fileInfo, cgo bool) error {
case info.ext == unknownExt || !cgo && (info.ext == cExt || info.ext == csExt):
return nil
case info.ext == protoExt:
if proto.GetProtoConfig(c).Mode == proto.LegacyMode {
if pcMode := getProtoMode(c); pcMode == proto.LegacyMode {
// Only add files in legacy mode. This is used to generate a filegroup
// that contains all protos. In order modes, we get the .proto files
// from information emitted by the proto language extension.

View File

@ -23,13 +23,12 @@ import (
"path"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/label"
"github.com/bazelbuild/bazel-gazelle/internal/language/proto"
"github.com/bazelbuild/bazel-gazelle/internal/pathtools"
"github.com/bazelbuild/bazel-gazelle/internal/repos"
"github.com/bazelbuild/bazel-gazelle/internal/resolve"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/label"
"github.com/bazelbuild/bazel-gazelle/pathtools"
"github.com/bazelbuild/bazel-gazelle/repo"
"github.com/bazelbuild/bazel-gazelle/resolve"
"github.com/bazelbuild/bazel-gazelle/rule"
)
func (_ *goLang) Imports(_ *config.Config, r *rule.Rule, f *rule.File) []resolve.ImportSpec {
@ -60,8 +59,7 @@ func (_ *goLang) Embeds(r *rule.Rule, from label.Label) []label.Label {
return embedLabels
}
func (gl *goLang) Resolve(c *config.Config, ix *resolve.RuleIndex, rc *repos.RemoteCache, r *rule.Rule, from label.Label) {
importsRaw := r.PrivateAttr(config.GazelleImportsKey)
func (gl *goLang) Resolve(c *config.Config, ix *resolve.RuleIndex, rc *repo.RemoteCache, r *rule.Rule, importsRaw interface{}, from label.Label) {
if importsRaw == nil {
// may not be set in tests.
return
@ -91,7 +89,14 @@ func (gl *goLang) Resolve(c *config.Config, ix *resolve.RuleIndex, rc *repos.Rem
log.Print(err)
}
if !deps.IsEmpty() {
r.SetAttr("deps", deps)
if r.Kind() == "go_proto_library" {
// protos may import the same library multiple times by different names,
// so we need to de-duplicate them. Protos are not platform-specific,
// so it's safe to just flatten them.
r.SetAttr("deps", deps.Flat())
} else {
r.SetAttr("deps", deps)
}
}
}
@ -100,9 +105,9 @@ var (
notFoundError = errors.New("rule not found")
)
func resolveGo(c *config.Config, ix *resolve.RuleIndex, rc *repos.RemoteCache, r *rule.Rule, imp string, from label.Label) (label.Label, error) {
func resolveGo(c *config.Config, ix *resolve.RuleIndex, rc *repo.RemoteCache, r *rule.Rule, imp string, from label.Label) (label.Label, error) {
gc := getGoConfig(c)
pc := proto.GetProtoConfig(c)
pcMode := getProtoMode(c)
if build.IsLocalImport(imp) {
cleanRel := path.Clean(path.Join(from.Pkg, imp))
if build.IsLocalImport(cleanRel) {
@ -115,7 +120,11 @@ func resolveGo(c *config.Config, ix *resolve.RuleIndex, rc *repos.RemoteCache, r
return label.NoLabel, skipImportError
}
if pc.Mode.ShouldUseKnownImports() {
if l, ok := resolve.FindRuleWithOverride(c, resolve.ImportSpec{Lang: "go", Imp: imp}, "go"); ok {
return l, nil
}
if pcMode.ShouldUseKnownImports() {
// These are commonly used libraries that depend on Well Known Types.
// They depend on the generated versions of these protos to avoid conflicts.
// However, since protoc-gen-go depends on these libraries, we generate
@ -123,12 +132,18 @@ func resolveGo(c *config.Config, ix *resolve.RuleIndex, rc *repos.RemoteCache, r
// "go_default_library" versions of these libraries depend on the
// pre-generated versions of the proto libraries.
switch imp {
case "github.com/golang/protobuf/proto":
return label.New("com_github_golang_protobuf", "proto", "go_default_library"), nil
case "github.com/golang/protobuf/jsonpb":
return label.New("com_github_golang_protobuf", "jsonpb", "go_default_library_gen"), nil
case "github.com/golang/protobuf/descriptor":
return label.New("com_github_golang_protobuf", "descriptor", "go_default_library_gen"), nil
case "github.com/golang/protobuf/ptypes":
return label.New("com_github_golang_protobuf", "ptypes", "go_default_library_gen"), nil
case "github.com/golang/protobuf/protoc-gen-go/generator":
return label.New("com_github_golang_protobuf", "protoc-gen-go/generator", "go_default_library_gen"), nil
case "google.golang.org/grpc":
return label.New("org_golang_google_grpc", "", "go_default_library"), nil
}
if l, ok := knownGoProtoImports[imp]; ok {
return l, nil
@ -141,9 +156,25 @@ func resolveGo(c *config.Config, ix *resolve.RuleIndex, rc *repos.RemoteCache, r
return label.NoLabel, err
}
if pathtools.HasPrefix(imp, gc.prefix) {
pkg := path.Join(gc.prefixRel, pathtools.TrimPrefix(imp, gc.prefix))
return label.New("", pkg, config.DefaultLibName), nil
// Special cases for rules_go and bazel_gazelle.
// These have names that don't following conventions and they're
// typeically declared with http_archive, not go_repository, so Gazelle
// won't recognize them.
if pathtools.HasPrefix(imp, "github.com/bazelbuild/rules_go") {
pkg := pathtools.TrimPrefix(imp, "github.com/bazelbuild/rules_go")
return label.New("io_bazel_rules_go", pkg, "go_default_library"), nil
} else if pathtools.HasPrefix(imp, "github.com/bazelbuild/bazel-gazelle") {
pkg := pathtools.TrimPrefix(imp, "github.com/bazelbuild/bazel-gazelle")
return label.New("bazel_gazelle", pkg, "go_default_library"), nil
}
if !c.IndexLibraries {
// packages in current repo were not indexed, relying on prefix to decide what may have been in
// current repo
if pathtools.HasPrefix(imp, gc.prefix) {
pkg := path.Join(gc.prefixRel, pathtools.TrimPrefix(imp, gc.prefix))
return label.New("", pkg, defaultLibName), nil
}
}
if gc.depMode == externalMode {
@ -211,7 +242,7 @@ func resolveWithIndexGo(ix *resolve.RuleIndex, imp string, from label.Label) (la
return bestMatch.Label, nil
}
func resolveExternal(rc *repos.RemoteCache, imp string) (label.Label, error) {
func resolveExternal(rc *repo.RemoteCache, imp string) (label.Label, error) {
prefix, repo, err := rc.Root(imp)
if err != nil {
return label.NoLabel, err
@ -222,21 +253,25 @@ func resolveExternal(rc *repos.RemoteCache, imp string) (label.Label, error) {
pkg = pathtools.TrimPrefix(imp, prefix)
}
return label.New(repo, pkg, config.DefaultLibName), nil
return label.New(repo, pkg, defaultLibName), nil
}
func resolveVendored(rc *repos.RemoteCache, imp string) (label.Label, error) {
return label.New("", path.Join("vendor", imp), config.DefaultLibName), nil
func resolveVendored(rc *repo.RemoteCache, imp string) (label.Label, error) {
return label.New("", path.Join("vendor", imp), defaultLibName), nil
}
func resolveProto(c *config.Config, ix *resolve.RuleIndex, rc *repos.RemoteCache, r *rule.Rule, imp string, from label.Label) (label.Label, error) {
pc := proto.GetProtoConfig(c)
func resolveProto(c *config.Config, ix *resolve.RuleIndex, rc *repo.RemoteCache, r *rule.Rule, imp string, from label.Label) (label.Label, error) {
pcMode := getProtoMode(c)
if wellKnownProtos[imp] {
return label.NoLabel, skipImportError
}
if l, ok := knownProtoImports[imp]; ok && pc.Mode.ShouldUseKnownImports() {
if l, ok := resolve.FindRuleWithOverride(c, resolve.ImportSpec{Lang: "proto", Imp: imp}, "go"); ok {
return l, nil
}
if l, ok := knownProtoImports[imp]; ok && pcMode.ShouldUseKnownImports() {
if l.Equal(from) {
return label.NoLabel, skipImportError
} else {
@ -261,7 +296,7 @@ func resolveProto(c *config.Config, ix *resolve.RuleIndex, rc *repos.RemoteCache
if from.Pkg == "vendor" || strings.HasPrefix(from.Pkg, "vendor/") {
rel = path.Join("vendor", rel)
}
return label.New("", rel, config.DefaultLibName), nil
return label.New("", rel, defaultLibName), nil
}
// wellKnownProtos is the set of proto sets for which we don't need to add

View File

@ -0,0 +1,151 @@
/* Copyright 2018 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Package language provides an interface for language extensions in Gazelle.
// Support for a new language can be added by defining a package with a
// function named "New" that returns a value assignable to this interface.
//
// TODO(jayconrod): document how to incorporate languages into a gazelle
// binary that can be run by Bazel.
package language
import (
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/resolve"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// Language describes an extension for Gazelle that provides support for
// a set of Bazel rules.
//
// Languages are used primarily by the fix and update commands. The order
// in which languages are used matters, since languages may depend on
// one another. For example, go depends on proto, since go_proto_libraries
// are generated from metadata stored in proto_libraries.
//
// A single instance of Language is created for each fix / update run. Some
// state may be stored in this instance, but stateless behavior is encouraged,
// especially since some operations may be concurrent in the future.
//
// Tasks languages are used for
//
// * Configuration (embedded interface config.Configurer). Languages may
// define command line flags and alter the configuration in a directory
// based on directives in build files.
//
// * Fixing deprecated usage of rules in build files.
//
// * Generating rules from source files in a directory.
//
// * Resolving library imports (embedded interface resolve.Resolver). For
// example, import strings like "github.com/foo/bar" in Go can be resolved
// into Bazel labels like "@com_github_foo_bar//:go_default_library".
//
// Tasks languages support
//
// * Generating load statements: languages list files and symbols that may
// be loaded.
//
// * Merging generated rules into existing rules: languages provide metadata
// that helps with rule matching, merging, and deletion.
type Language interface {
// TODO(jayconrod): is embedding Configurer strictly necessary?
config.Configurer
resolve.Resolver
// Kinds returns a map of maps rule names (kinds) and information on how to
// match and merge attributes that may be found in rules of those kinds. All
// kinds of rules generated for this language may be found here.
Kinds() map[string]rule.KindInfo
// Loads returns .bzl files and symbols they define. Every rule generated by
// GenerateRules, now or in the past, should be loadable from one of these
// files.
Loads() []rule.LoadInfo
// GenerateRules extracts build metadata from source files in a directory.
// GenerateRules is called in each directory where an update is requested
// in depth-first post-order.
//
// args contains the arguments for GenerateRules. This is passed as a
// struct to avoid breaking implementations in the future when new
// fields are added.
//
// A GenerateResult struct is returned. Optional fields may be added to this
// type in the future.
//
// Any non-fatal errors this function encounters should be logged using
// log.Print.
GenerateRules(args GenerateArgs) GenerateResult
// Fix repairs deprecated usage of language-specific rules in f. This is
// called before the file is indexed. Unless c.ShouldFix is true, fixes
// that delete or rename rules should not be performed.
Fix(c *config.Config, f *rule.File)
}
// GenerateArgs contains arguments for language.GenerateRules. Arguments are
// passed in a struct value so that new fields may be added in the future
// without breaking existing implementations.
type GenerateArgs struct {
// Config is the configuration for the directory where rules are being
// generated.
Config *config.Config
// Dir is the canonical absolute path to the directory.
Dir string
// Rel is the slash-separated path to the directory, relative to the
// repository root ("" for the root directory itself). This may be used
// as the package name in labels.
Rel string
// File is the build file for the directory. File is nil if there is
// no existing build file.
File *rule.File
// Subdirs is a list of subdirectories in the directory, including
// symbolic links to directories that Gazelle will follow.
// RegularFiles is a list of regular files including other symbolic
// links.
// GeneratedFiles is a list of generated files in the directory
// (usually these are mentioned as "out" or "outs" attributes in rules).
Subdirs, RegularFiles, GenFiles []string
// OtherEmpty is a list of empty rules generated by other languages.
// OtherGen is a list of generated rules generated by other languages.
OtherEmpty, OtherGen []*rule.Rule
}
// GenerateResult contains return values for language.GenerateRules.
// Results are returned through a struct value so that new (optional)
// fields may be added without breaking existing implementations.
type GenerateResult struct {
// Gen is a list of rules generated from files found in the directory
// GenerateRules was asked to process. These will be merged with existing
// rules or added to the build file.
Gen []*rule.Rule
// Empty is a list of rules that cannot be built with the files found in the
// directory GenerateRules was asked to process. These will be merged with
// existing rules. If ther merged rules are empty, they will be deleted.
Empty []*rule.Rule
// Imports contains information about the imported libraries for each
// rule in Gen. Gen and Imports must have the same length, since they
// correspond. These values are passed to Resolve after merge. The type
// is opaque since different languages may use different representations.
Imports []interface{}
}

View File

@ -0,0 +1,28 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"config.go",
"constants.go",
"fileinfo.go",
"fix.go",
"generate.go",
"kinds.go",
"known_imports.go",
"lang.go",
"package.go",
"resolve.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/language/proto",
importpath = "github.com/bazelbuild/bazel-gazelle/language/proto",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/language:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/repo:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/resolve:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library",
],
)

View File

@ -20,9 +20,10 @@ import (
"fmt"
"log"
"path"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// ProtoConfig contains configuration values related to protos.
@ -46,10 +47,26 @@ type ProtoConfig struct {
// groupOption is an option name that Gazelle will use to group .proto
// files into proto_library rules. If unset, the proto package name is used.
groupOption string
// stripImportPrefix The prefix to strip from the paths of the .proto files.
// If set, Gazelle will apply this value to the strip_import_prefix attribute
// within the proto_library_rule.
stripImportPrefix string
// importPrefix The prefix to add to the paths of the .proto files.
// If set, Gazelle will apply this value to the import_prefix attribute
// within the proto_library_rule.
importPrefix string
}
// GetProtoConfig returns the proto language configuration. If the proto
// extension was not run, it will return nil.
func GetProtoConfig(c *config.Config) *ProtoConfig {
return c.Exts[protoName].(*ProtoConfig)
pc := c.Exts[protoName]
if pc == nil {
return nil
}
return pc.(*ProtoConfig)
}
// Mode determines how proto rules are generated.
@ -168,6 +185,7 @@ func (_ *protoLang) RegisterFlags(fs *flag.FlagSet, cmd string, c *config.Config
// this is set for compatibility with older versions.
fs.Var(&modeFlag{&pc.Mode}, "proto", "default: generates a proto_library rule for one package\n\tpackage: generates a proto_library rule for for each package\n\tdisable: does not touch proto rules\n\tdisable_global: does not touch proto rules and does not use special cases for protos in dependency resolution")
fs.StringVar(&pc.groupOption, "proto_group", "", "option name used to group .proto files into proto_library rules")
fs.StringVar(&pc.importPrefix, "proto_import_prefix", "", "When set, .proto source files in the srcs attribute of the rule are accessible at their path with this prefix appended on.")
}
func (_ *protoLang) CheckFlags(fs *flag.FlagSet, c *config.Config) error {
@ -175,7 +193,7 @@ func (_ *protoLang) CheckFlags(fs *flag.FlagSet, c *config.Config) error {
}
func (_ *protoLang) KnownDirectives() []string {
return []string{"proto", "proto_group"}
return []string{"proto", "proto_group", "proto_strip_import_prefix", "proto_import_prefix"}
}
func (_ *protoLang) Configure(c *config.Config, rel string, f *rule.File) {
@ -195,6 +213,15 @@ func (_ *protoLang) Configure(c *config.Config, rel string, f *rule.File) {
pc.ModeExplicit = true
case "proto_group":
pc.groupOption = d.Value
case "proto_strip_import_prefix":
pc.stripImportPrefix = d.Value
if rel != "" {
if err := checkStripImportPrefix(pc.stripImportPrefix, rel); err != nil {
log.Print(err)
}
}
case "proto_import_prefix":
pc.importPrefix = d.Value
}
}
}
@ -248,3 +275,10 @@ outer:
}
pc.Mode = mode
}
func checkStripImportPrefix(prefix, rel string) error {
if !strings.HasPrefix(prefix, "/") || !strings.HasPrefix(rel, prefix[1:]) {
return fmt.Errorf("invalid proto_strip_import_prefix %q at %s", prefix, rel)
}
return nil
}

View File

@ -16,8 +16,8 @@ limitations under the License.
package proto
import (
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/rule"
)
func (_ *protoLang) Fix(c *config.Config, f *rule.File) {

View File

@ -21,45 +21,52 @@ import (
"sort"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/language"
"github.com/bazelbuild/bazel-gazelle/rule"
)
func (_ *protoLang) GenerateRules(c *config.Config, dir, rel string, f *rule.File, subdirs, regularFiles, genFiles []string, otherEmpty, otherGen []*rule.Rule) (empty, gen []*rule.Rule) {
func (_ *protoLang) GenerateRules(args language.GenerateArgs) language.GenerateResult {
c := args.Config
pc := GetProtoConfig(c)
if !pc.Mode.ShouldGenerateRules() {
// Don't create or delete proto rules in this mode. Any existing rules
// are likely hand-written.
return nil, nil
return language.GenerateResult{}
}
var regularProtoFiles []string
for _, name := range regularFiles {
for _, name := range args.RegularFiles {
if strings.HasSuffix(name, ".proto") {
regularProtoFiles = append(regularProtoFiles, name)
}
}
var genProtoFiles []string
for _, name := range genFiles {
for _, name := range args.GenFiles {
if strings.HasSuffix(name, ".proto") {
genProtoFiles = append(genFiles, name)
genProtoFiles = append(genProtoFiles, name)
}
}
pkgs := buildPackages(pc, dir, rel, regularProtoFiles, genProtoFiles)
shouldSetVisibility := !hasDefaultVisibility(f)
pkgs := buildPackages(pc, args.Dir, args.Rel, regularProtoFiles, genProtoFiles)
shouldSetVisibility := args.File == nil || !args.File.HasDefaultVisibility()
var res language.GenerateResult
for _, pkg := range pkgs {
r := generateProto(pc, rel, pkg, shouldSetVisibility)
r := generateProto(pc, args.Rel, pkg, shouldSetVisibility)
if r.IsEmpty(protoKinds[r.Kind()]) {
empty = append(empty, r)
res.Empty = append(res.Empty, r)
} else {
gen = append(gen, r)
res.Gen = append(res.Gen, r)
}
}
sort.SliceStable(gen, func(i, j int) bool {
return gen[i].Name() < gen[j].Name()
sort.SliceStable(res.Gen, func(i, j int) bool {
return res.Gen[i].Name() < res.Gen[j].Name()
})
empty = append(empty, generateEmpty(f, regularProtoFiles, genProtoFiles)...)
return empty, gen
res.Imports = make([]interface{}, len(res.Gen))
for i, r := range res.Gen {
res.Imports[i] = r.PrivateAttr(config.GazelleImportsKey)
}
res.Empty = append(res.Empty, generateEmpty(args.File, regularProtoFiles, genProtoFiles)...)
return res
}
// RuleName returns a name for a proto_library derived from the given strings.
@ -203,14 +210,22 @@ func generateProto(pc *ProtoConfig, rel string, pkg *Package, shouldSetVisibilit
imports = append(imports, i)
}
sort.Strings(imports)
// NOTE: This attribute should not be used outside this extension. It's still
// convenient for testing though.
r.SetPrivateAttr(config.GazelleImportsKey, imports)
for k, v := range pkg.Options {
r.SetPrivateAttr(k, v)
}
if shouldSetVisibility {
vis := checkInternalVisibility(rel, "//visibility:public")
vis := rule.CheckInternalVisibility(rel, "//visibility:public")
r.SetAttr("visibility", []string{vis})
}
if pc.stripImportPrefix != "" {
r.SetAttr("strip_import_prefix", pc.stripImportPrefix)
}
if pc.importPrefix != "" {
r.SetAttr("import_prefix", pc.importPrefix)
}
return r
}
@ -248,29 +263,3 @@ outer:
}
return empty
}
// hasDefaultVisibility returns whether oldFile contains a "package" rule with
// a "default_visibility" attribute. Rules generated by Gazelle should not
// have their own visibility attributes if this is the case.
func hasDefaultVisibility(f *rule.File) bool {
if f == nil {
return false
}
for _, r := range f.Rules {
if r.Kind() == "package" && r.Attr("default_visibility") != nil {
return true
}
}
return false
}
// checkInternalVisibility overrides the given visibility if the package is
// internal.
func checkInternalVisibility(rel, visibility string) string {
if i := strings.LastIndex(rel, "/internal/"); i >= 0 {
visibility = fmt.Sprintf("//%s:__subpackages__", rel[:i])
} else if strings.HasPrefix(rel, "internal/") {
visibility = "//:__subpackages__"
}
return visibility
}

View File

@ -15,13 +15,15 @@ limitations under the License.
package proto
import "github.com/bazelbuild/bazel-gazelle/internal/rule"
import "github.com/bazelbuild/bazel-gazelle/rule"
var protoKinds = map[string]rule.KindInfo{
"proto_library": {
NonEmptyAttrs: map[string]bool{"srcs": true},
MergeableAttrs: map[string]bool{"srcs": true},
ResolveAttrs: map[string]bool{"deps": true},
NonEmptyAttrs: map[string]bool{"srcs": true},
MergeableAttrs: map[string]bool{
"srcs": true,
},
ResolveAttrs: map[string]bool{"deps": true},
},
}

View File

@ -0,0 +1,727 @@
// Generated by language/proto/gen/gen_known_imports.go
// From language/proto/proto.csv
package proto
import "github.com/bazelbuild/bazel-gazelle/label"
var knownImports = map[string]label.Label{
"google/protobuf/any.proto": label.New("com_google_protobuf", "", "any_proto"),
"google/protobuf/api.proto": label.New("com_google_protobuf", "", "api_proto"),
"google/protobuf/compiler/plugin.proto": label.New("com_google_protobuf", "", "compiler_plugin_proto"),
"google/protobuf/descriptor.proto": label.New("com_google_protobuf", "", "descriptor_proto"),
"google/protobuf/duration.proto": label.New("com_google_protobuf", "", "duration_proto"),
"google/protobuf/empty.proto": label.New("com_google_protobuf", "", "empty_proto"),
"google/protobuf/field_mask.proto": label.New("com_google_protobuf", "", "field_mask_proto"),
"google/protobuf/source_context.proto": label.New("com_google_protobuf", "", "source_context_proto"),
"google/protobuf/struct.proto": label.New("com_google_protobuf", "", "struct_proto"),
"google/protobuf/timestamp.proto": label.New("com_google_protobuf", "", "timestamp_proto"),
"google/protobuf/type.proto": label.New("com_google_protobuf", "", "type_proto"),
"google/protobuf/wrappers.proto": label.New("com_google_protobuf", "", "wrappers_proto"),
"google/ads/googleads/v0/common/ad_type_infos.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/bidding.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/criteria.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/criterion_category_availability.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/custom_parameter.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/dates.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/explorer_auto_optimizer_setting.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/feed_common.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/frequency_cap.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/keyword_plan_common.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/matching_function.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/metrics.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/policy.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/real_time_bidding_setting.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/tag_snippet.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/user_lists.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/common/value.proto": label.New("go_googleapis", "google/ads/googleads/v0/common", "common_proto"),
"google/ads/googleads/v0/enums/access_reason.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/account_budget_proposal_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/account_budget_proposal_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/account_budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/ad_customizer_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/ad_group_ad_rotation_mode.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/ad_group_ad_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/ad_group_criterion_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/ad_group_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/ad_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/ad_network_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/ad_serving_optimization_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/ad_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/advertising_channel_sub_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/advertising_channel_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/affiliate_location_feed_relationship_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/age_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/app_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/attribution_model.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/bid_modifier_source.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/bidding_source.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/bidding_strategy_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/billing_setup_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/budget_delivery_method.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/call_conversion_reporting_state.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/call_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/callout_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/campaign_group_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/campaign_serving_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/campaign_shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/campaign_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/change_status_operation.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/change_status_resource_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/content_label_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/conversion_action_category.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/conversion_action_counting_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/conversion_action_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/conversion_action_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/criterion_category_channel_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/criterion_category_locale_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/custom_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/customer_match_upload_key_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/data_driven_model_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/day_of_week.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/device.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/display_ad_format_setting.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/education_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/feed_attribute_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/feed_item_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/feed_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/feed_mapping_criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/feed_mapping_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/feed_origin.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/feed_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/flight_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/frequency_cap_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/frequency_cap_level.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/frequency_cap_time_unit.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/gender_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/geo_target_constant_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/geo_targeting_restriction.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/google_ads_field_category.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/google_ads_field_data_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/hotel_date_selection_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/hotel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/income_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/interaction_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/job_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/keyword_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/keyword_plan_competition_level.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/keyword_plan_forecast_interval.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/keyword_plan_network.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/listing_custom_attribute_index.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/listing_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/local_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/manager_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/media_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/message_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/mime_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/minute_of_hour.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/month_of_year.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/page_one_promoted_strategy_goal.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/parental_status_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/placeholder_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/policy_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/policy_review_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/policy_topic_entry_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/policy_topic_evidence_destination_mismatch_url_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/preferred_content_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/price_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/product_channel.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/product_channel_exclusivity.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/product_condition.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/product_type_level.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/promotion_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/proximity_radius_units.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/quality_score_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/real_estate_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/recommendation_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/search_term_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/search_term_targeting_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/shared_set_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/sitelink_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/slot.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/spending_limit_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/structured_snippet_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/target_cpa_opt_in_recommendation_goal.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/targeting_dimension.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/time_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/tracking_code_page_format.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/tracking_code_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/travel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/user_interest_taxonomy_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/user_list_access_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/user_list_closing_reason.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/user_list_crm_data_source_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/user_list_membership_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/user_list_size_range.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/enums/user_list_type.proto": label.New("go_googleapis", "google/ads/googleads/v0/enums", "enums_proto"),
"google/ads/googleads/v0/errors/account_budget_proposal_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/ad_customizer_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/ad_group_ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/ad_group_bid_modifier_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/ad_group_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/ad_group_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/ad_sharing_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/adx_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/authentication_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/authorization_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/bidding_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/bidding_strategy_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/billing_setup_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/campaign_budget_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/campaign_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/campaign_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/campaign_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/campaign_shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/change_status_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/collection_size_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/context_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/conversion_action_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/customer_client_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/customer_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/customer_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/customer_manager_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/database_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/date_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/date_range_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/distinct_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/enum_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/errors.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/feed_attribute_reference_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/feed_item_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/feed_mapping_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/field_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/field_mask_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/function_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/function_parsing_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/geo_target_constant_suggestion_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/header_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/id_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/image_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/internal_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/keyword_plan_ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/keyword_plan_campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/keyword_plan_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/keyword_plan_idea_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/keyword_plan_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/keyword_plan_negative_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/list_operation_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/media_bundle_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/media_file_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/multiplier_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/mutate_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/new_resource_creation_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/not_empty_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/null_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/operation_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/operator_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/policy_finding_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/query_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/quota_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/range_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/recommendation_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/region_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/request_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/resource_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/resource_count_limit_exceeded_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/setting_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/shared_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/string_format_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/string_length_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/url_field_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/errors/user_list_error.proto": label.New("go_googleapis", "google/ads/googleads/v0/errors", "errors_proto"),
"google/ads/googleads/v0/resources/account_budget.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/account_budget_proposal.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/ad.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/ad_group_ad.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/ad_group_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/ad_group_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/ad_group_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/ad_group_feed.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/age_range_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/bidding_strategy.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/billing_setup.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/campaign.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/campaign_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/campaign_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/campaign_budget.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/campaign_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/campaign_feed.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/campaign_group.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/campaign_shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/carrier_constant.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/change_status.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/conversion_action.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/customer.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/customer_client.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/customer_client_link.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/customer_feed.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/customer_manager_link.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/display_keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/feed.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/feed_item.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/feed_mapping.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/gender_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/geo_target_constant.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/google_ads_field.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/hotel_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/hotel_performance_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/keyword_plan.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/keyword_plan_ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/keyword_plan_campaign.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/keyword_plan_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/keyword_plan_negative_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/language_constant.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/managed_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/media_file.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/parental_status_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/payments_account.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/product_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/recommendation.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/shared_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/topic_constant.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/topic_view.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/user_interest.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/user_list.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/resources/video.proto": label.New("go_googleapis", "google/ads/googleads/v0/resources", "resources_proto"),
"google/ads/googleads/v0/services/account_budget_proposal_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/account_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/ad_group_ad_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/ad_group_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/ad_group_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/ad_group_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/ad_group_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/age_range_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/bidding_strategy_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/billing_setup_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/campaign_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/campaign_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/campaign_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/campaign_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/campaign_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/campaign_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/campaign_shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/carrier_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/change_status_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/conversion_action_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/customer_client_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/customer_client_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/customer_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/customer_manager_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/customer_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/display_keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/feed_item_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/feed_mapping_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/gender_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/geo_target_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/google_ads_field_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/google_ads_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/hotel_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/hotel_performance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/keyword_plan_ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/keyword_plan_campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/keyword_plan_idea_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/keyword_plan_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/keyword_plan_negative_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/keyword_plan_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/language_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/managed_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/media_file_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/parental_status_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/payments_account_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/product_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/recommendation_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/shared_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/topic_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/topic_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/user_interest_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/user_list_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/ads/googleads/v0/services/video_service.proto": label.New("go_googleapis", "google/ads/googleads/v0/services", "services_proto"),
"google/api/annotations.proto": label.New("go_googleapis", "google/api", "annotations_proto"),
"google/api/auth.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/backend.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/billing.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/config_change.proto": label.New("go_googleapis", "google/api", "configchange_proto"),
"google/api/consumer.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/context.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/control.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/distribution.proto": label.New("go_googleapis", "google/api", "distribution_proto"),
"google/api/documentation.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/endpoint.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/experimental/authorization_config.proto": label.New("go_googleapis", "google/api", "api_proto"),
"google/api/experimental/experimental.proto": label.New("go_googleapis", "google/api", "api_proto"),
"google/api/expr/v1alpha1/cel_service.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_proto"),
"google/api/expr/v1alpha1/checked.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_proto"),
"google/api/expr/v1alpha1/conformance_service.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_proto"),
"google/api/expr/v1alpha1/eval.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_proto"),
"google/api/expr/v1alpha1/explain.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_proto"),
"google/api/expr/v1alpha1/syntax.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_proto"),
"google/api/expr/v1alpha1/value.proto": label.New("go_googleapis", "google/api/expr/v1alpha1", "expr_proto"),
"google/api/expr/v1beta1/decl.proto": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_proto"),
"google/api/expr/v1beta1/eval.proto": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_proto"),
"google/api/expr/v1beta1/expr.proto": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_proto"),
"google/api/expr/v1beta1/source.proto": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_proto"),
"google/api/expr/v1beta1/value.proto": label.New("go_googleapis", "google/api/expr/v1beta1", "expr_proto"),
"google/api/http.proto": label.New("go_googleapis", "google/api", "annotations_proto"),
"google/api/httpbody.proto": label.New("go_googleapis", "google/api", "httpbody_proto"),
"google/api/label.proto": label.New("go_googleapis", "google/api", "label_proto"),
"google/api/launch_stage.proto": label.New("go_googleapis", "google/api", "api_proto"),
"google/api/log.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/logging.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/metric.proto": label.New("go_googleapis", "google/api", "metric_proto"),
"google/api/monitored_resource.proto": label.New("go_googleapis", "google/api", "monitoredres_proto"),
"google/api/monitoring.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/quota.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/service.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/servicecontrol/v1/check_error.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/distribution.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/log_entry.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/metric_value.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/operation.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/quota_controller.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicecontrol/v1/service_controller.proto": label.New("go_googleapis", "google/api/servicecontrol/v1", "servicecontrol_proto"),
"google/api/servicemanagement/v1/resources.proto": label.New("go_googleapis", "google/api/servicemanagement/v1", "servicemanagement_proto"),
"google/api/servicemanagement/v1/servicemanager.proto": label.New("go_googleapis", "google/api/servicemanagement/v1", "servicemanagement_proto"),
"google/api/source_info.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/system_parameter.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/api/usage.proto": label.New("go_googleapis", "google/api", "serviceconfig_proto"),
"google/appengine/legacy/audit_data.proto": label.New("go_googleapis", "google/appengine/legacy", "legacy_proto"),
"google/appengine/logging/v1/request_log.proto": label.New("go_googleapis", "google/appengine/logging/v1", "logging_proto"),
"google/appengine/v1/app_yaml.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/appengine.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/application.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/audit_data.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/deploy.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/instance.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/location.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/operation.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/service.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/appengine/v1/version.proto": label.New("go_googleapis", "google/appengine/v1", "appengine_proto"),
"google/assistant/embedded/v1alpha1/embedded_assistant.proto": label.New("go_googleapis", "google/assistant/embedded/v1alpha1", "embedded_proto"),
"google/assistant/embedded/v1alpha2/embedded_assistant.proto": label.New("go_googleapis", "google/assistant/embedded/v1alpha2", "embedded_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_data.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_service.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_proto"),
"google/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.proto": label.New("go_googleapis", "google/bigtable/admin/cluster/v1", "cluster_proto"),
"google/bigtable/admin/table/v1/bigtable_table_data.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_proto"),
"google/bigtable/admin/table/v1/bigtable_table_service.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_proto"),
"google/bigtable/admin/table/v1/bigtable_table_service_messages.proto": label.New("go_googleapis", "google/bigtable/admin/table/v1", "table_proto"),
"google/bigtable/admin/v2/bigtable_instance_admin.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_proto"),
"google/bigtable/admin/v2/bigtable_table_admin.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_proto"),
"google/bigtable/admin/v2/common.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_proto"),
"google/bigtable/admin/v2/instance.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_proto"),
"google/bigtable/admin/v2/table.proto": label.New("go_googleapis", "google/bigtable/admin/v2", "admin_proto"),
"google/bigtable/v1/bigtable_data.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_proto"),
"google/bigtable/v1/bigtable_service.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_proto"),
"google/bigtable/v1/bigtable_service_messages.proto": label.New("go_googleapis", "google/bigtable/v1", "bigtable_proto"),
"google/bigtable/v2/bigtable.proto": label.New("go_googleapis", "google/bigtable/v2", "bigtable_proto"),
"google/bigtable/v2/data.proto": label.New("go_googleapis", "google/bigtable/v2", "bigtable_proto"),
"google/bytestream/bytestream.proto": label.New("go_googleapis", "google/bytestream", "bytestream_proto"),
"google/cloud/asset/v1beta1/asset_service.proto": label.New("go_googleapis", "google/cloud/asset/v1beta1", "asset_proto"),
"google/cloud/asset/v1beta1/assets.proto": label.New("go_googleapis", "google/cloud/asset/v1beta1", "asset_proto"),
"google/cloud/audit/audit_log.proto": label.New("go_googleapis", "google/cloud/audit", "audit_proto"),
"google/cloud/automl/v1beta1/annotation_payload.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/classification.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/data_items.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/dataset.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/image.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/io.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/model.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/model_evaluation.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/operations.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/prediction_service.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/service.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/text.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/automl/v1beta1/translation.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"),
"google/cloud/bigquery/datatransfer/v1/datatransfer.proto": label.New("go_googleapis", "google/cloud/bigquery/datatransfer/v1", "datatransfer_proto"),
"google/cloud/bigquery/datatransfer/v1/transfer.proto": label.New("go_googleapis", "google/cloud/bigquery/datatransfer/v1", "datatransfer_proto"),
"google/cloud/bigquery/logging/v1/audit_data.proto": label.New("go_googleapis", "google/cloud/bigquery/logging/v1", "logging_proto"),
"google/cloud/bigquery/storage/v1beta1/avro.proto": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_proto"),
"google/cloud/bigquery/storage/v1beta1/read_options.proto": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_proto"),
"google/cloud/bigquery/storage/v1beta1/storage.proto": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_proto"),
"google/cloud/bigquery/storage/v1beta1/table_reference.proto": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_proto"),
"google/cloud/billing/v1/cloud_billing.proto": label.New("go_googleapis", "google/cloud/billing/v1", "billing_proto"),
"google/cloud/dataproc/v1/clusters.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_proto"),
"google/cloud/dataproc/v1/jobs.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_proto"),
"google/cloud/dataproc/v1/operations.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_proto"),
"google/cloud/dataproc/v1/workflow_templates.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_proto"),
"google/cloud/dataproc/v1beta2/clusters.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_proto"),
"google/cloud/dataproc/v1beta2/jobs.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_proto"),
"google/cloud/dataproc/v1beta2/operations.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_proto"),
"google/cloud/dataproc/v1beta2/shared.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_proto"),
"google/cloud/dataproc/v1beta2/workflow_templates.proto": label.New("go_googleapis", "google/cloud/dataproc/v1beta2", "dataproc_proto"),
"google/cloud/dialogflow/v2/agent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/context.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/intent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/session.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/session_entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2/webhook.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/agent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/audio_config.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/context.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/document.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/intent.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/knowledge_base.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/session.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/session_entity_type.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/dialogflow/v2beta1/webhook.proto": label.New("go_googleapis", "google/cloud/dialogflow/v2beta1", "dialogflow_proto"),
"google/cloud/functions/v1beta2/functions.proto": label.New("go_googleapis", "google/cloud/functions/v1beta2", "functions_proto"),
"google/cloud/functions/v1beta2/operations.proto": label.New("go_googleapis", "google/cloud/functions/v1beta2", "functions_proto"),
"google/cloud/iot/v1/device_manager.proto": label.New("go_googleapis", "google/cloud/iot/v1", "iot_proto"),
"google/cloud/iot/v1/resources.proto": label.New("go_googleapis", "google/cloud/iot/v1", "iot_proto"),
"google/cloud/kms/v1/resources.proto": label.New("go_googleapis", "google/cloud/kms/v1", "kms_proto"),
"google/cloud/kms/v1/service.proto": label.New("go_googleapis", "google/cloud/kms/v1", "kms_proto"),
"google/cloud/language/v1/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1", "language_proto"),
"google/cloud/language/v1beta1/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1beta1", "language_proto"),
"google/cloud/language/v1beta2/language_service.proto": label.New("go_googleapis", "google/cloud/language/v1beta2", "language_proto"),
"google/cloud/location/locations.proto": label.New("go_googleapis", "google/cloud/location", "location_proto"),
"google/cloud/ml/v1/job_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_proto"),
"google/cloud/ml/v1/model_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_proto"),
"google/cloud/ml/v1/operation_metadata.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_proto"),
"google/cloud/ml/v1/prediction_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_proto"),
"google/cloud/ml/v1/project_service.proto": label.New("go_googleapis", "google/cloud/ml/v1", "ml_proto"),
"google/cloud/oslogin/common/common.proto": label.New("go_googleapis", "google/cloud/oslogin/common", "common_proto"),
"google/cloud/oslogin/v1/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1", "oslogin_proto"),
"google/cloud/oslogin/v1alpha/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1alpha", "oslogin_proto"),
"google/cloud/oslogin/v1beta/oslogin.proto": label.New("go_googleapis", "google/cloud/oslogin/v1beta", "oslogin_proto"),
"google/cloud/redis/v1/cloud_redis.proto": label.New("go_googleapis", "google/cloud/redis/v1", "redis_proto"),
"google/cloud/redis/v1beta1/cloud_redis.proto": label.New("go_googleapis", "google/cloud/redis/v1beta1", "redis_proto"),
"google/cloud/resourcemanager/v2/folders.proto": label.New("go_googleapis", "google/cloud/resourcemanager/v2", "resourcemanager_proto"),
"google/cloud/runtimeconfig/v1beta1/resources.proto": label.New("go_googleapis", "google/cloud/runtimeconfig/v1beta1", "runtimeconfig_proto"),
"google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto": label.New("go_googleapis", "google/cloud/runtimeconfig/v1beta1", "runtimeconfig_proto"),
"google/cloud/scheduler/v1beta1/cloudscheduler.proto": label.New("go_googleapis", "google/cloud/scheduler/v1beta1", "scheduler_proto"),
"google/cloud/scheduler/v1beta1/job.proto": label.New("go_googleapis", "google/cloud/scheduler/v1beta1", "scheduler_proto"),
"google/cloud/scheduler/v1beta1/target.proto": label.New("go_googleapis", "google/cloud/scheduler/v1beta1", "scheduler_proto"),
"google/cloud/securitycenter/v1beta1/asset.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_proto"),
"google/cloud/securitycenter/v1beta1/finding.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_proto"),
"google/cloud/securitycenter/v1beta1/organization_settings.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_proto"),
"google/cloud/securitycenter/v1beta1/security_marks.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_proto"),
"google/cloud/securitycenter/v1beta1/securitycenter_service.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_proto"),
"google/cloud/securitycenter/v1beta1/source.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1beta1", "securitycenter_proto"),
"google/cloud/speech/v1/cloud_speech.proto": label.New("go_googleapis", "google/cloud/speech/v1", "speech_proto"),
"google/cloud/speech/v1p1beta1/cloud_speech.proto": label.New("go_googleapis", "google/cloud/speech/v1p1beta1", "speech_proto"),
"google/cloud/support/common.proto": label.New("go_googleapis", "google/cloud/support", "common_proto"),
"google/cloud/support/v1alpha1/cloud_support.proto": label.New("go_googleapis", "google/cloud/support/v1alpha1", "support_proto"),
"google/cloud/tasks/v2beta2/cloudtasks.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_proto"),
"google/cloud/tasks/v2beta2/queue.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_proto"),
"google/cloud/tasks/v2beta2/target.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_proto"),
"google/cloud/tasks/v2beta2/task.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta2", "tasks_proto"),
"google/cloud/tasks/v2beta3/cloudtasks.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta3", "tasks_proto"),
"google/cloud/tasks/v2beta3/queue.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta3", "tasks_proto"),
"google/cloud/tasks/v2beta3/target.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta3", "tasks_proto"),
"google/cloud/tasks/v2beta3/task.proto": label.New("go_googleapis", "google/cloud/tasks/v2beta3", "tasks_proto"),
"google/cloud/texttospeech/v1/cloud_tts.proto": label.New("go_googleapis", "google/cloud/texttospeech/v1", "texttospeech_proto"),
"google/cloud/texttospeech/v1beta1/cloud_tts.proto": label.New("go_googleapis", "google/cloud/texttospeech/v1beta1", "texttospeech_proto"),
"google/cloud/videointelligence/v1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1", "videointelligence_proto"),
"google/cloud/videointelligence/v1beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1beta1", "videointelligence_proto"),
"google/cloud/videointelligence/v1beta2/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1beta2", "videointelligence_proto"),
"google/cloud/videointelligence/v1p1beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1p1beta1", "videointelligence_proto"),
"google/cloud/videointelligence/v1p2beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1p2beta1", "videointelligence_proto"),
"google/cloud/vision/v1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_proto"),
"google/cloud/vision/v1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_proto"),
"google/cloud/vision/v1/product_search.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_proto"),
"google/cloud/vision/v1/product_search_service.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_proto"),
"google/cloud/vision/v1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_proto"),
"google/cloud/vision/v1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1", "vision_proto"),
"google/cloud/vision/v1p1beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_proto"),
"google/cloud/vision/v1p1beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_proto"),
"google/cloud/vision/v1p1beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_proto"),
"google/cloud/vision/v1p1beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p1beta1", "vision_proto"),
"google/cloud/vision/v1p2beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_proto"),
"google/cloud/vision/v1p2beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_proto"),
"google/cloud/vision/v1p2beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_proto"),
"google/cloud/vision/v1p2beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p2beta1", "vision_proto"),
"google/cloud/vision/v1p3beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_proto"),
"google/cloud/vision/v1p3beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_proto"),
"google/cloud/vision/v1p3beta1/product_search.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_proto"),
"google/cloud/vision/v1p3beta1/product_search_service.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_proto"),
"google/cloud/vision/v1p3beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_proto"),
"google/cloud/vision/v1p3beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p3beta1", "vision_proto"),
"google/cloud/websecurityscanner/v1alpha/crawled_url.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/finding.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/finding_addon.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/scan_config.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/scan_run.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1alpha", "websecurityscanner_proto"),
"google/container/v1/cluster_service.proto": label.New("go_googleapis", "google/container/v1", "container_proto"),
"google/container/v1alpha1/cluster_service.proto": label.New("go_googleapis", "google/container/v1alpha1", "container_proto"),
"google/container/v1beta1/cluster_service.proto": label.New("go_googleapis", "google/container/v1beta1", "container_proto"),
"google/datastore/admin/v1/datastore_admin.proto": label.New("go_googleapis", "google/datastore/admin/v1", "admin_proto"),
"google/datastore/admin/v1/index.proto": label.New("go_googleapis", "google/datastore/admin/v1", "admin_proto"),
"google/datastore/admin/v1beta1/datastore_admin.proto": label.New("go_googleapis", "google/datastore/admin/v1beta1", "admin_proto"),
"google/datastore/v1/datastore.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_proto"),
"google/datastore/v1/entity.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_proto"),
"google/datastore/v1/query.proto": label.New("go_googleapis", "google/datastore/v1", "datastore_proto"),
"google/datastore/v1beta3/datastore.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_proto"),
"google/datastore/v1beta3/entity.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_proto"),
"google/datastore/v1beta3/query.proto": label.New("go_googleapis", "google/datastore/v1beta3", "datastore_proto"),
"google/devtools/build/v1/build_events.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_proto"),
"google/devtools/build/v1/build_status.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_proto"),
"google/devtools/build/v1/publish_build_event.proto": label.New("go_googleapis", "google/devtools/build/v1", "build_proto"),
"google/devtools/cloudbuild/v1/cloudbuild.proto": label.New("go_googleapis", "google/devtools/cloudbuild/v1", "cloudbuild_proto"),
"google/devtools/clouddebugger/v2/controller.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_proto"),
"google/devtools/clouddebugger/v2/data.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_proto"),
"google/devtools/clouddebugger/v2/debugger.proto": label.New("go_googleapis", "google/devtools/clouddebugger/v2", "clouddebugger_proto"),
"google/devtools/clouderrorreporting/v1beta1/common.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_proto"),
"google/devtools/clouderrorreporting/v1beta1/error_group_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_proto"),
"google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_proto"),
"google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto": label.New("go_googleapis", "google/devtools/clouderrorreporting/v1beta1", "clouderrorreporting_proto"),
"google/devtools/cloudprofiler/v2/profiler.proto": label.New("go_googleapis", "google/devtools/cloudprofiler/v2", "cloudprofiler_proto"),
"google/devtools/cloudtrace/v1/trace.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v1", "cloudtrace_proto"),
"google/devtools/cloudtrace/v2/trace.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v2", "cloudtrace_proto"),
"google/devtools/cloudtrace/v2/tracing.proto": label.New("go_googleapis", "google/devtools/cloudtrace/v2", "cloudtrace_proto"),
"google/devtools/containeranalysis/v1alpha1/bill_of_materials.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1alpha1/containeranalysis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1alpha1/image_basis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1alpha1/package_vulnerability.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1alpha1/provenance.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1alpha1/source_context.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1alpha1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1beta1/attestation/attestation.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/attestation", "attestation_proto"),
"google/devtools/containeranalysis/v1beta1/build/build.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/build", "build_proto"),
"google/devtools/containeranalysis/v1beta1/common/common.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/common", "common_proto"),
"google/devtools/containeranalysis/v1beta1/containeranalysis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1", "containeranalysis_proto"),
"google/devtools/containeranalysis/v1beta1/deployment/deployment.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/deployment", "deployment_proto"),
"google/devtools/containeranalysis/v1beta1/discovery/discovery.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/discovery", "discovery_proto"),
"google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/grafeas", "grafeas_proto"),
"google/devtools/containeranalysis/v1beta1/image/image.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/image", "image_proto"),
"google/devtools/containeranalysis/v1beta1/package/package.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/package", "package_proto"),
"google/devtools/containeranalysis/v1beta1/provenance/provenance.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/provenance", "provenance_proto"),
"google/devtools/containeranalysis/v1beta1/source/source.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/source", "source_proto"),
"google/devtools/containeranalysis/v1beta1/vulnerability/vulnerability.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1beta1/vulnerability", "vulnerability_proto"),
"google/devtools/remoteexecution/v1test/remote_execution.proto": label.New("go_googleapis", "google/devtools/remoteexecution/v1test", "remoteexecution_proto"),
"google/devtools/remoteworkers/v1test2/bots.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_proto"),
"google/devtools/remoteworkers/v1test2/command.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_proto"),
"google/devtools/remoteworkers/v1test2/tasks.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_proto"),
"google/devtools/remoteworkers/v1test2/worker.proto": label.New("go_googleapis", "google/devtools/remoteworkers/v1test2", "remoteworkers_proto"),
"google/devtools/resultstore/v2/action.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/common.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/configuration.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/configured_target.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/coverage.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/coverage_summary.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/file.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/file_set.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/invocation.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/resultstore_download.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/resultstore_file_download.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/resultstore_upload.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/target.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/resultstore/v2/test_suite.proto": label.New("go_googleapis", "google/devtools/resultstore/v2", "resultstore_proto"),
"google/devtools/source/v1/source_context.proto": label.New("go_googleapis", "google/devtools/source/v1", "source_proto"),
"google/devtools/sourcerepo/v1/sourcerepo.proto": label.New("go_googleapis", "google/devtools/sourcerepo/v1", "sourcerepo_proto"),
"google/example/library/v1/library.proto": label.New("go_googleapis", "google/example/library/v1", "library_proto"),
"google/firestore/admin/v1/field.proto": label.New("go_googleapis", "google/firestore/admin/v1", "admin_proto"),
"google/firestore/admin/v1/firestore_admin.proto": label.New("go_googleapis", "google/firestore/admin/v1", "admin_proto"),
"google/firestore/admin/v1/index.proto": label.New("go_googleapis", "google/firestore/admin/v1", "admin_proto"),
"google/firestore/admin/v1/location.proto": label.New("go_googleapis", "google/firestore/admin/v1", "admin_proto"),
"google/firestore/admin/v1/operation.proto": label.New("go_googleapis", "google/firestore/admin/v1", "admin_proto"),
"google/firestore/admin/v1beta1/firestore_admin.proto": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_proto"),
"google/firestore/admin/v1beta1/index.proto": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_proto"),
"google/firestore/admin/v1beta1/location.proto": label.New("go_googleapis", "google/firestore/admin/v1beta1", "admin_proto"),
"google/firestore/admin/v1beta2/field.proto": label.New("go_googleapis", "google/firestore/admin/v1beta2", "admin_proto"),
"google/firestore/admin/v1beta2/firestore_admin.proto": label.New("go_googleapis", "google/firestore/admin/v1beta2", "admin_proto"),
"google/firestore/admin/v1beta2/index.proto": label.New("go_googleapis", "google/firestore/admin/v1beta2", "admin_proto"),
"google/firestore/admin/v1beta2/operation.proto": label.New("go_googleapis", "google/firestore/admin/v1beta2", "admin_proto"),
"google/firestore/v1/common.proto": label.New("go_googleapis", "google/firestore/v1", "firestore_proto"),
"google/firestore/v1/document.proto": label.New("go_googleapis", "google/firestore/v1", "firestore_proto"),
"google/firestore/v1/firestore.proto": label.New("go_googleapis", "google/firestore/v1", "firestore_proto"),
"google/firestore/v1/query.proto": label.New("go_googleapis", "google/firestore/v1", "firestore_proto"),
"google/firestore/v1/write.proto": label.New("go_googleapis", "google/firestore/v1", "firestore_proto"),
"google/firestore/v1beta1/common.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_proto"),
"google/firestore/v1beta1/document.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_proto"),
"google/firestore/v1beta1/firestore.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_proto"),
"google/firestore/v1beta1/query.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_proto"),
"google/firestore/v1beta1/write.proto": label.New("go_googleapis", "google/firestore/v1beta1", "firestore_proto"),
"google/genomics/v1/annotations.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/cigar.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/datasets.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/operations.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/position.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/range.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/readalignment.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/readgroup.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/readgroupset.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/reads.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/references.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1/variants.proto": label.New("go_googleapis", "google/genomics/v1", "genomics_proto"),
"google/genomics/v1alpha2/pipelines.proto": label.New("go_googleapis", "google/genomics/v1alpha2", "genomics_proto"),
"google/home/graph/v1/device.proto": label.New("go_googleapis", "google/home/graph/v1", "graph_proto"),
"google/home/graph/v1/homegraph.proto": label.New("go_googleapis", "google/home/graph/v1", "graph_proto"),
"google/iam/admin/v1/iam.proto": label.New("go_googleapis", "google/iam/admin/v1", "admin_proto"),
"google/iam/credentials/v1/common.proto": label.New("go_googleapis", "google/iam/credentials/v1", "credentials_proto"),
"google/iam/credentials/v1/iamcredentials.proto": label.New("go_googleapis", "google/iam/credentials/v1", "credentials_proto"),
"google/iam/v1/iam_policy.proto": label.New("go_googleapis", "google/iam/v1", "iam_proto"),
"google/iam/v1/logging/audit_data.proto": label.New("go_googleapis", "google/iam/v1/logging", "logging_proto"),
"google/iam/v1/policy.proto": label.New("go_googleapis", "google/iam/v1", "iam_proto"),
"google/logging/type/http_request.proto": label.New("go_googleapis", "google/logging/type", "ltype_proto"),
"google/logging/type/log_severity.proto": label.New("go_googleapis", "google/logging/type", "ltype_proto"),
"google/logging/v2/log_entry.proto": label.New("go_googleapis", "google/logging/v2", "logging_proto"),
"google/logging/v2/logging.proto": label.New("go_googleapis", "google/logging/v2", "logging_proto"),
"google/logging/v2/logging_config.proto": label.New("go_googleapis", "google/logging/v2", "logging_proto"),
"google/logging/v2/logging_metrics.proto": label.New("go_googleapis", "google/logging/v2", "logging_proto"),
"google/longrunning/operations.proto": label.New("go_googleapis", "google/longrunning", "longrunning_proto"),
"google/monitoring/v3/alert.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/alert_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/common.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/dropped_labels.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/group.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/group_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/metric.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/metric_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/mutation_record.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/notification.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/notification_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/span_context.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/uptime.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/monitoring/v3/uptime_service.proto": label.New("go_googleapis", "google/monitoring/v3", "monitoring_proto"),
"google/privacy/dlp/v2/dlp.proto": label.New("go_googleapis", "google/privacy/dlp/v2", "dlp_proto"),
"google/privacy/dlp/v2/storage.proto": label.New("go_googleapis", "google/privacy/dlp/v2", "dlp_proto"),
"google/pubsub/v1/pubsub.proto": label.New("go_googleapis", "google/pubsub/v1", "pubsub_proto"),
"google/pubsub/v1beta2/pubsub.proto": label.New("go_googleapis", "google/pubsub/v1beta2", "pubsub_proto"),
"google/rpc/code.proto": label.New("go_googleapis", "google/rpc", "code_proto"),
"google/rpc/error_details.proto": label.New("go_googleapis", "google/rpc", "errdetails_proto"),
"google/rpc/status.proto": label.New("go_googleapis", "google/rpc", "status_proto"),
"google/spanner/admin/database/v1/spanner_database_admin.proto": label.New("go_googleapis", "google/spanner/admin/database/v1", "database_proto"),
"google/spanner/admin/instance/v1/spanner_instance_admin.proto": label.New("go_googleapis", "google/spanner/admin/instance/v1", "instance_proto"),
"google/spanner/v1/keys.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/mutation.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/query_plan.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/result_set.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/spanner.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/transaction.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/spanner/v1/type.proto": label.New("go_googleapis", "google/spanner/v1", "spanner_proto"),
"google/storagetransfer/v1/transfer.proto": label.New("go_googleapis", "google/storagetransfer/v1", "storagetransfer_proto"),
"google/storagetransfer/v1/transfer_types.proto": label.New("go_googleapis", "google/storagetransfer/v1", "storagetransfer_proto"),
"google/streetview/publish/v1/resources.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_proto"),
"google/streetview/publish/v1/rpcmessages.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_proto"),
"google/streetview/publish/v1/streetview_publish.proto": label.New("go_googleapis", "google/streetview/publish/v1", "publish_proto"),
"google/type/color.proto": label.New("go_googleapis", "google/type", "color_proto"),
"google/type/date.proto": label.New("go_googleapis", "google/type", "date_proto"),
"google/type/dayofweek.proto": label.New("go_googleapis", "google/type", "dayofweek_proto"),
"google/type/latlng.proto": label.New("go_googleapis", "google/type", "latlng_proto"),
"google/type/money.proto": label.New("go_googleapis", "google/type", "money_proto"),
"google/type/postal_address.proto": label.New("go_googleapis", "google/type", "postaladdress_proto"),
"google/type/timeofday.proto": label.New("go_googleapis", "google/type", "timeofday_proto"),
"google/watcher/v1/watch.proto": label.New("go_googleapis", "google/watcher/v1", "watcher_proto"),
}

View File

@ -59,7 +59,7 @@ limitations under the License.
// @com_google_protobuf.
package proto
import "github.com/bazelbuild/bazel-gazelle/internal/language"
import "github.com/bazelbuild/bazel-gazelle/language"
const protoName = "proto"
@ -67,6 +67,6 @@ type protoLang struct{}
func (_ *protoLang) Name() string { return protoName }
func New() language.Language {
func NewLanguage() language.Language {
return &protoLang{}
}

View File

@ -0,0 +1,724 @@
# This file lists special protos that Gazelle knows how to import. This is used to generate
# code for proto and Go resolvers.
#
# Generated by internal/language/proto/gen/update_proto_csv.go
# Do not edit directly.
#
# proto name,proto label,go import path,go proto label
google/protobuf/any.proto,@com_google_protobuf//:any_proto,github.com/golang/protobuf/ptypes/any,@io_bazel_rules_go//proto/wkt:any_go_proto
google/protobuf/api.proto,@com_google_protobuf//:api_proto,google.golang.org/genproto/protobuf/api,@io_bazel_rules_go//proto/wkt:api_go_proto
google/protobuf/compiler/plugin.proto,@com_google_protobuf//:compiler_plugin_proto,github.com/golang/protobuf/protoc-gen-go/plugin,@io_bazel_rules_go//proto/wkt:compiler_plugin_go_proto
google/protobuf/descriptor.proto,@com_google_protobuf//:descriptor_proto,github.com/golang/protobuf/protoc-gen-go/descriptor,@io_bazel_rules_go//proto/wkt:descriptor_go_proto
google/protobuf/duration.proto,@com_google_protobuf//:duration_proto,github.com/golang/protobuf/ptypes/duration,@io_bazel_rules_go//proto/wkt:duration_go_proto
google/protobuf/empty.proto,@com_google_protobuf//:empty_proto,github.com/golang/protobuf/ptypes/empty,@io_bazel_rules_go//proto/wkt:empty_go_proto
google/protobuf/field_mask.proto,@com_google_protobuf//:field_mask_proto,google.golang.org/genproto/protobuf/field_mask,@io_bazel_rules_go//proto/wkt:field_mask_go_proto
google/protobuf/source_context.proto,@com_google_protobuf//:source_context_proto,google.golang.org/genproto/protobuf/source_context,@io_bazel_rules_go//proto/wkt:source_context_go_proto
google/protobuf/struct.proto,@com_google_protobuf//:struct_proto,github.com/golang/protobuf/ptypes/struct,@io_bazel_rules_go//proto/wkt:struct_go_proto
google/protobuf/timestamp.proto,@com_google_protobuf//:timestamp_proto,github.com/golang/protobuf/ptypes/timestamp,@io_bazel_rules_go//proto/wkt:timestamp_go_proto
google/protobuf/type.proto,@com_google_protobuf//:type_proto,google.golang.org/genproto/protobuf/ptype,@io_bazel_rules_go//proto/wkt:type_go_proto
google/protobuf/wrappers.proto,@com_google_protobuf//:wrappers_proto,github.com/golang/protobuf/ptypes/wrappers,@io_bazel_rules_go//proto/wkt:wrappers_go_proto
google/ads/googleads/v0/common/ad_type_infos.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/bidding.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/criteria.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/criterion_category_availability.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/custom_parameter.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/dates.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/explorer_auto_optimizer_setting.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/feed_common.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/frequency_cap.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/keyword_plan_common.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/matching_function.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/metrics.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/policy.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/real_time_bidding_setting.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/tag_snippet.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/user_lists.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/common/value.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
google/ads/googleads/v0/enums/access_reason.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/account_budget_proposal_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/account_budget_proposal_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/account_budget_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/ad_customizer_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/ad_group_ad_rotation_mode.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/ad_group_ad_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/ad_group_criterion_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/ad_group_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/ad_group_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/ad_network_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/ad_serving_optimization_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/ad_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/advertising_channel_sub_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/advertising_channel_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/affiliate_location_feed_relationship_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/age_range_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/app_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/attribution_model.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/bid_modifier_source.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/bidding_source.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/bidding_strategy_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/billing_setup_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/budget_delivery_method.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/budget_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/call_conversion_reporting_state.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/call_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/callout_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/campaign_group_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/campaign_serving_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/campaign_shared_set_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/campaign_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/change_status_operation.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/change_status_resource_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/content_label_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/conversion_action_category.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/conversion_action_counting_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/conversion_action_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/conversion_action_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/criterion_category_channel_availability_mode.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/criterion_category_locale_availability_mode.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/criterion_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/custom_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/customer_match_upload_key_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/data_driven_model_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/day_of_week.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/device.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/display_ad_format_setting.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/education_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/feed_attribute_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/feed_item_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/feed_link_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/feed_mapping_criterion_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/feed_mapping_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/feed_origin.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/feed_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/flight_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/frequency_cap_event_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/frequency_cap_level.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/frequency_cap_time_unit.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/gender_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/geo_target_constant_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/geo_targeting_restriction.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/google_ads_field_category.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/google_ads_field_data_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/hotel_date_selection_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/hotel_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/income_range_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/interaction_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/job_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/keyword_match_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/keyword_plan_competition_level.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/keyword_plan_forecast_interval.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/keyword_plan_network.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/listing_custom_attribute_index.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/listing_group_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/local_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/manager_link_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/media_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/message_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/mime_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/minute_of_hour.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/month_of_year.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/page_one_promoted_strategy_goal.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/parental_status_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/placeholder_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/policy_approval_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/policy_review_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/policy_topic_entry_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/policy_topic_evidence_destination_mismatch_url_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/preferred_content_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/price_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/product_channel.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/product_channel_exclusivity.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/product_condition.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/product_type_level.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/promotion_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/proximity_radius_units.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/quality_score_bucket.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/real_estate_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/recommendation_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/search_term_match_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/search_term_targeting_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/shared_set_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/shared_set_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/sitelink_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/slot.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/spending_limit_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/structured_snippet_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/target_cpa_opt_in_recommendation_goal.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/targeting_dimension.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/time_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/tracking_code_page_format.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/tracking_code_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/travel_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/user_interest_taxonomy_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/user_list_access_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/user_list_closing_reason.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/user_list_crm_data_source_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/user_list_membership_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/user_list_size_range.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/enums/user_list_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
google/ads/googleads/v0/errors/account_budget_proposal_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/ad_customizer_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/ad_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/ad_group_ad_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/ad_group_bid_modifier_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/ad_group_criterion_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/ad_group_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/ad_group_feed_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/ad_sharing_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/adx_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/authentication_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/authorization_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/bidding_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/bidding_strategy_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/billing_setup_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/campaign_budget_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/campaign_criterion_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/campaign_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/campaign_feed_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/campaign_group_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/campaign_shared_set_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/change_status_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/collection_size_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/context_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/conversion_action_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/criterion_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/customer_client_link_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/customer_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/customer_feed_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/customer_manager_link_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/database_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/date_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/date_range_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/distinct_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/enum_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/errors.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/feed_attribute_reference_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/feed_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/feed_item_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/feed_mapping_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/field_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/field_mask_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/function_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/function_parsing_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/geo_target_constant_suggestion_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/header_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/id_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/image_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/internal_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/keyword_plan_ad_group_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/keyword_plan_campaign_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/keyword_plan_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/keyword_plan_idea_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/keyword_plan_keyword_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/keyword_plan_negative_keyword_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/list_operation_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/media_bundle_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/media_file_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/multiplier_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/mutate_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/new_resource_creation_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/not_empty_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/null_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/operation_access_denied_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/operator_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/policy_finding_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/query_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/quota_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/range_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/recommendation_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/region_code_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/request_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/resource_access_denied_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/resource_count_limit_exceeded_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/setting_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/shared_criterion_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/shared_set_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/string_format_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/string_length_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/url_field_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/errors/user_list_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
google/ads/googleads/v0/resources/account_budget.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/account_budget_proposal.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/ad.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/ad_group.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/ad_group_ad.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/ad_group_audience_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/ad_group_bid_modifier.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/ad_group_criterion.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/ad_group_feed.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/age_range_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/bidding_strategy.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/billing_setup.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/campaign.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/campaign_audience_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/campaign_bid_modifier.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/campaign_budget.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/campaign_criterion.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/campaign_feed.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/campaign_group.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/campaign_shared_set.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/carrier_constant.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/change_status.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/conversion_action.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/customer.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/customer_client.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/customer_client_link.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/customer_feed.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/customer_manager_link.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/display_keyword_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/feed.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/feed_item.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/feed_mapping.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/gender_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/geo_target_constant.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/google_ads_field.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/hotel_group_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/hotel_performance_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/keyword_plan.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/keyword_plan_ad_group.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/keyword_plan_campaign.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/keyword_plan_keyword.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/keyword_plan_negative_keyword.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/keyword_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/language_constant.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/managed_placement_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/media_file.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/parental_status_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/payments_account.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/product_group_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/recommendation.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/search_term_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/shared_criterion.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/shared_set.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/topic_constant.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/topic_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/user_interest.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/user_list.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/resources/video.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
google/ads/googleads/v0/services/account_budget_proposal_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/account_budget_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/ad_group_ad_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/ad_group_audience_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/ad_group_bid_modifier_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/ad_group_criterion_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/ad_group_feed_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/ad_group_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/age_range_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/bidding_strategy_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/billing_setup_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/campaign_audience_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/campaign_bid_modifier_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/campaign_budget_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/campaign_criterion_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/campaign_feed_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/campaign_group_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/campaign_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/campaign_shared_set_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/carrier_constant_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/change_status_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/conversion_action_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/customer_client_link_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/customer_client_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/customer_feed_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/customer_manager_link_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/customer_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/display_keyword_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/feed_item_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/feed_mapping_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/feed_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/gender_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/geo_target_constant_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/google_ads_field_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/google_ads_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/hotel_group_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/hotel_performance_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/keyword_plan_ad_group_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/keyword_plan_campaign_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/keyword_plan_idea_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/keyword_plan_keyword_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/keyword_plan_negative_keyword_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/keyword_plan_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/keyword_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/language_constant_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/managed_placement_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/media_file_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/parental_status_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/payments_account_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/product_group_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/recommendation_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/search_term_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/shared_criterion_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/shared_set_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/topic_constant_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/topic_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/user_interest_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/user_list_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/ads/googleads/v0/services/video_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
google/api/annotations.proto,@go_googleapis//google/api:annotations_proto,google.golang.org/genproto/googleapis/api/annotations,@go_googleapis//google/api:annotations_go_proto
google/api/auth.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/backend.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/billing.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/config_change.proto,@go_googleapis//google/api:configchange_proto,google.golang.org/genproto/googleapis/api/configchange,@go_googleapis//google/api:configchange_go_proto
google/api/consumer.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/context.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/control.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/distribution.proto,@go_googleapis//google/api:distribution_proto,google.golang.org/genproto/googleapis/api/distribution,@go_googleapis//google/api:distribution_go_proto
google/api/documentation.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/endpoint.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/experimental/authorization_config.proto,@go_googleapis//google/api:api_proto,google.golang.org/genproto/googleapis/api,@go_googleapis//google/api:api_go_proto
google/api/experimental/experimental.proto,@go_googleapis//google/api:api_proto,google.golang.org/genproto/googleapis/api,@go_googleapis//google/api:api_go_proto
google/api/expr/v1alpha1/cel_service.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
google/api/expr/v1alpha1/checked.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
google/api/expr/v1alpha1/conformance_service.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
google/api/expr/v1alpha1/eval.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
google/api/expr/v1alpha1/explain.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
google/api/expr/v1alpha1/syntax.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
google/api/expr/v1alpha1/value.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
google/api/expr/v1beta1/decl.proto,@go_googleapis//google/api/expr/v1beta1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1beta1,@go_googleapis//google/api/expr/v1beta1:expr_go_proto
google/api/expr/v1beta1/eval.proto,@go_googleapis//google/api/expr/v1beta1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1beta1,@go_googleapis//google/api/expr/v1beta1:expr_go_proto
google/api/expr/v1beta1/expr.proto,@go_googleapis//google/api/expr/v1beta1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1beta1,@go_googleapis//google/api/expr/v1beta1:expr_go_proto
google/api/expr/v1beta1/source.proto,@go_googleapis//google/api/expr/v1beta1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1beta1,@go_googleapis//google/api/expr/v1beta1:expr_go_proto
google/api/expr/v1beta1/value.proto,@go_googleapis//google/api/expr/v1beta1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1beta1,@go_googleapis//google/api/expr/v1beta1:expr_go_proto
google/api/http.proto,@go_googleapis//google/api:annotations_proto,google.golang.org/genproto/googleapis/api/annotations,@go_googleapis//google/api:annotations_go_proto
google/api/httpbody.proto,@go_googleapis//google/api:httpbody_proto,google.golang.org/genproto/googleapis/api/httpbody,@go_googleapis//google/api:httpbody_go_proto
google/api/label.proto,@go_googleapis//google/api:label_proto,google.golang.org/genproto/googleapis/api/label,@go_googleapis//google/api:label_go_proto
google/api/launch_stage.proto,@go_googleapis//google/api:api_proto,google.golang.org/genproto/googleapis/api,@go_googleapis//google/api:api_go_proto
google/api/log.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/logging.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/metric.proto,@go_googleapis//google/api:metric_proto,google.golang.org/genproto/googleapis/api/metric,@go_googleapis//google/api:metric_go_proto
google/api/monitored_resource.proto,@go_googleapis//google/api:monitoredres_proto,google.golang.org/genproto/googleapis/api/monitoredres,@go_googleapis//google/api:monitoredres_go_proto
google/api/monitoring.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/quota.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/service.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/servicecontrol/v1/check_error.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/distribution.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/log_entry.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/metric_value.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/operation.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/quota_controller.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicecontrol/v1/service_controller.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
google/api/servicemanagement/v1/resources.proto,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_proto,google.golang.org/genproto/googleapis/api/servicemanagement/v1,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_go_proto
google/api/servicemanagement/v1/servicemanager.proto,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_proto,google.golang.org/genproto/googleapis/api/servicemanagement/v1,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_go_proto
google/api/source_info.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/system_parameter.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/api/usage.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
google/appengine/legacy/audit_data.proto,@go_googleapis//google/appengine/legacy:legacy_proto,google.golang.org/genproto/googleapis/appengine/legacy,@go_googleapis//google/appengine/legacy:legacy_go_proto
google/appengine/logging/v1/request_log.proto,@go_googleapis//google/appengine/logging/v1:logging_proto,google.golang.org/genproto/googleapis/appengine/logging/v1,@go_googleapis//google/appengine/logging/v1:logging_go_proto
google/appengine/v1/app_yaml.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/appengine.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/application.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/audit_data.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/deploy.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/instance.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/location.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/operation.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/service.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/appengine/v1/version.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
google/assistant/embedded/v1alpha1/embedded_assistant.proto,@go_googleapis//google/assistant/embedded/v1alpha1:embedded_proto,google.golang.org/genproto/googleapis/assistant/embedded/v1alpha1,@go_googleapis//google/assistant/embedded/v1alpha1:embedded_go_proto
google/assistant/embedded/v1alpha2/embedded_assistant.proto,@go_googleapis//google/assistant/embedded/v1alpha2:embedded_proto,google.golang.org/genproto/googleapis/assistant/embedded/v1alpha2,@go_googleapis//google/assistant/embedded/v1alpha2:embedded_go_proto
google/bigtable/admin/cluster/v1/bigtable_cluster_data.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
google/bigtable/admin/cluster/v1/bigtable_cluster_service.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
google/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
google/bigtable/admin/table/v1/bigtable_table_data.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
google/bigtable/admin/table/v1/bigtable_table_service.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
google/bigtable/admin/table/v1/bigtable_table_service_messages.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
google/bigtable/admin/v2/bigtable_instance_admin.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
google/bigtable/admin/v2/bigtable_table_admin.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
google/bigtable/admin/v2/common.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
google/bigtable/admin/v2/instance.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
google/bigtable/admin/v2/table.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
google/bigtable/v1/bigtable_data.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
google/bigtable/v1/bigtable_service.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
google/bigtable/v1/bigtable_service_messages.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
google/bigtable/v2/bigtable.proto,@go_googleapis//google/bigtable/v2:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v2,@go_googleapis//google/bigtable/v2:bigtable_go_proto
google/bigtable/v2/data.proto,@go_googleapis//google/bigtable/v2:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v2,@go_googleapis//google/bigtable/v2:bigtable_go_proto
google/bytestream/bytestream.proto,@go_googleapis//google/bytestream:bytestream_proto,google.golang.org/genproto/googleapis/bytestream,@go_googleapis//google/bytestream:bytestream_go_proto
google/cloud/asset/v1beta1/asset_service.proto,@go_googleapis//google/cloud/asset/v1beta1:asset_proto,google.golang.org/genproto/googleapis/cloud/asset/v1beta1,@go_googleapis//google/cloud/asset/v1beta1:asset_go_proto
google/cloud/asset/v1beta1/assets.proto,@go_googleapis//google/cloud/asset/v1beta1:asset_proto,google.golang.org/genproto/googleapis/cloud/asset/v1beta1,@go_googleapis//google/cloud/asset/v1beta1:asset_go_proto
google/cloud/audit/audit_log.proto,@go_googleapis//google/cloud/audit:audit_proto,google.golang.org/genproto/googleapis/cloud/audit,@go_googleapis//google/cloud/audit:audit_go_proto
google/cloud/automl/v1beta1/annotation_payload.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/classification.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/data_items.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/dataset.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/image.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/io.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/model.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/model_evaluation.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/operations.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/prediction_service.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/service.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/text.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/automl/v1beta1/translation.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
google/cloud/bigquery/datatransfer/v1/datatransfer.proto,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_proto,google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_go_proto
google/cloud/bigquery/datatransfer/v1/transfer.proto,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_proto,google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_go_proto
google/cloud/bigquery/logging/v1/audit_data.proto,@go_googleapis//google/cloud/bigquery/logging/v1:logging_proto,google.golang.org/genproto/googleapis/cloud/bigquery/logging/v1,@go_googleapis//google/cloud/bigquery/logging/v1:logging_go_proto
google/cloud/bigquery/storage/v1beta1/avro.proto,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_proto,google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_go_proto
google/cloud/bigquery/storage/v1beta1/read_options.proto,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_proto,google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_go_proto
google/cloud/bigquery/storage/v1beta1/storage.proto,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_proto,google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_go_proto
google/cloud/bigquery/storage/v1beta1/table_reference.proto,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_proto,google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_go_proto
google/cloud/billing/v1/cloud_billing.proto,@go_googleapis//google/cloud/billing/v1:billing_proto,google.golang.org/genproto/googleapis/cloud/billing/v1,@go_googleapis//google/cloud/billing/v1:billing_go_proto
google/cloud/dataproc/v1/clusters.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
google/cloud/dataproc/v1/jobs.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
google/cloud/dataproc/v1/operations.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
google/cloud/dataproc/v1/workflow_templates.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
google/cloud/dataproc/v1beta2/clusters.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
google/cloud/dataproc/v1beta2/jobs.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
google/cloud/dataproc/v1beta2/operations.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
google/cloud/dataproc/v1beta2/shared.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
google/cloud/dataproc/v1beta2/workflow_templates.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
google/cloud/dialogflow/v2/agent.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/context.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/intent.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/session.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/session_entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2/webhook.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/agent.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/audio_config.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/context.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/document.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/intent.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/knowledge_base.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/session.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/session_entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/dialogflow/v2beta1/webhook.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
google/cloud/functions/v1beta2/functions.proto,@go_googleapis//google/cloud/functions/v1beta2:functions_proto,google.golang.org/genproto/googleapis/cloud/functions/v1beta2,@go_googleapis//google/cloud/functions/v1beta2:functions_go_proto
google/cloud/functions/v1beta2/operations.proto,@go_googleapis//google/cloud/functions/v1beta2:functions_proto,google.golang.org/genproto/googleapis/cloud/functions/v1beta2,@go_googleapis//google/cloud/functions/v1beta2:functions_go_proto
google/cloud/iot/v1/device_manager.proto,@go_googleapis//google/cloud/iot/v1:iot_proto,google.golang.org/genproto/googleapis/cloud/iot/v1,@go_googleapis//google/cloud/iot/v1:iot_go_proto
google/cloud/iot/v1/resources.proto,@go_googleapis//google/cloud/iot/v1:iot_proto,google.golang.org/genproto/googleapis/cloud/iot/v1,@go_googleapis//google/cloud/iot/v1:iot_go_proto
google/cloud/kms/v1/resources.proto,@go_googleapis//google/cloud/kms/v1:kms_proto,google.golang.org/genproto/googleapis/cloud/kms/v1,@go_googleapis//google/cloud/kms/v1:kms_go_proto
google/cloud/kms/v1/service.proto,@go_googleapis//google/cloud/kms/v1:kms_proto,google.golang.org/genproto/googleapis/cloud/kms/v1,@go_googleapis//google/cloud/kms/v1:kms_go_proto
google/cloud/language/v1/language_service.proto,@go_googleapis//google/cloud/language/v1:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1,@go_googleapis//google/cloud/language/v1:language_go_proto
google/cloud/language/v1beta1/language_service.proto,@go_googleapis//google/cloud/language/v1beta1:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1beta1,@go_googleapis//google/cloud/language/v1beta1:language_go_proto
google/cloud/language/v1beta2/language_service.proto,@go_googleapis//google/cloud/language/v1beta2:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1beta2,@go_googleapis//google/cloud/language/v1beta2:language_go_proto
google/cloud/location/locations.proto,@go_googleapis//google/cloud/location:location_proto,google.golang.org/genproto/googleapis/cloud/location,@go_googleapis//google/cloud/location:location_go_proto
google/cloud/ml/v1/job_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
google/cloud/ml/v1/model_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
google/cloud/ml/v1/operation_metadata.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
google/cloud/ml/v1/prediction_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
google/cloud/ml/v1/project_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
google/cloud/oslogin/common/common.proto,@go_googleapis//google/cloud/oslogin/common:common_proto,google.golang.org/genproto/googleapis/cloud/oslogin/common,@go_googleapis//google/cloud/oslogin/common:common_go_proto
google/cloud/oslogin/v1/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1,@go_googleapis//google/cloud/oslogin/v1:oslogin_go_proto
google/cloud/oslogin/v1alpha/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1alpha:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1alpha,@go_googleapis//google/cloud/oslogin/v1alpha:oslogin_go_proto
google/cloud/oslogin/v1beta/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1beta:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1beta,@go_googleapis//google/cloud/oslogin/v1beta:oslogin_go_proto
google/cloud/redis/v1/cloud_redis.proto,@go_googleapis//google/cloud/redis/v1:redis_proto,google.golang.org/genproto/googleapis/cloud/redis/v1,@go_googleapis//google/cloud/redis/v1:redis_go_proto
google/cloud/redis/v1beta1/cloud_redis.proto,@go_googleapis//google/cloud/redis/v1beta1:redis_proto,google.golang.org/genproto/googleapis/cloud/redis/v1beta1,@go_googleapis//google/cloud/redis/v1beta1:redis_go_proto
google/cloud/resourcemanager/v2/folders.proto,@go_googleapis//google/cloud/resourcemanager/v2:resourcemanager_proto,google.golang.org/genproto/googleapis/cloud/resourcemanager/v2,@go_googleapis//google/cloud/resourcemanager/v2:resourcemanager_go_proto
google/cloud/runtimeconfig/v1beta1/resources.proto,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_proto,google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_go_proto
google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_proto,google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_go_proto
google/cloud/scheduler/v1beta1/cloudscheduler.proto,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_proto,google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_go_proto
google/cloud/scheduler/v1beta1/job.proto,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_proto,google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_go_proto
google/cloud/scheduler/v1beta1/target.proto,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_proto,google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_go_proto
google/cloud/securitycenter/v1beta1/asset.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
google/cloud/securitycenter/v1beta1/finding.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
google/cloud/securitycenter/v1beta1/organization_settings.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
google/cloud/securitycenter/v1beta1/security_marks.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
google/cloud/securitycenter/v1beta1/securitycenter_service.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
google/cloud/securitycenter/v1beta1/source.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
google/cloud/speech/v1/cloud_speech.proto,@go_googleapis//google/cloud/speech/v1:speech_proto,google.golang.org/genproto/googleapis/cloud/speech/v1,@go_googleapis//google/cloud/speech/v1:speech_go_proto
google/cloud/speech/v1p1beta1/cloud_speech.proto,@go_googleapis//google/cloud/speech/v1p1beta1:speech_proto,google.golang.org/genproto/googleapis/cloud/speech/v1p1beta1,@go_googleapis//google/cloud/speech/v1p1beta1:speech_go_proto
google/cloud/support/common.proto,@go_googleapis//google/cloud/support:common_proto,google.golang.org/genproto/googleapis/cloud/support/common,@go_googleapis//google/cloud/support:common_go_proto
google/cloud/support/v1alpha1/cloud_support.proto,@go_googleapis//google/cloud/support/v1alpha1:support_proto,google.golang.org/genproto/googleapis/cloud/support/v1alpha1,@go_googleapis//google/cloud/support/v1alpha1:support_go_proto
google/cloud/tasks/v2beta2/cloudtasks.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
google/cloud/tasks/v2beta2/queue.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
google/cloud/tasks/v2beta2/target.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
google/cloud/tasks/v2beta2/task.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
google/cloud/tasks/v2beta3/cloudtasks.proto,@go_googleapis//google/cloud/tasks/v2beta3:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta3,@go_googleapis//google/cloud/tasks/v2beta3:tasks_go_proto
google/cloud/tasks/v2beta3/queue.proto,@go_googleapis//google/cloud/tasks/v2beta3:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta3,@go_googleapis//google/cloud/tasks/v2beta3:tasks_go_proto
google/cloud/tasks/v2beta3/target.proto,@go_googleapis//google/cloud/tasks/v2beta3:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta3,@go_googleapis//google/cloud/tasks/v2beta3:tasks_go_proto
google/cloud/tasks/v2beta3/task.proto,@go_googleapis//google/cloud/tasks/v2beta3:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta3,@go_googleapis//google/cloud/tasks/v2beta3:tasks_go_proto
google/cloud/texttospeech/v1/cloud_tts.proto,@go_googleapis//google/cloud/texttospeech/v1:texttospeech_proto,google.golang.org/genproto/googleapis/cloud/texttospeech/v1,@go_googleapis//google/cloud/texttospeech/v1:texttospeech_go_proto
google/cloud/texttospeech/v1beta1/cloud_tts.proto,@go_googleapis//google/cloud/texttospeech/v1beta1:texttospeech_proto,google.golang.org/genproto/googleapis/cloud/texttospeech/v1beta1,@go_googleapis//google/cloud/texttospeech/v1beta1:texttospeech_go_proto
google/cloud/videointelligence/v1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1,@go_googleapis//google/cloud/videointelligence/v1:videointelligence_go_proto
google/cloud/videointelligence/v1beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta1,@go_googleapis//google/cloud/videointelligence/v1beta1:videointelligence_go_proto
google/cloud/videointelligence/v1beta2/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1beta2:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta2,@go_googleapis//google/cloud/videointelligence/v1beta2:videointelligence_go_proto
google/cloud/videointelligence/v1p1beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1p1beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1p1beta1,@go_googleapis//google/cloud/videointelligence/v1p1beta1:videointelligence_go_proto
google/cloud/videointelligence/v1p2beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1p2beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1p2beta1,@go_googleapis//google/cloud/videointelligence/v1p2beta1:videointelligence_go_proto
google/cloud/vision/v1/geometry.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
google/cloud/vision/v1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
google/cloud/vision/v1/product_search.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
google/cloud/vision/v1/product_search_service.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
google/cloud/vision/v1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
google/cloud/vision/v1/web_detection.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
google/cloud/vision/v1p1beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
google/cloud/vision/v1p1beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
google/cloud/vision/v1p1beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
google/cloud/vision/v1p1beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
google/cloud/vision/v1p2beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
google/cloud/vision/v1p2beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
google/cloud/vision/v1p2beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
google/cloud/vision/v1p2beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
google/cloud/vision/v1p3beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
google/cloud/vision/v1p3beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
google/cloud/vision/v1p3beta1/product_search.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
google/cloud/vision/v1p3beta1/product_search_service.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
google/cloud/vision/v1p3beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
google/cloud/vision/v1p3beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
google/cloud/websecurityscanner/v1alpha/crawled_url.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/finding.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/finding_addon.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/scan_config.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/scan_run.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
google/container/v1/cluster_service.proto,@go_googleapis//google/container/v1:container_proto,google.golang.org/genproto/googleapis/container/v1,@go_googleapis//google/container/v1:container_go_proto
google/container/v1alpha1/cluster_service.proto,@go_googleapis//google/container/v1alpha1:container_proto,google.golang.org/genproto/googleapis/container/v1alpha1,@go_googleapis//google/container/v1alpha1:container_go_proto
google/container/v1beta1/cluster_service.proto,@go_googleapis//google/container/v1beta1:container_proto,google.golang.org/genproto/googleapis/container/v1beta1,@go_googleapis//google/container/v1beta1:container_go_proto
google/datastore/admin/v1/datastore_admin.proto,@go_googleapis//google/datastore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/datastore/admin/v1,@go_googleapis//google/datastore/admin/v1:admin_go_proto
google/datastore/admin/v1/index.proto,@go_googleapis//google/datastore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/datastore/admin/v1,@go_googleapis//google/datastore/admin/v1:admin_go_proto
google/datastore/admin/v1beta1/datastore_admin.proto,@go_googleapis//google/datastore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/datastore/admin/v1beta1,@go_googleapis//google/datastore/admin/v1beta1:admin_go_proto
google/datastore/v1/datastore.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
google/datastore/v1/entity.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
google/datastore/v1/query.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
google/datastore/v1beta3/datastore.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
google/datastore/v1beta3/entity.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
google/datastore/v1beta3/query.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
google/devtools/build/v1/build_events.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
google/devtools/build/v1/build_status.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
google/devtools/build/v1/publish_build_event.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
google/devtools/cloudbuild/v1/cloudbuild.proto,@go_googleapis//google/devtools/cloudbuild/v1:cloudbuild_proto,google.golang.org/genproto/googleapis/devtools/cloudbuild/v1,@go_googleapis//google/devtools/cloudbuild/v1:cloudbuild_go_proto
google/devtools/clouddebugger/v2/controller.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
google/devtools/clouddebugger/v2/data.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
google/devtools/clouddebugger/v2/debugger.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
google/devtools/clouderrorreporting/v1beta1/common.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
google/devtools/clouderrorreporting/v1beta1/error_group_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
google/devtools/cloudprofiler/v2/profiler.proto,@go_googleapis//google/devtools/cloudprofiler/v2:cloudprofiler_proto,google.golang.org/genproto/googleapis/devtools/cloudprofiler/v2,@go_googleapis//google/devtools/cloudprofiler/v2:cloudprofiler_go_proto
google/devtools/cloudtrace/v1/trace.proto,@go_googleapis//google/devtools/cloudtrace/v1:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v1,@go_googleapis//google/devtools/cloudtrace/v1:cloudtrace_go_proto
google/devtools/cloudtrace/v2/trace.proto,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v2,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_go_proto
google/devtools/cloudtrace/v2/tracing.proto,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v2,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_go_proto
google/devtools/containeranalysis/v1alpha1/bill_of_materials.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1alpha1/containeranalysis.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1alpha1/image_basis.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1alpha1/package_vulnerability.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1alpha1/provenance.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1alpha1/source_context.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
google/devtools/containeranalysis/v1beta1/attestation/attestation.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/attestation:attestation_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/attestation,@go_googleapis//google/devtools/containeranalysis/v1beta1/attestation:attestation_go_proto
google/devtools/containeranalysis/v1beta1/build/build.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/build:build_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/build,@go_googleapis//google/devtools/containeranalysis/v1beta1/build:build_go_proto
google/devtools/containeranalysis/v1beta1/common/common.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/common:common_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/common,@go_googleapis//google/devtools/containeranalysis/v1beta1/common:common_go_proto
google/devtools/containeranalysis/v1beta1/containeranalysis.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1,@go_googleapis//google/devtools/containeranalysis/v1beta1:containeranalysis_go_proto
google/devtools/containeranalysis/v1beta1/deployment/deployment.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/deployment:deployment_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/deployment,@go_googleapis//google/devtools/containeranalysis/v1beta1/deployment:deployment_go_proto
google/devtools/containeranalysis/v1beta1/discovery/discovery.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/discovery:discovery_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/discovery,@go_googleapis//google/devtools/containeranalysis/v1beta1/discovery:discovery_go_proto
google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/grafeas:grafeas_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/grafeas,@go_googleapis//google/devtools/containeranalysis/v1beta1/grafeas:grafeas_go_proto
google/devtools/containeranalysis/v1beta1/image/image.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/image:image_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/image,@go_googleapis//google/devtools/containeranalysis/v1beta1/image:image_go_proto
google/devtools/containeranalysis/v1beta1/package/package.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/package:package_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/package,@go_googleapis//google/devtools/containeranalysis/v1beta1/package:package_go_proto
google/devtools/containeranalysis/v1beta1/provenance/provenance.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/provenance:provenance_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/provenance,@go_googleapis//google/devtools/containeranalysis/v1beta1/provenance:provenance_go_proto
google/devtools/containeranalysis/v1beta1/source/source.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/source:source_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/source,@go_googleapis//google/devtools/containeranalysis/v1beta1/source:source_go_proto
google/devtools/containeranalysis/v1beta1/vulnerability/vulnerability.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/vulnerability:vulnerability_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/vulnerability,@go_googleapis//google/devtools/containeranalysis/v1beta1/vulnerability:vulnerability_go_proto
google/devtools/remoteexecution/v1test/remote_execution.proto,@go_googleapis//google/devtools/remoteexecution/v1test:remoteexecution_proto,google.golang.org/genproto/googleapis/devtools/remoteexecution/v1test,@go_googleapis//google/devtools/remoteexecution/v1test:remoteexecution_go_proto
google/devtools/remoteworkers/v1test2/bots.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
google/devtools/remoteworkers/v1test2/command.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
google/devtools/remoteworkers/v1test2/tasks.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
google/devtools/remoteworkers/v1test2/worker.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
google/devtools/resultstore/v2/action.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/common.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/configuration.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/configured_target.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/coverage.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/coverage_summary.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/file.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/file_set.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/invocation.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/resultstore_download.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/resultstore_file_download.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/resultstore_upload.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/target.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/resultstore/v2/test_suite.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
google/devtools/source/v1/source_context.proto,@go_googleapis//google/devtools/source/v1:source_proto,google.golang.org/genproto/googleapis/devtools/source/v1,@go_googleapis//google/devtools/source/v1:source_go_proto
google/devtools/sourcerepo/v1/sourcerepo.proto,@go_googleapis//google/devtools/sourcerepo/v1:sourcerepo_proto,google.golang.org/genproto/googleapis/devtools/sourcerepo/v1,@go_googleapis//google/devtools/sourcerepo/v1:sourcerepo_go_proto
google/example/library/v1/library.proto,@go_googleapis//google/example/library/v1:library_proto,google.golang.org/genproto/googleapis/example/library/v1,@go_googleapis//google/example/library/v1:library_go_proto
google/firestore/admin/v1/field.proto,@go_googleapis//google/firestore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1,@go_googleapis//google/firestore/admin/v1:admin_go_proto
google/firestore/admin/v1/firestore_admin.proto,@go_googleapis//google/firestore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1,@go_googleapis//google/firestore/admin/v1:admin_go_proto
google/firestore/admin/v1/index.proto,@go_googleapis//google/firestore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1,@go_googleapis//google/firestore/admin/v1:admin_go_proto
google/firestore/admin/v1/location.proto,@go_googleapis//google/firestore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1,@go_googleapis//google/firestore/admin/v1:admin_go_proto
google/firestore/admin/v1/operation.proto,@go_googleapis//google/firestore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1,@go_googleapis//google/firestore/admin/v1:admin_go_proto
google/firestore/admin/v1beta1/firestore_admin.proto,@go_googleapis//google/firestore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta1,@go_googleapis//google/firestore/admin/v1beta1:admin_go_proto
google/firestore/admin/v1beta1/index.proto,@go_googleapis//google/firestore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta1,@go_googleapis//google/firestore/admin/v1beta1:admin_go_proto
google/firestore/admin/v1beta1/location.proto,@go_googleapis//google/firestore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta1,@go_googleapis//google/firestore/admin/v1beta1:admin_go_proto
google/firestore/admin/v1beta2/field.proto,@go_googleapis//google/firestore/admin/v1beta2:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta2,@go_googleapis//google/firestore/admin/v1beta2:admin_go_proto
google/firestore/admin/v1beta2/firestore_admin.proto,@go_googleapis//google/firestore/admin/v1beta2:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta2,@go_googleapis//google/firestore/admin/v1beta2:admin_go_proto
google/firestore/admin/v1beta2/index.proto,@go_googleapis//google/firestore/admin/v1beta2:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta2,@go_googleapis//google/firestore/admin/v1beta2:admin_go_proto
google/firestore/admin/v1beta2/operation.proto,@go_googleapis//google/firestore/admin/v1beta2:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta2,@go_googleapis//google/firestore/admin/v1beta2:admin_go_proto
google/firestore/v1/common.proto,@go_googleapis//google/firestore/v1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1,@go_googleapis//google/firestore/v1:firestore_go_proto
google/firestore/v1/document.proto,@go_googleapis//google/firestore/v1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1,@go_googleapis//google/firestore/v1:firestore_go_proto
google/firestore/v1/firestore.proto,@go_googleapis//google/firestore/v1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1,@go_googleapis//google/firestore/v1:firestore_go_proto
google/firestore/v1/query.proto,@go_googleapis//google/firestore/v1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1,@go_googleapis//google/firestore/v1:firestore_go_proto
google/firestore/v1/write.proto,@go_googleapis//google/firestore/v1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1,@go_googleapis//google/firestore/v1:firestore_go_proto
google/firestore/v1beta1/common.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
google/firestore/v1beta1/document.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
google/firestore/v1beta1/firestore.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
google/firestore/v1beta1/query.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
google/firestore/v1beta1/write.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
google/genomics/v1/annotations.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/cigar.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/datasets.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/operations.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/position.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/range.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/readalignment.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/readgroup.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/readgroupset.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/reads.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/references.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1/variants.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
google/genomics/v1alpha2/pipelines.proto,@go_googleapis//google/genomics/v1alpha2:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1alpha2,@go_googleapis//google/genomics/v1alpha2:genomics_go_proto
google/home/graph/v1/device.proto,@go_googleapis//google/home/graph/v1:graph_proto,google.golang.org/genproto/googleapis/home/graph/v1,@go_googleapis//google/home/graph/v1:graph_go_proto
google/home/graph/v1/homegraph.proto,@go_googleapis//google/home/graph/v1:graph_proto,google.golang.org/genproto/googleapis/home/graph/v1,@go_googleapis//google/home/graph/v1:graph_go_proto
google/iam/admin/v1/iam.proto,@go_googleapis//google/iam/admin/v1:admin_proto,google.golang.org/genproto/googleapis/iam/admin/v1,@go_googleapis//google/iam/admin/v1:admin_go_proto
google/iam/credentials/v1/common.proto,@go_googleapis//google/iam/credentials/v1:credentials_proto,google.golang.org/genproto/googleapis/iam/credentials/v1,@go_googleapis//google/iam/credentials/v1:credentials_go_proto
google/iam/credentials/v1/iamcredentials.proto,@go_googleapis//google/iam/credentials/v1:credentials_proto,google.golang.org/genproto/googleapis/iam/credentials/v1,@go_googleapis//google/iam/credentials/v1:credentials_go_proto
google/iam/v1/iam_policy.proto,@go_googleapis//google/iam/v1:iam_proto,google.golang.org/genproto/googleapis/iam/v1,@go_googleapis//google/iam/v1:iam_go_proto
google/iam/v1/logging/audit_data.proto,@go_googleapis//google/iam/v1/logging:logging_proto,google.golang.org/genproto/googleapis/iam/v1/logging,@go_googleapis//google/iam/v1/logging:logging_go_proto
google/iam/v1/policy.proto,@go_googleapis//google/iam/v1:iam_proto,google.golang.org/genproto/googleapis/iam/v1,@go_googleapis//google/iam/v1:iam_go_proto
google/logging/type/http_request.proto,@go_googleapis//google/logging/type:ltype_proto,google.golang.org/genproto/googleapis/logging/type,@go_googleapis//google/logging/type:ltype_go_proto
google/logging/type/log_severity.proto,@go_googleapis//google/logging/type:ltype_proto,google.golang.org/genproto/googleapis/logging/type,@go_googleapis//google/logging/type:ltype_go_proto
google/logging/v2/log_entry.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
google/logging/v2/logging.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
google/logging/v2/logging_config.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
google/logging/v2/logging_metrics.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
google/longrunning/operations.proto,@go_googleapis//google/longrunning:longrunning_proto,google.golang.org/genproto/googleapis/longrunning,@go_googleapis//google/longrunning:longrunning_go_proto
google/monitoring/v3/alert.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/alert_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/common.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/dropped_labels.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/group.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/group_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/metric.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/metric_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/mutation_record.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/notification.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/notification_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/span_context.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/uptime.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/monitoring/v3/uptime_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
google/privacy/dlp/v2/dlp.proto,@go_googleapis//google/privacy/dlp/v2:dlp_proto,google.golang.org/genproto/googleapis/privacy/dlp/v2,@go_googleapis//google/privacy/dlp/v2:dlp_go_proto
google/privacy/dlp/v2/storage.proto,@go_googleapis//google/privacy/dlp/v2:dlp_proto,google.golang.org/genproto/googleapis/privacy/dlp/v2,@go_googleapis//google/privacy/dlp/v2:dlp_go_proto
google/pubsub/v1/pubsub.proto,@go_googleapis//google/pubsub/v1:pubsub_proto,google.golang.org/genproto/googleapis/pubsub/v1,@go_googleapis//google/pubsub/v1:pubsub_go_proto
google/pubsub/v1beta2/pubsub.proto,@go_googleapis//google/pubsub/v1beta2:pubsub_proto,google.golang.org/genproto/googleapis/pubsub/v1beta2,@go_googleapis//google/pubsub/v1beta2:pubsub_go_proto
google/rpc/code.proto,@go_googleapis//google/rpc:code_proto,google.golang.org/genproto/googleapis/rpc/code,@go_googleapis//google/rpc:code_go_proto
google/rpc/error_details.proto,@go_googleapis//google/rpc:errdetails_proto,google.golang.org/genproto/googleapis/rpc/errdetails,@go_googleapis//google/rpc:errdetails_go_proto
google/rpc/status.proto,@go_googleapis//google/rpc:status_proto,google.golang.org/genproto/googleapis/rpc/status,@go_googleapis//google/rpc:status_go_proto
google/spanner/admin/database/v1/spanner_database_admin.proto,@go_googleapis//google/spanner/admin/database/v1:database_proto,google.golang.org/genproto/googleapis/spanner/admin/database/v1,@go_googleapis//google/spanner/admin/database/v1:database_go_proto
google/spanner/admin/instance/v1/spanner_instance_admin.proto,@go_googleapis//google/spanner/admin/instance/v1:instance_proto,google.golang.org/genproto/googleapis/spanner/admin/instance/v1,@go_googleapis//google/spanner/admin/instance/v1:instance_go_proto
google/spanner/v1/keys.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/mutation.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/query_plan.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/result_set.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/spanner.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/transaction.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/spanner/v1/type.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
google/storagetransfer/v1/transfer.proto,@go_googleapis//google/storagetransfer/v1:storagetransfer_proto,google.golang.org/genproto/googleapis/storagetransfer/v1,@go_googleapis//google/storagetransfer/v1:storagetransfer_go_proto
google/storagetransfer/v1/transfer_types.proto,@go_googleapis//google/storagetransfer/v1:storagetransfer_proto,google.golang.org/genproto/googleapis/storagetransfer/v1,@go_googleapis//google/storagetransfer/v1:storagetransfer_go_proto
google/streetview/publish/v1/resources.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
google/streetview/publish/v1/rpcmessages.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
google/streetview/publish/v1/streetview_publish.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
google/type/color.proto,@go_googleapis//google/type:color_proto,google.golang.org/genproto/googleapis/type/color,@go_googleapis//google/type:color_go_proto
google/type/date.proto,@go_googleapis//google/type:date_proto,google.golang.org/genproto/googleapis/type/date,@go_googleapis//google/type:date_go_proto
google/type/dayofweek.proto,@go_googleapis//google/type:dayofweek_proto,google.golang.org/genproto/googleapis/type/dayofweek,@go_googleapis//google/type:dayofweek_go_proto
google/type/latlng.proto,@go_googleapis//google/type:latlng_proto,google.golang.org/genproto/googleapis/type/latlng,@go_googleapis//google/type:latlng_go_proto
google/type/money.proto,@go_googleapis//google/type:money_proto,google.golang.org/genproto/googleapis/type/money,@go_googleapis//google/type:money_go_proto
google/type/postal_address.proto,@go_googleapis//google/type:postaladdress_proto,google.golang.org/genproto/googleapis/type/postaladdress,@go_googleapis//google/type:postaladdress_go_proto
google/type/timeofday.proto,@go_googleapis//google/type:timeofday_proto,google.golang.org/genproto/googleapis/type/timeofday,@go_googleapis//google/type:timeofday_go_proto
google/watcher/v1/watch.proto,@go_googleapis//google/watcher/v1:watcher_proto,google.golang.org/genproto/googleapis/watcher/v1,@go_googleapis//google/watcher/v1:watcher_go_proto
1 # This file lists special protos that Gazelle knows how to import. This is used to generate
2 # code for proto and Go resolvers.
3 #
4 # Generated by internal/language/proto/gen/update_proto_csv.go
5 # Do not edit directly.
6 #
7 # proto name,proto label,go import path,go proto label
8 google/protobuf/any.proto,@com_google_protobuf//:any_proto,github.com/golang/protobuf/ptypes/any,@io_bazel_rules_go//proto/wkt:any_go_proto
9 google/protobuf/api.proto,@com_google_protobuf//:api_proto,google.golang.org/genproto/protobuf/api,@io_bazel_rules_go//proto/wkt:api_go_proto
10 google/protobuf/compiler/plugin.proto,@com_google_protobuf//:compiler_plugin_proto,github.com/golang/protobuf/protoc-gen-go/plugin,@io_bazel_rules_go//proto/wkt:compiler_plugin_go_proto
11 google/protobuf/descriptor.proto,@com_google_protobuf//:descriptor_proto,github.com/golang/protobuf/protoc-gen-go/descriptor,@io_bazel_rules_go//proto/wkt:descriptor_go_proto
12 google/protobuf/duration.proto,@com_google_protobuf//:duration_proto,github.com/golang/protobuf/ptypes/duration,@io_bazel_rules_go//proto/wkt:duration_go_proto
13 google/protobuf/empty.proto,@com_google_protobuf//:empty_proto,github.com/golang/protobuf/ptypes/empty,@io_bazel_rules_go//proto/wkt:empty_go_proto
14 google/protobuf/field_mask.proto,@com_google_protobuf//:field_mask_proto,google.golang.org/genproto/protobuf/field_mask,@io_bazel_rules_go//proto/wkt:field_mask_go_proto
15 google/protobuf/source_context.proto,@com_google_protobuf//:source_context_proto,google.golang.org/genproto/protobuf/source_context,@io_bazel_rules_go//proto/wkt:source_context_go_proto
16 google/protobuf/struct.proto,@com_google_protobuf//:struct_proto,github.com/golang/protobuf/ptypes/struct,@io_bazel_rules_go//proto/wkt:struct_go_proto
17 google/protobuf/timestamp.proto,@com_google_protobuf//:timestamp_proto,github.com/golang/protobuf/ptypes/timestamp,@io_bazel_rules_go//proto/wkt:timestamp_go_proto
18 google/protobuf/type.proto,@com_google_protobuf//:type_proto,google.golang.org/genproto/protobuf/ptype,@io_bazel_rules_go//proto/wkt:type_go_proto
19 google/protobuf/wrappers.proto,@com_google_protobuf//:wrappers_proto,github.com/golang/protobuf/ptypes/wrappers,@io_bazel_rules_go//proto/wkt:wrappers_go_proto
20 google/ads/googleads/v0/common/ad_type_infos.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
21 google/ads/googleads/v0/common/bidding.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
22 google/ads/googleads/v0/common/criteria.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
23 google/ads/googleads/v0/common/criterion_category_availability.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
24 google/ads/googleads/v0/common/custom_parameter.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
25 google/ads/googleads/v0/common/dates.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
26 google/ads/googleads/v0/common/explorer_auto_optimizer_setting.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
27 google/ads/googleads/v0/common/feed_common.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
28 google/ads/googleads/v0/common/frequency_cap.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
29 google/ads/googleads/v0/common/keyword_plan_common.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
30 google/ads/googleads/v0/common/matching_function.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
31 google/ads/googleads/v0/common/metrics.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
32 google/ads/googleads/v0/common/policy.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
33 google/ads/googleads/v0/common/real_time_bidding_setting.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
34 google/ads/googleads/v0/common/tag_snippet.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
35 google/ads/googleads/v0/common/user_lists.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
36 google/ads/googleads/v0/common/value.proto,@go_googleapis//google/ads/googleads/v0/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/common,@go_googleapis//google/ads/googleads/v0/common:common_go_proto
37 google/ads/googleads/v0/enums/access_reason.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
38 google/ads/googleads/v0/enums/account_budget_proposal_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
39 google/ads/googleads/v0/enums/account_budget_proposal_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
40 google/ads/googleads/v0/enums/account_budget_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
41 google/ads/googleads/v0/enums/ad_customizer_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
42 google/ads/googleads/v0/enums/ad_group_ad_rotation_mode.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
43 google/ads/googleads/v0/enums/ad_group_ad_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
44 google/ads/googleads/v0/enums/ad_group_criterion_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
45 google/ads/googleads/v0/enums/ad_group_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
46 google/ads/googleads/v0/enums/ad_group_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
47 google/ads/googleads/v0/enums/ad_network_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
48 google/ads/googleads/v0/enums/ad_serving_optimization_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
49 google/ads/googleads/v0/enums/ad_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
50 google/ads/googleads/v0/enums/advertising_channel_sub_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
51 google/ads/googleads/v0/enums/advertising_channel_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
52 google/ads/googleads/v0/enums/affiliate_location_feed_relationship_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
53 google/ads/googleads/v0/enums/age_range_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
54 google/ads/googleads/v0/enums/app_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
55 google/ads/googleads/v0/enums/attribution_model.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
56 google/ads/googleads/v0/enums/bid_modifier_source.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
57 google/ads/googleads/v0/enums/bidding_source.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
58 google/ads/googleads/v0/enums/bidding_strategy_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
59 google/ads/googleads/v0/enums/billing_setup_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
60 google/ads/googleads/v0/enums/budget_delivery_method.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
61 google/ads/googleads/v0/enums/budget_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
62 google/ads/googleads/v0/enums/call_conversion_reporting_state.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
63 google/ads/googleads/v0/enums/call_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
64 google/ads/googleads/v0/enums/callout_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
65 google/ads/googleads/v0/enums/campaign_group_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
66 google/ads/googleads/v0/enums/campaign_serving_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
67 google/ads/googleads/v0/enums/campaign_shared_set_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
68 google/ads/googleads/v0/enums/campaign_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
69 google/ads/googleads/v0/enums/change_status_operation.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
70 google/ads/googleads/v0/enums/change_status_resource_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
71 google/ads/googleads/v0/enums/content_label_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
72 google/ads/googleads/v0/enums/conversion_action_category.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
73 google/ads/googleads/v0/enums/conversion_action_counting_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
74 google/ads/googleads/v0/enums/conversion_action_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
75 google/ads/googleads/v0/enums/conversion_action_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
76 google/ads/googleads/v0/enums/criterion_category_channel_availability_mode.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
77 google/ads/googleads/v0/enums/criterion_category_locale_availability_mode.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
78 google/ads/googleads/v0/enums/criterion_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
79 google/ads/googleads/v0/enums/custom_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
80 google/ads/googleads/v0/enums/customer_match_upload_key_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
81 google/ads/googleads/v0/enums/data_driven_model_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
82 google/ads/googleads/v0/enums/day_of_week.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
83 google/ads/googleads/v0/enums/device.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
84 google/ads/googleads/v0/enums/display_ad_format_setting.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
85 google/ads/googleads/v0/enums/education_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
86 google/ads/googleads/v0/enums/feed_attribute_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
87 google/ads/googleads/v0/enums/feed_item_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
88 google/ads/googleads/v0/enums/feed_link_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
89 google/ads/googleads/v0/enums/feed_mapping_criterion_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
90 google/ads/googleads/v0/enums/feed_mapping_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
91 google/ads/googleads/v0/enums/feed_origin.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
92 google/ads/googleads/v0/enums/feed_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
93 google/ads/googleads/v0/enums/flight_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
94 google/ads/googleads/v0/enums/frequency_cap_event_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
95 google/ads/googleads/v0/enums/frequency_cap_level.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
96 google/ads/googleads/v0/enums/frequency_cap_time_unit.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
97 google/ads/googleads/v0/enums/gender_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
98 google/ads/googleads/v0/enums/geo_target_constant_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
99 google/ads/googleads/v0/enums/geo_targeting_restriction.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
100 google/ads/googleads/v0/enums/google_ads_field_category.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
101 google/ads/googleads/v0/enums/google_ads_field_data_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
102 google/ads/googleads/v0/enums/hotel_date_selection_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
103 google/ads/googleads/v0/enums/hotel_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
104 google/ads/googleads/v0/enums/income_range_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
105 google/ads/googleads/v0/enums/interaction_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
106 google/ads/googleads/v0/enums/job_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
107 google/ads/googleads/v0/enums/keyword_match_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
108 google/ads/googleads/v0/enums/keyword_plan_competition_level.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
109 google/ads/googleads/v0/enums/keyword_plan_forecast_interval.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
110 google/ads/googleads/v0/enums/keyword_plan_network.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
111 google/ads/googleads/v0/enums/listing_custom_attribute_index.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
112 google/ads/googleads/v0/enums/listing_group_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
113 google/ads/googleads/v0/enums/local_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
114 google/ads/googleads/v0/enums/manager_link_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
115 google/ads/googleads/v0/enums/media_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
116 google/ads/googleads/v0/enums/message_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
117 google/ads/googleads/v0/enums/mime_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
118 google/ads/googleads/v0/enums/minute_of_hour.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
119 google/ads/googleads/v0/enums/month_of_year.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
120 google/ads/googleads/v0/enums/page_one_promoted_strategy_goal.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
121 google/ads/googleads/v0/enums/parental_status_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
122 google/ads/googleads/v0/enums/placeholder_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
123 google/ads/googleads/v0/enums/policy_approval_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
124 google/ads/googleads/v0/enums/policy_review_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
125 google/ads/googleads/v0/enums/policy_topic_entry_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
126 google/ads/googleads/v0/enums/policy_topic_evidence_destination_mismatch_url_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
127 google/ads/googleads/v0/enums/preferred_content_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
128 google/ads/googleads/v0/enums/price_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
129 google/ads/googleads/v0/enums/product_channel.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
130 google/ads/googleads/v0/enums/product_channel_exclusivity.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
131 google/ads/googleads/v0/enums/product_condition.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
132 google/ads/googleads/v0/enums/product_type_level.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
133 google/ads/googleads/v0/enums/promotion_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
134 google/ads/googleads/v0/enums/proximity_radius_units.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
135 google/ads/googleads/v0/enums/quality_score_bucket.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
136 google/ads/googleads/v0/enums/real_estate_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
137 google/ads/googleads/v0/enums/recommendation_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
138 google/ads/googleads/v0/enums/search_term_match_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
139 google/ads/googleads/v0/enums/search_term_targeting_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
140 google/ads/googleads/v0/enums/shared_set_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
141 google/ads/googleads/v0/enums/shared_set_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
142 google/ads/googleads/v0/enums/sitelink_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
143 google/ads/googleads/v0/enums/slot.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
144 google/ads/googleads/v0/enums/spending_limit_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
145 google/ads/googleads/v0/enums/structured_snippet_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
146 google/ads/googleads/v0/enums/target_cpa_opt_in_recommendation_goal.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
147 google/ads/googleads/v0/enums/targeting_dimension.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
148 google/ads/googleads/v0/enums/time_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
149 google/ads/googleads/v0/enums/tracking_code_page_format.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
150 google/ads/googleads/v0/enums/tracking_code_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
151 google/ads/googleads/v0/enums/travel_placeholder_field.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
152 google/ads/googleads/v0/enums/user_interest_taxonomy_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
153 google/ads/googleads/v0/enums/user_list_access_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
154 google/ads/googleads/v0/enums/user_list_closing_reason.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
155 google/ads/googleads/v0/enums/user_list_crm_data_source_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
156 google/ads/googleads/v0/enums/user_list_membership_status.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
157 google/ads/googleads/v0/enums/user_list_size_range.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
158 google/ads/googleads/v0/enums/user_list_type.proto,@go_googleapis//google/ads/googleads/v0/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/enums,@go_googleapis//google/ads/googleads/v0/enums:enums_go_proto
159 google/ads/googleads/v0/errors/account_budget_proposal_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
160 google/ads/googleads/v0/errors/ad_customizer_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
161 google/ads/googleads/v0/errors/ad_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
162 google/ads/googleads/v0/errors/ad_group_ad_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
163 google/ads/googleads/v0/errors/ad_group_bid_modifier_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
164 google/ads/googleads/v0/errors/ad_group_criterion_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
165 google/ads/googleads/v0/errors/ad_group_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
166 google/ads/googleads/v0/errors/ad_group_feed_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
167 google/ads/googleads/v0/errors/ad_sharing_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
168 google/ads/googleads/v0/errors/adx_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
169 google/ads/googleads/v0/errors/authentication_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
170 google/ads/googleads/v0/errors/authorization_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
171 google/ads/googleads/v0/errors/bidding_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
172 google/ads/googleads/v0/errors/bidding_strategy_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
173 google/ads/googleads/v0/errors/billing_setup_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
174 google/ads/googleads/v0/errors/campaign_budget_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
175 google/ads/googleads/v0/errors/campaign_criterion_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
176 google/ads/googleads/v0/errors/campaign_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
177 google/ads/googleads/v0/errors/campaign_feed_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
178 google/ads/googleads/v0/errors/campaign_group_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
179 google/ads/googleads/v0/errors/campaign_shared_set_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
180 google/ads/googleads/v0/errors/change_status_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
181 google/ads/googleads/v0/errors/collection_size_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
182 google/ads/googleads/v0/errors/context_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
183 google/ads/googleads/v0/errors/conversion_action_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
184 google/ads/googleads/v0/errors/criterion_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
185 google/ads/googleads/v0/errors/customer_client_link_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
186 google/ads/googleads/v0/errors/customer_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
187 google/ads/googleads/v0/errors/customer_feed_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
188 google/ads/googleads/v0/errors/customer_manager_link_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
189 google/ads/googleads/v0/errors/database_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
190 google/ads/googleads/v0/errors/date_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
191 google/ads/googleads/v0/errors/date_range_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
192 google/ads/googleads/v0/errors/distinct_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
193 google/ads/googleads/v0/errors/enum_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
194 google/ads/googleads/v0/errors/errors.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
195 google/ads/googleads/v0/errors/feed_attribute_reference_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
196 google/ads/googleads/v0/errors/feed_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
197 google/ads/googleads/v0/errors/feed_item_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
198 google/ads/googleads/v0/errors/feed_mapping_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
199 google/ads/googleads/v0/errors/field_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
200 google/ads/googleads/v0/errors/field_mask_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
201 google/ads/googleads/v0/errors/function_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
202 google/ads/googleads/v0/errors/function_parsing_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
203 google/ads/googleads/v0/errors/geo_target_constant_suggestion_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
204 google/ads/googleads/v0/errors/header_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
205 google/ads/googleads/v0/errors/id_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
206 google/ads/googleads/v0/errors/image_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
207 google/ads/googleads/v0/errors/internal_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
208 google/ads/googleads/v0/errors/keyword_plan_ad_group_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
209 google/ads/googleads/v0/errors/keyword_plan_campaign_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
210 google/ads/googleads/v0/errors/keyword_plan_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
211 google/ads/googleads/v0/errors/keyword_plan_idea_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
212 google/ads/googleads/v0/errors/keyword_plan_keyword_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
213 google/ads/googleads/v0/errors/keyword_plan_negative_keyword_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
214 google/ads/googleads/v0/errors/list_operation_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
215 google/ads/googleads/v0/errors/media_bundle_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
216 google/ads/googleads/v0/errors/media_file_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
217 google/ads/googleads/v0/errors/multiplier_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
218 google/ads/googleads/v0/errors/mutate_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
219 google/ads/googleads/v0/errors/new_resource_creation_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
220 google/ads/googleads/v0/errors/not_empty_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
221 google/ads/googleads/v0/errors/null_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
222 google/ads/googleads/v0/errors/operation_access_denied_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
223 google/ads/googleads/v0/errors/operator_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
224 google/ads/googleads/v0/errors/policy_finding_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
225 google/ads/googleads/v0/errors/query_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
226 google/ads/googleads/v0/errors/quota_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
227 google/ads/googleads/v0/errors/range_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
228 google/ads/googleads/v0/errors/recommendation_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
229 google/ads/googleads/v0/errors/region_code_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
230 google/ads/googleads/v0/errors/request_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
231 google/ads/googleads/v0/errors/resource_access_denied_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
232 google/ads/googleads/v0/errors/resource_count_limit_exceeded_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
233 google/ads/googleads/v0/errors/setting_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
234 google/ads/googleads/v0/errors/shared_criterion_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
235 google/ads/googleads/v0/errors/shared_set_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
236 google/ads/googleads/v0/errors/string_format_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
237 google/ads/googleads/v0/errors/string_length_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
238 google/ads/googleads/v0/errors/url_field_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
239 google/ads/googleads/v0/errors/user_list_error.proto,@go_googleapis//google/ads/googleads/v0/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/errors,@go_googleapis//google/ads/googleads/v0/errors:errors_go_proto
240 google/ads/googleads/v0/resources/account_budget.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
241 google/ads/googleads/v0/resources/account_budget_proposal.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
242 google/ads/googleads/v0/resources/ad.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
243 google/ads/googleads/v0/resources/ad_group.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
244 google/ads/googleads/v0/resources/ad_group_ad.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
245 google/ads/googleads/v0/resources/ad_group_audience_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
246 google/ads/googleads/v0/resources/ad_group_bid_modifier.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
247 google/ads/googleads/v0/resources/ad_group_criterion.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
248 google/ads/googleads/v0/resources/ad_group_feed.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
249 google/ads/googleads/v0/resources/age_range_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
250 google/ads/googleads/v0/resources/bidding_strategy.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
251 google/ads/googleads/v0/resources/billing_setup.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
252 google/ads/googleads/v0/resources/campaign.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
253 google/ads/googleads/v0/resources/campaign_audience_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
254 google/ads/googleads/v0/resources/campaign_bid_modifier.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
255 google/ads/googleads/v0/resources/campaign_budget.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
256 google/ads/googleads/v0/resources/campaign_criterion.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
257 google/ads/googleads/v0/resources/campaign_feed.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
258 google/ads/googleads/v0/resources/campaign_group.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
259 google/ads/googleads/v0/resources/campaign_shared_set.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
260 google/ads/googleads/v0/resources/carrier_constant.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
261 google/ads/googleads/v0/resources/change_status.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
262 google/ads/googleads/v0/resources/conversion_action.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
263 google/ads/googleads/v0/resources/customer.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
264 google/ads/googleads/v0/resources/customer_client.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
265 google/ads/googleads/v0/resources/customer_client_link.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
266 google/ads/googleads/v0/resources/customer_feed.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
267 google/ads/googleads/v0/resources/customer_manager_link.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
268 google/ads/googleads/v0/resources/display_keyword_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
269 google/ads/googleads/v0/resources/feed.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
270 google/ads/googleads/v0/resources/feed_item.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
271 google/ads/googleads/v0/resources/feed_mapping.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
272 google/ads/googleads/v0/resources/gender_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
273 google/ads/googleads/v0/resources/geo_target_constant.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
274 google/ads/googleads/v0/resources/google_ads_field.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
275 google/ads/googleads/v0/resources/hotel_group_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
276 google/ads/googleads/v0/resources/hotel_performance_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
277 google/ads/googleads/v0/resources/keyword_plan.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
278 google/ads/googleads/v0/resources/keyword_plan_ad_group.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
279 google/ads/googleads/v0/resources/keyword_plan_campaign.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
280 google/ads/googleads/v0/resources/keyword_plan_keyword.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
281 google/ads/googleads/v0/resources/keyword_plan_negative_keyword.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
282 google/ads/googleads/v0/resources/keyword_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
283 google/ads/googleads/v0/resources/language_constant.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
284 google/ads/googleads/v0/resources/managed_placement_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
285 google/ads/googleads/v0/resources/media_file.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
286 google/ads/googleads/v0/resources/parental_status_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
287 google/ads/googleads/v0/resources/payments_account.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
288 google/ads/googleads/v0/resources/product_group_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
289 google/ads/googleads/v0/resources/recommendation.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
290 google/ads/googleads/v0/resources/search_term_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
291 google/ads/googleads/v0/resources/shared_criterion.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
292 google/ads/googleads/v0/resources/shared_set.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
293 google/ads/googleads/v0/resources/topic_constant.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
294 google/ads/googleads/v0/resources/topic_view.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
295 google/ads/googleads/v0/resources/user_interest.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
296 google/ads/googleads/v0/resources/user_list.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
297 google/ads/googleads/v0/resources/video.proto,@go_googleapis//google/ads/googleads/v0/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/resources,@go_googleapis//google/ads/googleads/v0/resources:resources_go_proto
298 google/ads/googleads/v0/services/account_budget_proposal_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
299 google/ads/googleads/v0/services/account_budget_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
300 google/ads/googleads/v0/services/ad_group_ad_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
301 google/ads/googleads/v0/services/ad_group_audience_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
302 google/ads/googleads/v0/services/ad_group_bid_modifier_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
303 google/ads/googleads/v0/services/ad_group_criterion_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
304 google/ads/googleads/v0/services/ad_group_feed_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
305 google/ads/googleads/v0/services/ad_group_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
306 google/ads/googleads/v0/services/age_range_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
307 google/ads/googleads/v0/services/bidding_strategy_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
308 google/ads/googleads/v0/services/billing_setup_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
309 google/ads/googleads/v0/services/campaign_audience_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
310 google/ads/googleads/v0/services/campaign_bid_modifier_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
311 google/ads/googleads/v0/services/campaign_budget_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
312 google/ads/googleads/v0/services/campaign_criterion_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
313 google/ads/googleads/v0/services/campaign_feed_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
314 google/ads/googleads/v0/services/campaign_group_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
315 google/ads/googleads/v0/services/campaign_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
316 google/ads/googleads/v0/services/campaign_shared_set_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
317 google/ads/googleads/v0/services/carrier_constant_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
318 google/ads/googleads/v0/services/change_status_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
319 google/ads/googleads/v0/services/conversion_action_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
320 google/ads/googleads/v0/services/customer_client_link_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
321 google/ads/googleads/v0/services/customer_client_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
322 google/ads/googleads/v0/services/customer_feed_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
323 google/ads/googleads/v0/services/customer_manager_link_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
324 google/ads/googleads/v0/services/customer_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
325 google/ads/googleads/v0/services/display_keyword_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
326 google/ads/googleads/v0/services/feed_item_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
327 google/ads/googleads/v0/services/feed_mapping_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
328 google/ads/googleads/v0/services/feed_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
329 google/ads/googleads/v0/services/gender_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
330 google/ads/googleads/v0/services/geo_target_constant_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
331 google/ads/googleads/v0/services/google_ads_field_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
332 google/ads/googleads/v0/services/google_ads_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
333 google/ads/googleads/v0/services/hotel_group_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
334 google/ads/googleads/v0/services/hotel_performance_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
335 google/ads/googleads/v0/services/keyword_plan_ad_group_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
336 google/ads/googleads/v0/services/keyword_plan_campaign_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
337 google/ads/googleads/v0/services/keyword_plan_idea_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
338 google/ads/googleads/v0/services/keyword_plan_keyword_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
339 google/ads/googleads/v0/services/keyword_plan_negative_keyword_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
340 google/ads/googleads/v0/services/keyword_plan_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
341 google/ads/googleads/v0/services/keyword_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
342 google/ads/googleads/v0/services/language_constant_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
343 google/ads/googleads/v0/services/managed_placement_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
344 google/ads/googleads/v0/services/media_file_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
345 google/ads/googleads/v0/services/parental_status_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
346 google/ads/googleads/v0/services/payments_account_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
347 google/ads/googleads/v0/services/product_group_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
348 google/ads/googleads/v0/services/recommendation_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
349 google/ads/googleads/v0/services/search_term_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
350 google/ads/googleads/v0/services/shared_criterion_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
351 google/ads/googleads/v0/services/shared_set_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
352 google/ads/googleads/v0/services/topic_constant_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
353 google/ads/googleads/v0/services/topic_view_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
354 google/ads/googleads/v0/services/user_interest_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
355 google/ads/googleads/v0/services/user_list_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
356 google/ads/googleads/v0/services/video_service.proto,@go_googleapis//google/ads/googleads/v0/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v0/services,@go_googleapis//google/ads/googleads/v0/services:services_go_proto
357 google/api/annotations.proto,@go_googleapis//google/api:annotations_proto,google.golang.org/genproto/googleapis/api/annotations,@go_googleapis//google/api:annotations_go_proto
358 google/api/auth.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
359 google/api/backend.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
360 google/api/billing.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
361 google/api/config_change.proto,@go_googleapis//google/api:configchange_proto,google.golang.org/genproto/googleapis/api/configchange,@go_googleapis//google/api:configchange_go_proto
362 google/api/consumer.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
363 google/api/context.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
364 google/api/control.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
365 google/api/distribution.proto,@go_googleapis//google/api:distribution_proto,google.golang.org/genproto/googleapis/api/distribution,@go_googleapis//google/api:distribution_go_proto
366 google/api/documentation.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
367 google/api/endpoint.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
368 google/api/experimental/authorization_config.proto,@go_googleapis//google/api:api_proto,google.golang.org/genproto/googleapis/api,@go_googleapis//google/api:api_go_proto
369 google/api/experimental/experimental.proto,@go_googleapis//google/api:api_proto,google.golang.org/genproto/googleapis/api,@go_googleapis//google/api:api_go_proto
370 google/api/expr/v1alpha1/cel_service.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
371 google/api/expr/v1alpha1/checked.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
372 google/api/expr/v1alpha1/conformance_service.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
373 google/api/expr/v1alpha1/eval.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
374 google/api/expr/v1alpha1/explain.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
375 google/api/expr/v1alpha1/syntax.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
376 google/api/expr/v1alpha1/value.proto,@go_googleapis//google/api/expr/v1alpha1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1alpha1,@go_googleapis//google/api/expr/v1alpha1:expr_go_proto
377 google/api/expr/v1beta1/decl.proto,@go_googleapis//google/api/expr/v1beta1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1beta1,@go_googleapis//google/api/expr/v1beta1:expr_go_proto
378 google/api/expr/v1beta1/eval.proto,@go_googleapis//google/api/expr/v1beta1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1beta1,@go_googleapis//google/api/expr/v1beta1:expr_go_proto
379 google/api/expr/v1beta1/expr.proto,@go_googleapis//google/api/expr/v1beta1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1beta1,@go_googleapis//google/api/expr/v1beta1:expr_go_proto
380 google/api/expr/v1beta1/source.proto,@go_googleapis//google/api/expr/v1beta1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1beta1,@go_googleapis//google/api/expr/v1beta1:expr_go_proto
381 google/api/expr/v1beta1/value.proto,@go_googleapis//google/api/expr/v1beta1:expr_proto,google.golang.org/genproto/googleapis/api/expr/v1beta1,@go_googleapis//google/api/expr/v1beta1:expr_go_proto
382 google/api/http.proto,@go_googleapis//google/api:annotations_proto,google.golang.org/genproto/googleapis/api/annotations,@go_googleapis//google/api:annotations_go_proto
383 google/api/httpbody.proto,@go_googleapis//google/api:httpbody_proto,google.golang.org/genproto/googleapis/api/httpbody,@go_googleapis//google/api:httpbody_go_proto
384 google/api/label.proto,@go_googleapis//google/api:label_proto,google.golang.org/genproto/googleapis/api/label,@go_googleapis//google/api:label_go_proto
385 google/api/launch_stage.proto,@go_googleapis//google/api:api_proto,google.golang.org/genproto/googleapis/api,@go_googleapis//google/api:api_go_proto
386 google/api/log.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
387 google/api/logging.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
388 google/api/metric.proto,@go_googleapis//google/api:metric_proto,google.golang.org/genproto/googleapis/api/metric,@go_googleapis//google/api:metric_go_proto
389 google/api/monitored_resource.proto,@go_googleapis//google/api:monitoredres_proto,google.golang.org/genproto/googleapis/api/monitoredres,@go_googleapis//google/api:monitoredres_go_proto
390 google/api/monitoring.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
391 google/api/quota.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
392 google/api/service.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
393 google/api/servicecontrol/v1/check_error.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
394 google/api/servicecontrol/v1/distribution.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
395 google/api/servicecontrol/v1/log_entry.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
396 google/api/servicecontrol/v1/metric_value.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
397 google/api/servicecontrol/v1/operation.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
398 google/api/servicecontrol/v1/quota_controller.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
399 google/api/servicecontrol/v1/service_controller.proto,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_proto,google.golang.org/genproto/googleapis/api/servicecontrol/v1,@go_googleapis//google/api/servicecontrol/v1:servicecontrol_go_proto
400 google/api/servicemanagement/v1/resources.proto,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_proto,google.golang.org/genproto/googleapis/api/servicemanagement/v1,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_go_proto
401 google/api/servicemanagement/v1/servicemanager.proto,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_proto,google.golang.org/genproto/googleapis/api/servicemanagement/v1,@go_googleapis//google/api/servicemanagement/v1:servicemanagement_go_proto
402 google/api/source_info.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
403 google/api/system_parameter.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
404 google/api/usage.proto,@go_googleapis//google/api:serviceconfig_proto,google.golang.org/genproto/googleapis/api/serviceconfig,@go_googleapis//google/api:serviceconfig_go_proto
405 google/appengine/legacy/audit_data.proto,@go_googleapis//google/appengine/legacy:legacy_proto,google.golang.org/genproto/googleapis/appengine/legacy,@go_googleapis//google/appengine/legacy:legacy_go_proto
406 google/appengine/logging/v1/request_log.proto,@go_googleapis//google/appengine/logging/v1:logging_proto,google.golang.org/genproto/googleapis/appengine/logging/v1,@go_googleapis//google/appengine/logging/v1:logging_go_proto
407 google/appengine/v1/app_yaml.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
408 google/appengine/v1/appengine.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
409 google/appengine/v1/application.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
410 google/appengine/v1/audit_data.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
411 google/appengine/v1/deploy.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
412 google/appengine/v1/instance.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
413 google/appengine/v1/location.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
414 google/appengine/v1/operation.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
415 google/appengine/v1/service.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
416 google/appengine/v1/version.proto,@go_googleapis//google/appengine/v1:appengine_proto,google.golang.org/genproto/googleapis/appengine/v1,@go_googleapis//google/appengine/v1:appengine_go_proto
417 google/assistant/embedded/v1alpha1/embedded_assistant.proto,@go_googleapis//google/assistant/embedded/v1alpha1:embedded_proto,google.golang.org/genproto/googleapis/assistant/embedded/v1alpha1,@go_googleapis//google/assistant/embedded/v1alpha1:embedded_go_proto
418 google/assistant/embedded/v1alpha2/embedded_assistant.proto,@go_googleapis//google/assistant/embedded/v1alpha2:embedded_proto,google.golang.org/genproto/googleapis/assistant/embedded/v1alpha2,@go_googleapis//google/assistant/embedded/v1alpha2:embedded_go_proto
419 google/bigtable/admin/cluster/v1/bigtable_cluster_data.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
420 google/bigtable/admin/cluster/v1/bigtable_cluster_service.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
421 google/bigtable/admin/cluster/v1/bigtable_cluster_service_messages.proto,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_proto,google.golang.org/genproto/googleapis/bigtable/admin/cluster/v1,@go_googleapis//google/bigtable/admin/cluster/v1:cluster_go_proto
422 google/bigtable/admin/table/v1/bigtable_table_data.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
423 google/bigtable/admin/table/v1/bigtable_table_service.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
424 google/bigtable/admin/table/v1/bigtable_table_service_messages.proto,@go_googleapis//google/bigtable/admin/table/v1:table_proto,google.golang.org/genproto/googleapis/bigtable/admin/table/v1,@go_googleapis//google/bigtable/admin/table/v1:table_go_proto
425 google/bigtable/admin/v2/bigtable_instance_admin.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
426 google/bigtable/admin/v2/bigtable_table_admin.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
427 google/bigtable/admin/v2/common.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
428 google/bigtable/admin/v2/instance.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
429 google/bigtable/admin/v2/table.proto,@go_googleapis//google/bigtable/admin/v2:admin_proto,google.golang.org/genproto/googleapis/bigtable/admin/v2,@go_googleapis//google/bigtable/admin/v2:admin_go_proto
430 google/bigtable/v1/bigtable_data.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
431 google/bigtable/v1/bigtable_service.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
432 google/bigtable/v1/bigtable_service_messages.proto,@go_googleapis//google/bigtable/v1:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v1,@go_googleapis//google/bigtable/v1:bigtable_go_proto
433 google/bigtable/v2/bigtable.proto,@go_googleapis//google/bigtable/v2:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v2,@go_googleapis//google/bigtable/v2:bigtable_go_proto
434 google/bigtable/v2/data.proto,@go_googleapis//google/bigtable/v2:bigtable_proto,google.golang.org/genproto/googleapis/bigtable/v2,@go_googleapis//google/bigtable/v2:bigtable_go_proto
435 google/bytestream/bytestream.proto,@go_googleapis//google/bytestream:bytestream_proto,google.golang.org/genproto/googleapis/bytestream,@go_googleapis//google/bytestream:bytestream_go_proto
436 google/cloud/asset/v1beta1/asset_service.proto,@go_googleapis//google/cloud/asset/v1beta1:asset_proto,google.golang.org/genproto/googleapis/cloud/asset/v1beta1,@go_googleapis//google/cloud/asset/v1beta1:asset_go_proto
437 google/cloud/asset/v1beta1/assets.proto,@go_googleapis//google/cloud/asset/v1beta1:asset_proto,google.golang.org/genproto/googleapis/cloud/asset/v1beta1,@go_googleapis//google/cloud/asset/v1beta1:asset_go_proto
438 google/cloud/audit/audit_log.proto,@go_googleapis//google/cloud/audit:audit_proto,google.golang.org/genproto/googleapis/cloud/audit,@go_googleapis//google/cloud/audit:audit_go_proto
439 google/cloud/automl/v1beta1/annotation_payload.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
440 google/cloud/automl/v1beta1/classification.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
441 google/cloud/automl/v1beta1/data_items.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
442 google/cloud/automl/v1beta1/dataset.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
443 google/cloud/automl/v1beta1/image.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
444 google/cloud/automl/v1beta1/io.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
445 google/cloud/automl/v1beta1/model.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
446 google/cloud/automl/v1beta1/model_evaluation.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
447 google/cloud/automl/v1beta1/operations.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
448 google/cloud/automl/v1beta1/prediction_service.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
449 google/cloud/automl/v1beta1/service.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
450 google/cloud/automl/v1beta1/text.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
451 google/cloud/automl/v1beta1/translation.proto,@go_googleapis//google/cloud/automl/v1beta1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1beta1,@go_googleapis//google/cloud/automl/v1beta1:automl_go_proto
452 google/cloud/bigquery/datatransfer/v1/datatransfer.proto,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_proto,google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_go_proto
453 google/cloud/bigquery/datatransfer/v1/transfer.proto,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_proto,google.golang.org/genproto/googleapis/cloud/bigquery/datatransfer/v1,@go_googleapis//google/cloud/bigquery/datatransfer/v1:datatransfer_go_proto
454 google/cloud/bigquery/logging/v1/audit_data.proto,@go_googleapis//google/cloud/bigquery/logging/v1:logging_proto,google.golang.org/genproto/googleapis/cloud/bigquery/logging/v1,@go_googleapis//google/cloud/bigquery/logging/v1:logging_go_proto
455 google/cloud/bigquery/storage/v1beta1/avro.proto,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_proto,google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_go_proto
456 google/cloud/bigquery/storage/v1beta1/read_options.proto,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_proto,google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_go_proto
457 google/cloud/bigquery/storage/v1beta1/storage.proto,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_proto,google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_go_proto
458 google/cloud/bigquery/storage/v1beta1/table_reference.proto,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_proto,google.golang.org/genproto/googleapis/cloud/bigquery/storage/v1beta1,@go_googleapis//google/cloud/bigquery/storage/v1beta1:storage_go_proto
459 google/cloud/billing/v1/cloud_billing.proto,@go_googleapis//google/cloud/billing/v1:billing_proto,google.golang.org/genproto/googleapis/cloud/billing/v1,@go_googleapis//google/cloud/billing/v1:billing_go_proto
460 google/cloud/dataproc/v1/clusters.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
461 google/cloud/dataproc/v1/jobs.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
462 google/cloud/dataproc/v1/operations.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
463 google/cloud/dataproc/v1/workflow_templates.proto,@go_googleapis//google/cloud/dataproc/v1:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1,@go_googleapis//google/cloud/dataproc/v1:dataproc_go_proto
464 google/cloud/dataproc/v1beta2/clusters.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
465 google/cloud/dataproc/v1beta2/jobs.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
466 google/cloud/dataproc/v1beta2/operations.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
467 google/cloud/dataproc/v1beta2/shared.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
468 google/cloud/dataproc/v1beta2/workflow_templates.proto,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_proto,google.golang.org/genproto/googleapis/cloud/dataproc/v1beta2,@go_googleapis//google/cloud/dataproc/v1beta2:dataproc_go_proto
469 google/cloud/dialogflow/v2/agent.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
470 google/cloud/dialogflow/v2/context.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
471 google/cloud/dialogflow/v2/entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
472 google/cloud/dialogflow/v2/intent.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
473 google/cloud/dialogflow/v2/session.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
474 google/cloud/dialogflow/v2/session_entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
475 google/cloud/dialogflow/v2/webhook.proto,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2,@go_googleapis//google/cloud/dialogflow/v2:dialogflow_go_proto
476 google/cloud/dialogflow/v2beta1/agent.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
477 google/cloud/dialogflow/v2beta1/audio_config.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
478 google/cloud/dialogflow/v2beta1/context.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
479 google/cloud/dialogflow/v2beta1/document.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
480 google/cloud/dialogflow/v2beta1/entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
481 google/cloud/dialogflow/v2beta1/intent.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
482 google/cloud/dialogflow/v2beta1/knowledge_base.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
483 google/cloud/dialogflow/v2beta1/session.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
484 google/cloud/dialogflow/v2beta1/session_entity_type.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
485 google/cloud/dialogflow/v2beta1/webhook.proto,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_proto,google.golang.org/genproto/googleapis/cloud/dialogflow/v2beta1,@go_googleapis//google/cloud/dialogflow/v2beta1:dialogflow_go_proto
486 google/cloud/functions/v1beta2/functions.proto,@go_googleapis//google/cloud/functions/v1beta2:functions_proto,google.golang.org/genproto/googleapis/cloud/functions/v1beta2,@go_googleapis//google/cloud/functions/v1beta2:functions_go_proto
487 google/cloud/functions/v1beta2/operations.proto,@go_googleapis//google/cloud/functions/v1beta2:functions_proto,google.golang.org/genproto/googleapis/cloud/functions/v1beta2,@go_googleapis//google/cloud/functions/v1beta2:functions_go_proto
488 google/cloud/iot/v1/device_manager.proto,@go_googleapis//google/cloud/iot/v1:iot_proto,google.golang.org/genproto/googleapis/cloud/iot/v1,@go_googleapis//google/cloud/iot/v1:iot_go_proto
489 google/cloud/iot/v1/resources.proto,@go_googleapis//google/cloud/iot/v1:iot_proto,google.golang.org/genproto/googleapis/cloud/iot/v1,@go_googleapis//google/cloud/iot/v1:iot_go_proto
490 google/cloud/kms/v1/resources.proto,@go_googleapis//google/cloud/kms/v1:kms_proto,google.golang.org/genproto/googleapis/cloud/kms/v1,@go_googleapis//google/cloud/kms/v1:kms_go_proto
491 google/cloud/kms/v1/service.proto,@go_googleapis//google/cloud/kms/v1:kms_proto,google.golang.org/genproto/googleapis/cloud/kms/v1,@go_googleapis//google/cloud/kms/v1:kms_go_proto
492 google/cloud/language/v1/language_service.proto,@go_googleapis//google/cloud/language/v1:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1,@go_googleapis//google/cloud/language/v1:language_go_proto
493 google/cloud/language/v1beta1/language_service.proto,@go_googleapis//google/cloud/language/v1beta1:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1beta1,@go_googleapis//google/cloud/language/v1beta1:language_go_proto
494 google/cloud/language/v1beta2/language_service.proto,@go_googleapis//google/cloud/language/v1beta2:language_proto,google.golang.org/genproto/googleapis/cloud/language/v1beta2,@go_googleapis//google/cloud/language/v1beta2:language_go_proto
495 google/cloud/location/locations.proto,@go_googleapis//google/cloud/location:location_proto,google.golang.org/genproto/googleapis/cloud/location,@go_googleapis//google/cloud/location:location_go_proto
496 google/cloud/ml/v1/job_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
497 google/cloud/ml/v1/model_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
498 google/cloud/ml/v1/operation_metadata.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
499 google/cloud/ml/v1/prediction_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
500 google/cloud/ml/v1/project_service.proto,@go_googleapis//google/cloud/ml/v1:ml_proto,google.golang.org/genproto/googleapis/cloud/ml/v1,@go_googleapis//google/cloud/ml/v1:ml_go_proto
501 google/cloud/oslogin/common/common.proto,@go_googleapis//google/cloud/oslogin/common:common_proto,google.golang.org/genproto/googleapis/cloud/oslogin/common,@go_googleapis//google/cloud/oslogin/common:common_go_proto
502 google/cloud/oslogin/v1/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1,@go_googleapis//google/cloud/oslogin/v1:oslogin_go_proto
503 google/cloud/oslogin/v1alpha/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1alpha:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1alpha,@go_googleapis//google/cloud/oslogin/v1alpha:oslogin_go_proto
504 google/cloud/oslogin/v1beta/oslogin.proto,@go_googleapis//google/cloud/oslogin/v1beta:oslogin_proto,google.golang.org/genproto/googleapis/cloud/oslogin/v1beta,@go_googleapis//google/cloud/oslogin/v1beta:oslogin_go_proto
505 google/cloud/redis/v1/cloud_redis.proto,@go_googleapis//google/cloud/redis/v1:redis_proto,google.golang.org/genproto/googleapis/cloud/redis/v1,@go_googleapis//google/cloud/redis/v1:redis_go_proto
506 google/cloud/redis/v1beta1/cloud_redis.proto,@go_googleapis//google/cloud/redis/v1beta1:redis_proto,google.golang.org/genproto/googleapis/cloud/redis/v1beta1,@go_googleapis//google/cloud/redis/v1beta1:redis_go_proto
507 google/cloud/resourcemanager/v2/folders.proto,@go_googleapis//google/cloud/resourcemanager/v2:resourcemanager_proto,google.golang.org/genproto/googleapis/cloud/resourcemanager/v2,@go_googleapis//google/cloud/resourcemanager/v2:resourcemanager_go_proto
508 google/cloud/runtimeconfig/v1beta1/resources.proto,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_proto,google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_go_proto
509 google/cloud/runtimeconfig/v1beta1/runtimeconfig.proto,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_proto,google.golang.org/genproto/googleapis/cloud/runtimeconfig/v1beta1,@go_googleapis//google/cloud/runtimeconfig/v1beta1:runtimeconfig_go_proto
510 google/cloud/scheduler/v1beta1/cloudscheduler.proto,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_proto,google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_go_proto
511 google/cloud/scheduler/v1beta1/job.proto,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_proto,google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_go_proto
512 google/cloud/scheduler/v1beta1/target.proto,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_proto,google.golang.org/genproto/googleapis/cloud/scheduler/v1beta1,@go_googleapis//google/cloud/scheduler/v1beta1:scheduler_go_proto
513 google/cloud/securitycenter/v1beta1/asset.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
514 google/cloud/securitycenter/v1beta1/finding.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
515 google/cloud/securitycenter/v1beta1/organization_settings.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
516 google/cloud/securitycenter/v1beta1/security_marks.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
517 google/cloud/securitycenter/v1beta1/securitycenter_service.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
518 google/cloud/securitycenter/v1beta1/source.proto,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1beta1,@go_googleapis//google/cloud/securitycenter/v1beta1:securitycenter_go_proto
519 google/cloud/speech/v1/cloud_speech.proto,@go_googleapis//google/cloud/speech/v1:speech_proto,google.golang.org/genproto/googleapis/cloud/speech/v1,@go_googleapis//google/cloud/speech/v1:speech_go_proto
520 google/cloud/speech/v1p1beta1/cloud_speech.proto,@go_googleapis//google/cloud/speech/v1p1beta1:speech_proto,google.golang.org/genproto/googleapis/cloud/speech/v1p1beta1,@go_googleapis//google/cloud/speech/v1p1beta1:speech_go_proto
521 google/cloud/support/common.proto,@go_googleapis//google/cloud/support:common_proto,google.golang.org/genproto/googleapis/cloud/support/common,@go_googleapis//google/cloud/support:common_go_proto
522 google/cloud/support/v1alpha1/cloud_support.proto,@go_googleapis//google/cloud/support/v1alpha1:support_proto,google.golang.org/genproto/googleapis/cloud/support/v1alpha1,@go_googleapis//google/cloud/support/v1alpha1:support_go_proto
523 google/cloud/tasks/v2beta2/cloudtasks.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
524 google/cloud/tasks/v2beta2/queue.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
525 google/cloud/tasks/v2beta2/target.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
526 google/cloud/tasks/v2beta2/task.proto,@go_googleapis//google/cloud/tasks/v2beta2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta2,@go_googleapis//google/cloud/tasks/v2beta2:tasks_go_proto
527 google/cloud/tasks/v2beta3/cloudtasks.proto,@go_googleapis//google/cloud/tasks/v2beta3:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta3,@go_googleapis//google/cloud/tasks/v2beta3:tasks_go_proto
528 google/cloud/tasks/v2beta3/queue.proto,@go_googleapis//google/cloud/tasks/v2beta3:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta3,@go_googleapis//google/cloud/tasks/v2beta3:tasks_go_proto
529 google/cloud/tasks/v2beta3/target.proto,@go_googleapis//google/cloud/tasks/v2beta3:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta3,@go_googleapis//google/cloud/tasks/v2beta3:tasks_go_proto
530 google/cloud/tasks/v2beta3/task.proto,@go_googleapis//google/cloud/tasks/v2beta3:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2beta3,@go_googleapis//google/cloud/tasks/v2beta3:tasks_go_proto
531 google/cloud/texttospeech/v1/cloud_tts.proto,@go_googleapis//google/cloud/texttospeech/v1:texttospeech_proto,google.golang.org/genproto/googleapis/cloud/texttospeech/v1,@go_googleapis//google/cloud/texttospeech/v1:texttospeech_go_proto
532 google/cloud/texttospeech/v1beta1/cloud_tts.proto,@go_googleapis//google/cloud/texttospeech/v1beta1:texttospeech_proto,google.golang.org/genproto/googleapis/cloud/texttospeech/v1beta1,@go_googleapis//google/cloud/texttospeech/v1beta1:texttospeech_go_proto
533 google/cloud/videointelligence/v1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1,@go_googleapis//google/cloud/videointelligence/v1:videointelligence_go_proto
534 google/cloud/videointelligence/v1beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta1,@go_googleapis//google/cloud/videointelligence/v1beta1:videointelligence_go_proto
535 google/cloud/videointelligence/v1beta2/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1beta2:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1beta2,@go_googleapis//google/cloud/videointelligence/v1beta2:videointelligence_go_proto
536 google/cloud/videointelligence/v1p1beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1p1beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1p1beta1,@go_googleapis//google/cloud/videointelligence/v1p1beta1:videointelligence_go_proto
537 google/cloud/videointelligence/v1p2beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1p2beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1p2beta1,@go_googleapis//google/cloud/videointelligence/v1p2beta1:videointelligence_go_proto
538 google/cloud/vision/v1/geometry.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
539 google/cloud/vision/v1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
540 google/cloud/vision/v1/product_search.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
541 google/cloud/vision/v1/product_search_service.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
542 google/cloud/vision/v1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
543 google/cloud/vision/v1/web_detection.proto,@go_googleapis//google/cloud/vision/v1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1,@go_googleapis//google/cloud/vision/v1:vision_go_proto
544 google/cloud/vision/v1p1beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
545 google/cloud/vision/v1p1beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
546 google/cloud/vision/v1p1beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
547 google/cloud/vision/v1p1beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p1beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p1beta1,@go_googleapis//google/cloud/vision/v1p1beta1:vision_go_proto
548 google/cloud/vision/v1p2beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
549 google/cloud/vision/v1p2beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
550 google/cloud/vision/v1p2beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
551 google/cloud/vision/v1p2beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p2beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p2beta1,@go_googleapis//google/cloud/vision/v1p2beta1:vision_go_proto
552 google/cloud/vision/v1p3beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
553 google/cloud/vision/v1p3beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
554 google/cloud/vision/v1p3beta1/product_search.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
555 google/cloud/vision/v1p3beta1/product_search_service.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
556 google/cloud/vision/v1p3beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
557 google/cloud/vision/v1p3beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p3beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p3beta1,@go_googleapis//google/cloud/vision/v1p3beta1:vision_go_proto
558 google/cloud/websecurityscanner/v1alpha/crawled_url.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
559 google/cloud/websecurityscanner/v1alpha/finding.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
560 google/cloud/websecurityscanner/v1alpha/finding_addon.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
561 google/cloud/websecurityscanner/v1alpha/finding_type_stats.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
562 google/cloud/websecurityscanner/v1alpha/scan_config.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
563 google/cloud/websecurityscanner/v1alpha/scan_run.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
564 google/cloud/websecurityscanner/v1alpha/web_security_scanner.proto,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1alpha,@go_googleapis//google/cloud/websecurityscanner/v1alpha:websecurityscanner_go_proto
565 google/container/v1/cluster_service.proto,@go_googleapis//google/container/v1:container_proto,google.golang.org/genproto/googleapis/container/v1,@go_googleapis//google/container/v1:container_go_proto
566 google/container/v1alpha1/cluster_service.proto,@go_googleapis//google/container/v1alpha1:container_proto,google.golang.org/genproto/googleapis/container/v1alpha1,@go_googleapis//google/container/v1alpha1:container_go_proto
567 google/container/v1beta1/cluster_service.proto,@go_googleapis//google/container/v1beta1:container_proto,google.golang.org/genproto/googleapis/container/v1beta1,@go_googleapis//google/container/v1beta1:container_go_proto
568 google/datastore/admin/v1/datastore_admin.proto,@go_googleapis//google/datastore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/datastore/admin/v1,@go_googleapis//google/datastore/admin/v1:admin_go_proto
569 google/datastore/admin/v1/index.proto,@go_googleapis//google/datastore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/datastore/admin/v1,@go_googleapis//google/datastore/admin/v1:admin_go_proto
570 google/datastore/admin/v1beta1/datastore_admin.proto,@go_googleapis//google/datastore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/datastore/admin/v1beta1,@go_googleapis//google/datastore/admin/v1beta1:admin_go_proto
571 google/datastore/v1/datastore.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
572 google/datastore/v1/entity.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
573 google/datastore/v1/query.proto,@go_googleapis//google/datastore/v1:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1,@go_googleapis//google/datastore/v1:datastore_go_proto
574 google/datastore/v1beta3/datastore.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
575 google/datastore/v1beta3/entity.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
576 google/datastore/v1beta3/query.proto,@go_googleapis//google/datastore/v1beta3:datastore_proto,google.golang.org/genproto/googleapis/datastore/v1beta3,@go_googleapis//google/datastore/v1beta3:datastore_go_proto
577 google/devtools/build/v1/build_events.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
578 google/devtools/build/v1/build_status.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
579 google/devtools/build/v1/publish_build_event.proto,@go_googleapis//google/devtools/build/v1:build_proto,google.golang.org/genproto/googleapis/devtools/build/v1,@go_googleapis//google/devtools/build/v1:build_go_proto
580 google/devtools/cloudbuild/v1/cloudbuild.proto,@go_googleapis//google/devtools/cloudbuild/v1:cloudbuild_proto,google.golang.org/genproto/googleapis/devtools/cloudbuild/v1,@go_googleapis//google/devtools/cloudbuild/v1:cloudbuild_go_proto
581 google/devtools/clouddebugger/v2/controller.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
582 google/devtools/clouddebugger/v2/data.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
583 google/devtools/clouddebugger/v2/debugger.proto,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_proto,google.golang.org/genproto/googleapis/devtools/clouddebugger/v2,@go_googleapis//google/devtools/clouddebugger/v2:clouddebugger_go_proto
584 google/devtools/clouderrorreporting/v1beta1/common.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
585 google/devtools/clouderrorreporting/v1beta1/error_group_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
586 google/devtools/clouderrorreporting/v1beta1/error_stats_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
587 google/devtools/clouderrorreporting/v1beta1/report_errors_service.proto,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_proto,google.golang.org/genproto/googleapis/devtools/clouderrorreporting/v1beta1,@go_googleapis//google/devtools/clouderrorreporting/v1beta1:clouderrorreporting_go_proto
588 google/devtools/cloudprofiler/v2/profiler.proto,@go_googleapis//google/devtools/cloudprofiler/v2:cloudprofiler_proto,google.golang.org/genproto/googleapis/devtools/cloudprofiler/v2,@go_googleapis//google/devtools/cloudprofiler/v2:cloudprofiler_go_proto
589 google/devtools/cloudtrace/v1/trace.proto,@go_googleapis//google/devtools/cloudtrace/v1:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v1,@go_googleapis//google/devtools/cloudtrace/v1:cloudtrace_go_proto
590 google/devtools/cloudtrace/v2/trace.proto,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v2,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_go_proto
591 google/devtools/cloudtrace/v2/tracing.proto,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_proto,google.golang.org/genproto/googleapis/devtools/cloudtrace/v2,@go_googleapis//google/devtools/cloudtrace/v2:cloudtrace_go_proto
592 google/devtools/containeranalysis/v1alpha1/bill_of_materials.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
593 google/devtools/containeranalysis/v1alpha1/containeranalysis.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
594 google/devtools/containeranalysis/v1alpha1/image_basis.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
595 google/devtools/containeranalysis/v1alpha1/package_vulnerability.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
596 google/devtools/containeranalysis/v1alpha1/provenance.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
597 google/devtools/containeranalysis/v1alpha1/source_context.proto,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1alpha1,@go_googleapis//google/devtools/containeranalysis/v1alpha1:containeranalysis_go_proto
598 google/devtools/containeranalysis/v1beta1/attestation/attestation.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/attestation:attestation_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/attestation,@go_googleapis//google/devtools/containeranalysis/v1beta1/attestation:attestation_go_proto
599 google/devtools/containeranalysis/v1beta1/build/build.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/build:build_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/build,@go_googleapis//google/devtools/containeranalysis/v1beta1/build:build_go_proto
600 google/devtools/containeranalysis/v1beta1/common/common.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/common:common_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/common,@go_googleapis//google/devtools/containeranalysis/v1beta1/common:common_go_proto
601 google/devtools/containeranalysis/v1beta1/containeranalysis.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1,@go_googleapis//google/devtools/containeranalysis/v1beta1:containeranalysis_go_proto
602 google/devtools/containeranalysis/v1beta1/deployment/deployment.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/deployment:deployment_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/deployment,@go_googleapis//google/devtools/containeranalysis/v1beta1/deployment:deployment_go_proto
603 google/devtools/containeranalysis/v1beta1/discovery/discovery.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/discovery:discovery_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/discovery,@go_googleapis//google/devtools/containeranalysis/v1beta1/discovery:discovery_go_proto
604 google/devtools/containeranalysis/v1beta1/grafeas/grafeas.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/grafeas:grafeas_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/grafeas,@go_googleapis//google/devtools/containeranalysis/v1beta1/grafeas:grafeas_go_proto
605 google/devtools/containeranalysis/v1beta1/image/image.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/image:image_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/image,@go_googleapis//google/devtools/containeranalysis/v1beta1/image:image_go_proto
606 google/devtools/containeranalysis/v1beta1/package/package.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/package:package_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/package,@go_googleapis//google/devtools/containeranalysis/v1beta1/package:package_go_proto
607 google/devtools/containeranalysis/v1beta1/provenance/provenance.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/provenance:provenance_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/provenance,@go_googleapis//google/devtools/containeranalysis/v1beta1/provenance:provenance_go_proto
608 google/devtools/containeranalysis/v1beta1/source/source.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/source:source_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/source,@go_googleapis//google/devtools/containeranalysis/v1beta1/source:source_go_proto
609 google/devtools/containeranalysis/v1beta1/vulnerability/vulnerability.proto,@go_googleapis//google/devtools/containeranalysis/v1beta1/vulnerability:vulnerability_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1beta1/vulnerability,@go_googleapis//google/devtools/containeranalysis/v1beta1/vulnerability:vulnerability_go_proto
610 google/devtools/remoteexecution/v1test/remote_execution.proto,@go_googleapis//google/devtools/remoteexecution/v1test:remoteexecution_proto,google.golang.org/genproto/googleapis/devtools/remoteexecution/v1test,@go_googleapis//google/devtools/remoteexecution/v1test:remoteexecution_go_proto
611 google/devtools/remoteworkers/v1test2/bots.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
612 google/devtools/remoteworkers/v1test2/command.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
613 google/devtools/remoteworkers/v1test2/tasks.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
614 google/devtools/remoteworkers/v1test2/worker.proto,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_proto,google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2,@go_googleapis//google/devtools/remoteworkers/v1test2:remoteworkers_go_proto
615 google/devtools/resultstore/v2/action.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
616 google/devtools/resultstore/v2/common.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
617 google/devtools/resultstore/v2/configuration.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
618 google/devtools/resultstore/v2/configured_target.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
619 google/devtools/resultstore/v2/coverage.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
620 google/devtools/resultstore/v2/coverage_summary.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
621 google/devtools/resultstore/v2/file.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
622 google/devtools/resultstore/v2/file_set.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
623 google/devtools/resultstore/v2/invocation.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
624 google/devtools/resultstore/v2/resultstore_download.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
625 google/devtools/resultstore/v2/resultstore_file_download.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
626 google/devtools/resultstore/v2/resultstore_upload.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
627 google/devtools/resultstore/v2/target.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
628 google/devtools/resultstore/v2/test_suite.proto,@go_googleapis//google/devtools/resultstore/v2:resultstore_proto,google.golang.org/genproto/googleapis/devtools/resultstore/v2,@go_googleapis//google/devtools/resultstore/v2:resultstore_go_proto
629 google/devtools/source/v1/source_context.proto,@go_googleapis//google/devtools/source/v1:source_proto,google.golang.org/genproto/googleapis/devtools/source/v1,@go_googleapis//google/devtools/source/v1:source_go_proto
630 google/devtools/sourcerepo/v1/sourcerepo.proto,@go_googleapis//google/devtools/sourcerepo/v1:sourcerepo_proto,google.golang.org/genproto/googleapis/devtools/sourcerepo/v1,@go_googleapis//google/devtools/sourcerepo/v1:sourcerepo_go_proto
631 google/example/library/v1/library.proto,@go_googleapis//google/example/library/v1:library_proto,google.golang.org/genproto/googleapis/example/library/v1,@go_googleapis//google/example/library/v1:library_go_proto
632 google/firestore/admin/v1/field.proto,@go_googleapis//google/firestore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1,@go_googleapis//google/firestore/admin/v1:admin_go_proto
633 google/firestore/admin/v1/firestore_admin.proto,@go_googleapis//google/firestore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1,@go_googleapis//google/firestore/admin/v1:admin_go_proto
634 google/firestore/admin/v1/index.proto,@go_googleapis//google/firestore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1,@go_googleapis//google/firestore/admin/v1:admin_go_proto
635 google/firestore/admin/v1/location.proto,@go_googleapis//google/firestore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1,@go_googleapis//google/firestore/admin/v1:admin_go_proto
636 google/firestore/admin/v1/operation.proto,@go_googleapis//google/firestore/admin/v1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1,@go_googleapis//google/firestore/admin/v1:admin_go_proto
637 google/firestore/admin/v1beta1/firestore_admin.proto,@go_googleapis//google/firestore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta1,@go_googleapis//google/firestore/admin/v1beta1:admin_go_proto
638 google/firestore/admin/v1beta1/index.proto,@go_googleapis//google/firestore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta1,@go_googleapis//google/firestore/admin/v1beta1:admin_go_proto
639 google/firestore/admin/v1beta1/location.proto,@go_googleapis//google/firestore/admin/v1beta1:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta1,@go_googleapis//google/firestore/admin/v1beta1:admin_go_proto
640 google/firestore/admin/v1beta2/field.proto,@go_googleapis//google/firestore/admin/v1beta2:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta2,@go_googleapis//google/firestore/admin/v1beta2:admin_go_proto
641 google/firestore/admin/v1beta2/firestore_admin.proto,@go_googleapis//google/firestore/admin/v1beta2:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta2,@go_googleapis//google/firestore/admin/v1beta2:admin_go_proto
642 google/firestore/admin/v1beta2/index.proto,@go_googleapis//google/firestore/admin/v1beta2:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta2,@go_googleapis//google/firestore/admin/v1beta2:admin_go_proto
643 google/firestore/admin/v1beta2/operation.proto,@go_googleapis//google/firestore/admin/v1beta2:admin_proto,google.golang.org/genproto/googleapis/firestore/admin/v1beta2,@go_googleapis//google/firestore/admin/v1beta2:admin_go_proto
644 google/firestore/v1/common.proto,@go_googleapis//google/firestore/v1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1,@go_googleapis//google/firestore/v1:firestore_go_proto
645 google/firestore/v1/document.proto,@go_googleapis//google/firestore/v1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1,@go_googleapis//google/firestore/v1:firestore_go_proto
646 google/firestore/v1/firestore.proto,@go_googleapis//google/firestore/v1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1,@go_googleapis//google/firestore/v1:firestore_go_proto
647 google/firestore/v1/query.proto,@go_googleapis//google/firestore/v1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1,@go_googleapis//google/firestore/v1:firestore_go_proto
648 google/firestore/v1/write.proto,@go_googleapis//google/firestore/v1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1,@go_googleapis//google/firestore/v1:firestore_go_proto
649 google/firestore/v1beta1/common.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
650 google/firestore/v1beta1/document.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
651 google/firestore/v1beta1/firestore.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
652 google/firestore/v1beta1/query.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
653 google/firestore/v1beta1/write.proto,@go_googleapis//google/firestore/v1beta1:firestore_proto,google.golang.org/genproto/googleapis/firestore/v1beta1,@go_googleapis//google/firestore/v1beta1:firestore_go_proto
654 google/genomics/v1/annotations.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
655 google/genomics/v1/cigar.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
656 google/genomics/v1/datasets.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
657 google/genomics/v1/operations.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
658 google/genomics/v1/position.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
659 google/genomics/v1/range.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
660 google/genomics/v1/readalignment.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
661 google/genomics/v1/readgroup.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
662 google/genomics/v1/readgroupset.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
663 google/genomics/v1/reads.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
664 google/genomics/v1/references.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
665 google/genomics/v1/variants.proto,@go_googleapis//google/genomics/v1:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1,@go_googleapis//google/genomics/v1:genomics_go_proto
666 google/genomics/v1alpha2/pipelines.proto,@go_googleapis//google/genomics/v1alpha2:genomics_proto,google.golang.org/genproto/googleapis/genomics/v1alpha2,@go_googleapis//google/genomics/v1alpha2:genomics_go_proto
667 google/home/graph/v1/device.proto,@go_googleapis//google/home/graph/v1:graph_proto,google.golang.org/genproto/googleapis/home/graph/v1,@go_googleapis//google/home/graph/v1:graph_go_proto
668 google/home/graph/v1/homegraph.proto,@go_googleapis//google/home/graph/v1:graph_proto,google.golang.org/genproto/googleapis/home/graph/v1,@go_googleapis//google/home/graph/v1:graph_go_proto
669 google/iam/admin/v1/iam.proto,@go_googleapis//google/iam/admin/v1:admin_proto,google.golang.org/genproto/googleapis/iam/admin/v1,@go_googleapis//google/iam/admin/v1:admin_go_proto
670 google/iam/credentials/v1/common.proto,@go_googleapis//google/iam/credentials/v1:credentials_proto,google.golang.org/genproto/googleapis/iam/credentials/v1,@go_googleapis//google/iam/credentials/v1:credentials_go_proto
671 google/iam/credentials/v1/iamcredentials.proto,@go_googleapis//google/iam/credentials/v1:credentials_proto,google.golang.org/genproto/googleapis/iam/credentials/v1,@go_googleapis//google/iam/credentials/v1:credentials_go_proto
672 google/iam/v1/iam_policy.proto,@go_googleapis//google/iam/v1:iam_proto,google.golang.org/genproto/googleapis/iam/v1,@go_googleapis//google/iam/v1:iam_go_proto
673 google/iam/v1/logging/audit_data.proto,@go_googleapis//google/iam/v1/logging:logging_proto,google.golang.org/genproto/googleapis/iam/v1/logging,@go_googleapis//google/iam/v1/logging:logging_go_proto
674 google/iam/v1/policy.proto,@go_googleapis//google/iam/v1:iam_proto,google.golang.org/genproto/googleapis/iam/v1,@go_googleapis//google/iam/v1:iam_go_proto
675 google/logging/type/http_request.proto,@go_googleapis//google/logging/type:ltype_proto,google.golang.org/genproto/googleapis/logging/type,@go_googleapis//google/logging/type:ltype_go_proto
676 google/logging/type/log_severity.proto,@go_googleapis//google/logging/type:ltype_proto,google.golang.org/genproto/googleapis/logging/type,@go_googleapis//google/logging/type:ltype_go_proto
677 google/logging/v2/log_entry.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
678 google/logging/v2/logging.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
679 google/logging/v2/logging_config.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
680 google/logging/v2/logging_metrics.proto,@go_googleapis//google/logging/v2:logging_proto,google.golang.org/genproto/googleapis/logging/v2,@go_googleapis//google/logging/v2:logging_go_proto
681 google/longrunning/operations.proto,@go_googleapis//google/longrunning:longrunning_proto,google.golang.org/genproto/googleapis/longrunning,@go_googleapis//google/longrunning:longrunning_go_proto
682 google/monitoring/v3/alert.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
683 google/monitoring/v3/alert_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
684 google/monitoring/v3/common.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
685 google/monitoring/v3/dropped_labels.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
686 google/monitoring/v3/group.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
687 google/monitoring/v3/group_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
688 google/monitoring/v3/metric.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
689 google/monitoring/v3/metric_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
690 google/monitoring/v3/mutation_record.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
691 google/monitoring/v3/notification.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
692 google/monitoring/v3/notification_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
693 google/monitoring/v3/span_context.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
694 google/monitoring/v3/uptime.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
695 google/monitoring/v3/uptime_service.proto,@go_googleapis//google/monitoring/v3:monitoring_proto,google.golang.org/genproto/googleapis/monitoring/v3,@go_googleapis//google/monitoring/v3:monitoring_go_proto
696 google/privacy/dlp/v2/dlp.proto,@go_googleapis//google/privacy/dlp/v2:dlp_proto,google.golang.org/genproto/googleapis/privacy/dlp/v2,@go_googleapis//google/privacy/dlp/v2:dlp_go_proto
697 google/privacy/dlp/v2/storage.proto,@go_googleapis//google/privacy/dlp/v2:dlp_proto,google.golang.org/genproto/googleapis/privacy/dlp/v2,@go_googleapis//google/privacy/dlp/v2:dlp_go_proto
698 google/pubsub/v1/pubsub.proto,@go_googleapis//google/pubsub/v1:pubsub_proto,google.golang.org/genproto/googleapis/pubsub/v1,@go_googleapis//google/pubsub/v1:pubsub_go_proto
699 google/pubsub/v1beta2/pubsub.proto,@go_googleapis//google/pubsub/v1beta2:pubsub_proto,google.golang.org/genproto/googleapis/pubsub/v1beta2,@go_googleapis//google/pubsub/v1beta2:pubsub_go_proto
700 google/rpc/code.proto,@go_googleapis//google/rpc:code_proto,google.golang.org/genproto/googleapis/rpc/code,@go_googleapis//google/rpc:code_go_proto
701 google/rpc/error_details.proto,@go_googleapis//google/rpc:errdetails_proto,google.golang.org/genproto/googleapis/rpc/errdetails,@go_googleapis//google/rpc:errdetails_go_proto
702 google/rpc/status.proto,@go_googleapis//google/rpc:status_proto,google.golang.org/genproto/googleapis/rpc/status,@go_googleapis//google/rpc:status_go_proto
703 google/spanner/admin/database/v1/spanner_database_admin.proto,@go_googleapis//google/spanner/admin/database/v1:database_proto,google.golang.org/genproto/googleapis/spanner/admin/database/v1,@go_googleapis//google/spanner/admin/database/v1:database_go_proto
704 google/spanner/admin/instance/v1/spanner_instance_admin.proto,@go_googleapis//google/spanner/admin/instance/v1:instance_proto,google.golang.org/genproto/googleapis/spanner/admin/instance/v1,@go_googleapis//google/spanner/admin/instance/v1:instance_go_proto
705 google/spanner/v1/keys.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
706 google/spanner/v1/mutation.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
707 google/spanner/v1/query_plan.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
708 google/spanner/v1/result_set.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
709 google/spanner/v1/spanner.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
710 google/spanner/v1/transaction.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
711 google/spanner/v1/type.proto,@go_googleapis//google/spanner/v1:spanner_proto,google.golang.org/genproto/googleapis/spanner/v1,@go_googleapis//google/spanner/v1:spanner_go_proto
712 google/storagetransfer/v1/transfer.proto,@go_googleapis//google/storagetransfer/v1:storagetransfer_proto,google.golang.org/genproto/googleapis/storagetransfer/v1,@go_googleapis//google/storagetransfer/v1:storagetransfer_go_proto
713 google/storagetransfer/v1/transfer_types.proto,@go_googleapis//google/storagetransfer/v1:storagetransfer_proto,google.golang.org/genproto/googleapis/storagetransfer/v1,@go_googleapis//google/storagetransfer/v1:storagetransfer_go_proto
714 google/streetview/publish/v1/resources.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
715 google/streetview/publish/v1/rpcmessages.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
716 google/streetview/publish/v1/streetview_publish.proto,@go_googleapis//google/streetview/publish/v1:publish_proto,google.golang.org/genproto/googleapis/streetview/publish/v1,@go_googleapis//google/streetview/publish/v1:publish_go_proto
717 google/type/color.proto,@go_googleapis//google/type:color_proto,google.golang.org/genproto/googleapis/type/color,@go_googleapis//google/type:color_go_proto
718 google/type/date.proto,@go_googleapis//google/type:date_proto,google.golang.org/genproto/googleapis/type/date,@go_googleapis//google/type:date_go_proto
719 google/type/dayofweek.proto,@go_googleapis//google/type:dayofweek_proto,google.golang.org/genproto/googleapis/type/dayofweek,@go_googleapis//google/type:dayofweek_go_proto
720 google/type/latlng.proto,@go_googleapis//google/type:latlng_proto,google.golang.org/genproto/googleapis/type/latlng,@go_googleapis//google/type:latlng_go_proto
721 google/type/money.proto,@go_googleapis//google/type:money_proto,google.golang.org/genproto/googleapis/type/money,@go_googleapis//google/type:money_go_proto
722 google/type/postal_address.proto,@go_googleapis//google/type:postaladdress_proto,google.golang.org/genproto/googleapis/type/postaladdress,@go_googleapis//google/type:postaladdress_go_proto
723 google/type/timeofday.proto,@go_googleapis//google/type:timeofday_proto,google.golang.org/genproto/googleapis/type/timeofday,@go_googleapis//google/type:timeofday_go_proto
724 google/watcher/v1/watch.proto,@go_googleapis//google/watcher/v1:watcher_proto,google.golang.org/genproto/googleapis/watcher/v1,@go_googleapis//google/watcher/v1:watcher_go_proto

View File

@ -20,21 +20,33 @@ import (
"fmt"
"log"
"path"
"sort"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/label"
"github.com/bazelbuild/bazel-gazelle/internal/repos"
"github.com/bazelbuild/bazel-gazelle/internal/resolve"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/label"
"github.com/bazelbuild/bazel-gazelle/repo"
"github.com/bazelbuild/bazel-gazelle/resolve"
"github.com/bazelbuild/bazel-gazelle/rule"
)
func (_ *protoLang) Imports(c *config.Config, r *rule.Rule, f *rule.File) []resolve.ImportSpec {
rel := f.Pkg
srcs := r.AttrStrings("srcs")
imports := make([]resolve.ImportSpec, len(srcs))
pc := GetProtoConfig(c)
prefix := rel
if pc.stripImportPrefix != "" {
prefix = strings.TrimPrefix(rel, pc.stripImportPrefix[1:])
if rel == prefix {
return nil
}
}
if pc.importPrefix != "" {
prefix = path.Join(pc.importPrefix, prefix)
}
for i, src := range srcs {
imports[i] = resolve.ImportSpec{Lang: "proto", Imp: path.Join(rel, src)}
imports[i] = resolve.ImportSpec{Lang: "proto", Imp: path.Join(prefix, src)}
}
return imports
}
@ -43,28 +55,31 @@ func (_ *protoLang) Embeds(r *rule.Rule, from label.Label) []label.Label {
return nil
}
func (_ *protoLang) Resolve(c *config.Config, ix *resolve.RuleIndex, rc *repos.RemoteCache, r *rule.Rule, from label.Label) {
pc := GetProtoConfig(c)
importsRaw := r.PrivateAttr(config.GazelleImportsKey)
func (_ *protoLang) Resolve(c *config.Config, ix *resolve.RuleIndex, rc *repo.RemoteCache, r *rule.Rule, importsRaw interface{}, from label.Label) {
if importsRaw == nil {
// may not be set in tests.
return
}
imports := importsRaw.([]string)
r.DelAttr("deps")
deps := make([]string, 0, len(imports))
depSet := make(map[string]bool)
for _, imp := range imports {
l, err := resolveProto(pc, ix, r, imp, from)
l, err := resolveProto(c, ix, r, imp, from)
if err == skipImportError {
continue
} else if err != nil {
log.Print(err)
} else {
l = l.Rel(from.Repo, from.Pkg)
deps = append(deps, l.String())
depSet[l.String()] = true
}
}
if len(deps) > 0 {
if len(depSet) > 0 {
deps := make([]string, 0, len(depSet))
for dep := range depSet {
deps = append(deps, dep)
}
sort.Strings(deps)
r.SetAttr("deps", deps)
}
}
@ -74,11 +89,16 @@ var (
notFoundError = errors.New("not found")
)
func resolveProto(pc *ProtoConfig, ix *resolve.RuleIndex, r *rule.Rule, imp string, from label.Label) (label.Label, error) {
func resolveProto(c *config.Config, ix *resolve.RuleIndex, r *rule.Rule, imp string, from label.Label) (label.Label, error) {
pc := GetProtoConfig(c)
if !strings.HasSuffix(imp, ".proto") {
return label.NoLabel, fmt.Errorf("can't import non-proto: %q", imp)
}
if l, ok := resolve.FindRuleWithOverride(c, resolve.ImportSpec{Imp: imp, Lang: "proto"}, "proto"); ok {
return l, nil
}
if l, ok := knownImports[imp]; ok && pc.Mode.ShouldUseKnownImports() {
if l.Equal(from) {
return label.NoLabel, skipImportError

View File

@ -0,0 +1,13 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"fix.go",
"merger.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/merger",
importpath = "github.com/bazelbuild/bazel-gazelle/merger",
visibility = ["//visibility:public"],
deps = ["//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library"],
)

View File

@ -19,7 +19,7 @@ import (
"fmt"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// FixLoads removes loads of unused go rules and adds loads of newly used rules.

View File

@ -13,37 +13,88 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
// Package merger provides methods for merging parsed BUILD files.
// Package merger provides functions for merging generated rules into
// existing build files.
//
// Gazelle's normal workflow is roughly as follows:
//
// 1. Read metadata from sources.
//
// 2. Generate new rules.
//
// 3. Merge newly generated rules with rules in the existing build file
// if there is one.
//
// 4. Build an index of merged library rules for dependency resolution.
//
// 5. Resolve dependencies (i.e., convert import strings to deps labels).
//
// 6. Merge the newly resolved dependencies.
//
// 7. Write the merged file back to disk.
//
// This package is used for sets 3 and 6 above.
package merger
import (
"fmt"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// Phase indicates which attributes should be merged in matching rules.
//
// The pre-resolve merge is performed before rules are indexed for dependency
// resolution. All attributes not related to dependencies are merged. This
// merge must be performed indexing because attributes related to indexing
// (e.g., srcs, importpath) will be affected.
//
// The post-resolve merge is performed after rules are indexed. All attributes
// related to dependencies are merged.
type Phase int
const (
// The pre-resolve merge is performed before rules are indexed for dependency
// resolution. All attributes not related to dependencies are merged
// (i.e., rule.KindInfo.MergeableAttrs). This merge must be performed
// before indexing because attributes related to indexing (e.g.,
// srcs, importpath) will be affected.
PreResolve Phase = iota
// The post-resolve merge is performed after rules are indexed. All attributes
// related to dependencies are merged (i.e., rule.KindInfo.ResolveAttrs).
PostResolve
)
// MergeFile merges the rules in genRules with matching rules in f and
// adds unmatched rules to the end of the merged file. MergeFile also merges
// rules in empty with matching rules in f and deletes rules that
// are empty after merging. attrs is the set of attributes to merge. Attributes
// not in this set will be left alone if they already exist.
// MergeFile combines information from newly generated rules with matching
// rules in an existing build file. MergeFile can also delete rules which
// are empty after merging.
//
// oldFile is the file to merge. It must not be nil.
//
// emptyRules is a list of stub rules (with no attributes other than name)
// which were not generated. These are merged with matching rules. The merged
// rules are deleted if they contain no attributes that make them buildable
// (e.g., srcs, deps, anything in rule.KindInfo.NonEmptyAttrs).
//
// genRules is a list of newly generated rules. These are merged with
// matching rules. A rule matches if it has the same kind and name or if
// some other attribute in rule.KindInfo.MatchAttrs matches (e.g.,
// "importpath" in go_library). Elements of genRules that don't match
// any existing rule are appended to the end of oldFile.
//
// phase indicates whether this is a pre- or post-resolve merge. Different
// attributes (rule.KindInfo.MergeableAttrs or ResolveAttrs) will be merged.
//
// kinds maps rule kinds (e.g., "go_library") to metadata that helps merge
// rules of that kind.
//
// When a generated and existing rule are merged, each attribute is merged
// separately. If an attribute is mergeable (according to KindInfo), values
// from the existing attribute are replaced by values from the generated
// attribute. Comments are preserved on values that are present in both
// versions of the attribute. If at attribute is not mergeable, the generated
// version of the attribute will be added if no existing attribute is present;
// otherwise, the existing attribute will be preserved.
//
// Note that "# keep" comments affect merging. If a value within an existing
// attribute is marked with a "# keep" comment, it will not be removed.
// If an attribute is marked with a "# keep" comment, it will not be merged.
// If a rule is marked with a "# keep" comment, the whole rule will not
// be modified.
func MergeFile(oldFile *rule.File, emptyRules, genRules []*rule.Rule, phase Phase, kinds map[string]rule.KindInfo) {
getMergeAttrs := func(r *rule.Rule) map[string]bool {
if phase == PreResolve {

View File

@ -3,7 +3,7 @@ load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["path.go"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/pathtools",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/pathtools",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/pathtools",
importpath = "github.com/bazelbuild/bazel-gazelle/pathtools",
visibility = ["//visibility:public"],
)

View File

@ -13,6 +13,10 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
// Package pathtools provides utilities for manipulating paths. Most paths
// within Gazelle are slash-separated paths, relative to the repository root
// directory. The repository root directory is represented by the empty
// string. Paths in this format may be used directly as package names in labels.
package pathtools
import (

View File

@ -0,0 +1,22 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"dep.go",
"godep.go",
"modules.go",
"remote.go",
"repo.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/repo",
importpath = "github.com/bazelbuild/bazel-gazelle/repo",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/pathtools:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library",
"//vendor/github.com/pelletier/go-toml:go_default_library",
"//vendor/golang.org/x/tools/go/vcs:go_default_library",
],
)

View File

@ -13,12 +13,12 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package repos
package repo
import (
"io/ioutil"
"github.com/bazelbuild/bazel-gazelle/internal/label"
"github.com/bazelbuild/bazel-gazelle/label"
toml "github.com/pelletier/go-toml"
)
@ -32,7 +32,7 @@ type depProject struct {
Source string `toml:"source"`
}
func importRepoRulesDep(filename string) ([]Repo, error) {
func importRepoRulesDep(filename string, _ *RemoteCache) ([]Repo, error) {
data, err := ioutil.ReadFile(filename)
if err != nil {
return nil, err
@ -44,11 +44,21 @@ func importRepoRulesDep(filename string) ([]Repo, error) {
var repos []Repo
for _, p := range file.Projects {
var vcs string
if p.Source != "" {
// TODO(#411): Handle source directives correctly. It may be an import
// path, or a URL. In the case of an import path, we should resolve it
// to the correct remote and vcs. In the case of a URL, we should
// correctly determine what VCS to use (the URL will usually start
// with "https://", which is used by multiple VCSs).
vcs = "git"
}
repos = append(repos, Repo{
Name: label.ImportPathToBazelRepoName(p.Name),
GoPrefix: p.Name,
Commit: p.Revision,
Remote: p.Source,
VCS: vcs,
})
}
return repos, nil

View File

@ -0,0 +1,96 @@
/* Copyright 2019 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package repo
import (
"encoding/json"
"fmt"
"io/ioutil"
"sync"
"github.com/bazelbuild/bazel-gazelle/label"
)
type goDepLockFile struct {
ImportPath string
GoVersion string
GodepVersion string
Packages []string
Deps []goDepProject
}
type goDepProject struct {
ImportPath string
Rev string
}
func importRepoRulesGoDep(filename string, cache *RemoteCache) ([]Repo, error) {
data, err := ioutil.ReadFile(filename)
if err != nil {
return nil, err
}
file := goDepLockFile{}
if err := json.Unmarshal(data, &file); err != nil {
return nil, err
}
var wg sync.WaitGroup
roots := make([]string, len(file.Deps))
errs := make([]error, len(file.Deps))
wg.Add(len(file.Deps))
for i, p := range file.Deps {
go func(i int, p goDepProject) {
defer wg.Done()
rootRepo, _, err := cache.Root(p.ImportPath)
if err != nil {
errs[i] = err
} else {
roots[i] = rootRepo
}
}(i, p)
}
wg.Wait()
var repos []Repo
for _, err := range errs {
if err != nil {
return nil, err
}
}
repoToRev := make(map[string]string)
for i, p := range file.Deps {
repoRoot := roots[i]
if rev, ok := repoToRev[repoRoot]; !ok {
repos = append(repos, Repo{
Name: label.ImportPathToBazelRepoName(repoRoot),
GoPrefix: repoRoot,
Commit: p.Rev,
})
repoToRev[repoRoot] = p.Rev
} else {
if p.Rev != rev {
return nil, fmt.Errorf("Repo %s imported at multiple revisions: %s, %s", repoRoot, p.Rev, rev)
}
}
}
return repos, nil
}

View File

@ -0,0 +1,161 @@
/* Copyright 2018 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package repo
import (
"bytes"
"encoding/json"
"io"
"io/ioutil"
"os"
"os/exec"
"path/filepath"
"regexp"
"runtime"
"strings"
"github.com/bazelbuild/bazel-gazelle/label"
)
type module struct {
Path, Version string
Main bool
}
// Per the `go help modules` documentation:
// There are three pseudo-version forms:
//
// vX.0.0-yyyymmddhhmmss-abcdefabcdef is used when there is no earlier
// versioned commit with an appropriate major version before the target commit.
// (This was originally the only form, so some older go.mod files use this form
// even for commits that do follow tags.)
//
// vX.Y.Z-pre.0.yyyymmddhhmmss-abcdefabcdef is used when the most
// recent versioned commit before the target commit is vX.Y.Z-pre.
//
// vX.Y.(Z+1)-0.yyyymmddhhmmss-abcdefabcdef is used when the most
// recent versioned commit before the target commit is vX.Y.Z.
//
// We need to match all three of these with the following regexp.
var regexMixedVersioning = regexp.MustCompile(`^(.*?)[-.]((?:0\.|)[0-9]{14})-([a-fA-F0-9]{12})$`)
func toRepoRule(mod module) Repo {
var tag, commit string
if gr := regexMixedVersioning.FindStringSubmatch(mod.Version); gr != nil {
commit = gr[3]
} else {
tag = strings.TrimSuffix(mod.Version, "+incompatible")
}
return Repo{
Name: label.ImportPathToBazelRepoName(mod.Path),
GoPrefix: mod.Path,
Commit: commit,
Tag: tag,
}
}
func importRepoRulesModules(filename string, _ *RemoteCache) (repos []Repo, err error) {
tempDir, err := copyGoModToTemp(filename)
if err != nil {
return nil, err
}
defer os.RemoveAll(tempDir)
data, err := goListModulesFn(tempDir)
if err != nil {
return nil, err
}
dec := json.NewDecoder(bytes.NewReader(data))
for dec.More() {
var mod module
if err := dec.Decode(&mod); err != nil {
return nil, err
}
if mod.Main {
continue
}
repos = append(repos, toRepoRule(mod))
}
return repos, nil
}
// goListModulesFn may be overridden by tests.
var goListModulesFn = goListModules
// goListModules invokes "go list" in a directory containing a go.mod file.
func goListModules(dir string) ([]byte, error) {
goTool := findGoTool()
cmd := exec.Command(goTool, "list", "-m", "-json", "all")
cmd.Stderr = os.Stderr
cmd.Dir = dir
data, err := cmd.Output()
return data, err
}
// copyGoModToTemp copies to given go.mod file to a temporary directory.
// go list tends to mutate go.mod files, but gazelle shouldn't do that.
func copyGoModToTemp(filename string) (tempDir string, err error) {
goModOrig, err := os.Open(filename)
if err != nil {
return "", err
}
defer goModOrig.Close()
tempDir, err = ioutil.TempDir("", "gazelle-temp-gomod")
if err != nil {
return "", err
}
goModCopy, err := os.Create(filepath.Join(tempDir, "go.mod"))
if err != nil {
os.Remove(tempDir)
return "", err
}
defer func() {
if cerr := goModCopy.Close(); err == nil && cerr != nil {
err = cerr
}
}()
_, err = io.Copy(goModCopy, goModOrig)
if err != nil {
os.RemoveAll(tempDir)
return "", err
}
return tempDir, err
}
// findGoTool attempts to locate the go executable. If GOROOT is set, we'll
// prefer the one in there; otherwise, we'll rely on PATH. If the wrapper
// script generated by the gazelle rule is invoked by Bazel, it will set
// GOROOT to the configured SDK. We don't want to rely on the host SDK in
// that situation.
func findGoTool() string {
path := "go" // rely on PATH by default
if goroot, ok := os.LookupEnv("GOROOT"); ok {
path = filepath.Join(goroot, "bin", "go")
}
if runtime.GOOS == "windows" {
path += ".exe"
}
return path
}

View File

@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package repos
package repo
import (
"bytes"
@ -24,8 +24,8 @@ import (
"strings"
"sync"
"github.com/bazelbuild/bazel-gazelle/internal/label"
"github.com/bazelbuild/bazel-gazelle/internal/pathtools"
"github.com/bazelbuild/bazel-gazelle/label"
"github.com/bazelbuild/bazel-gazelle/pathtools"
"golang.org/x/tools/go/vcs"
)

View File

@ -13,7 +13,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package repos
package repo
import (
"fmt"
@ -22,7 +22,7 @@ import (
"sort"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// Repo describes an external repository rule declared in a Bazel
@ -61,23 +61,26 @@ type lockFileFormat int
const (
unknownFormat lockFileFormat = iota
depFormat
moduleFormat
godepFormat
)
var lockFileParsers = map[lockFileFormat]func(string) ([]Repo, error){
depFormat: importRepoRulesDep,
var lockFileParsers = map[lockFileFormat]func(string, *RemoteCache) ([]Repo, error){
depFormat: importRepoRulesDep,
moduleFormat: importRepoRulesModules,
godepFormat: importRepoRulesGoDep,
}
// ImportRepoRules reads the lock file of a vendoring tool and returns
// a list of equivalent repository rules that can be merged into a WORKSPACE
// file. The format of the file is inferred from its basename. Currently,
// only Gopkg.lock is supported.
func ImportRepoRules(filename string) ([]*rule.Rule, error) {
// file. The format of the file is inferred from its basename.
func ImportRepoRules(filename string, repoCache *RemoteCache) ([]*rule.Rule, error) {
format := getLockFileFormat(filename)
if format == unknownFormat {
return nil, fmt.Errorf(`%s: unrecognized lock file format. Expected "Gopkg.lock"`, filename)
return nil, fmt.Errorf(`%s: unrecognized lock file format. Expected "Gopkg.lock", "go.mod", or "Godeps.json"`, filename)
}
parser := lockFileParsers[format]
repos, err := parser(filename)
repos, err := parser(filename, repoCache)
if err != nil {
return nil, fmt.Errorf("error parsing %q: %v", filename, err)
}
@ -94,6 +97,10 @@ func getLockFileFormat(filename string) lockFileFormat {
switch filepath.Base(filename) {
case "Gopkg.lock":
return depFormat
case "go.mod":
return moduleFormat
case "Godeps.json":
return godepFormat
default:
return unknownFormat
}
@ -103,7 +110,12 @@ func getLockFileFormat(filename string) lockFileFormat {
// be written in a WORKSPACE file.
func GenerateRule(repo Repo) *rule.Rule {
r := rule.NewRule("go_repository", repo.Name)
r.SetAttr("commit", repo.Commit)
if repo.Commit != "" {
r.SetAttr("commit", repo.Commit)
}
if repo.Tag != "" {
r.SetAttr("tag", repo.Tag)
}
r.SetAttr("importpath", repo.GoPrefix)
if repo.Remote != "" {
r.SetAttr("remote", repo.Remote)

View File

@ -0,0 +1,18 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"config.go",
"index.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/resolve",
importpath = "github.com/bazelbuild/bazel-gazelle/resolve",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/repo:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library",
],
)

View File

@ -0,0 +1,115 @@
/* Copyright 2018 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package resolve
import (
"flag"
"log"
"strings"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/label"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// FindRuleWithOverride searches the current configuration for user-specified
// dependency resolution overrides. Overrides specified later (in configuration
// files in deeper directories, or closer to the end of the file) are
// returned first. If no override is found, label.NoLabel is returned.
func FindRuleWithOverride(c *config.Config, imp ImportSpec, lang string) (label.Label, bool) {
rc := getResolveConfig(c)
for i := len(rc.overrides) - 1; i >= 0; i-- {
o := rc.overrides[i]
if o.matches(imp, lang) {
return o.dep, true
}
}
return label.NoLabel, false
}
type overrideSpec struct {
imp ImportSpec
lang string
dep label.Label
}
func (o overrideSpec) matches(imp ImportSpec, lang string) bool {
return imp.Lang == o.imp.Lang &&
imp.Imp == o.imp.Imp &&
(o.lang == "" || o.lang == lang)
}
type resolveConfig struct {
overrides []overrideSpec
}
const resolveName = "_resolve"
func getResolveConfig(c *config.Config) *resolveConfig {
return c.Exts[resolveName].(*resolveConfig)
}
type Configurer struct{}
func (_ *Configurer) RegisterFlags(fs *flag.FlagSet, cmd string, c *config.Config) {
c.Exts[resolveName] = &resolveConfig{}
}
func (_ *Configurer) CheckFlags(fs *flag.FlagSet, c *config.Config) error { return nil }
func (_ *Configurer) KnownDirectives() []string {
return []string{"resolve"}
}
func (_ *Configurer) Configure(c *config.Config, rel string, f *rule.File) {
rc := getResolveConfig(c)
rcCopy := &resolveConfig{
overrides: rc.overrides[:],
}
if f != nil {
for _, d := range f.Directives {
if d.Key == "resolve" {
parts := strings.Fields(d.Value)
o := overrideSpec{}
var lbl string
if len(parts) == 3 {
o.imp.Lang = parts[0]
o.imp.Imp = parts[1]
lbl = parts[2]
} else if len(parts) == 4 {
o.imp.Lang = parts[0]
o.lang = parts[1]
o.imp.Imp = parts[2]
lbl = parts[3]
} else {
log.Printf("could not parse directive: %s\n\texpected gazelle:resolve source-language [import-language] import-string label", d.Value)
continue
}
var err error
o.dep, err = label.Parse(lbl)
if err != nil {
log.Printf("gazelle:resolve %s: %v", d.Value, err)
continue
}
o.dep = o.dep.Abs("", rel)
rcCopy.overrides = append(rcCopy.overrides, o)
}
}
}
c.Exts[resolveName] = rcCopy
}

View File

@ -18,10 +18,10 @@ package resolve
import (
"log"
"github.com/bazelbuild/bazel-gazelle/internal/config"
"github.com/bazelbuild/bazel-gazelle/internal/label"
"github.com/bazelbuild/bazel-gazelle/internal/repos"
"github.com/bazelbuild/bazel-gazelle/internal/rule"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/label"
"github.com/bazelbuild/bazel-gazelle/repo"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// ImportSpec describes a library to be imported. Imp is an import string for
@ -53,27 +53,28 @@ type Resolver interface {
Embeds(r *rule.Rule, from label.Label) []label.Label
// Resolve translates imported libraries for a given rule into Bazel
// dependencies. A list of imported libraries is typically stored in a
// private attribute of the rule when it's generated (this interface doesn't
// dictate how that is stored or represented). Resolve generates a "deps"
// attribute (or the appropriate language-specific equivalent) for each
// import according to language-specific rules and heuristics.
Resolve(c *config.Config, ix *RuleIndex, rc *repos.RemoteCache, r *rule.Rule, from label.Label)
// dependencies. Information about imported libraries is returned for each
// rule generated by language.GenerateRules in
// language.GenerateResult.Imports. Resolve generates a "deps" attribute (or
// the appropriate language-specific equivalent) for each import according to
// language-specific rules and heuristics.
Resolve(c *config.Config, ix *RuleIndex, rc *repo.RemoteCache, r *rule.Rule, imports interface{}, from label.Label)
}
// RuleIndex is a table of rules in a workspace, indexed by label and by
// import path. Used by Resolver to map import paths to labels.
type RuleIndex struct {
rules []*ruleRecord
labelMap map[label.Label]*ruleRecord
importMap map[ImportSpec][]*ruleRecord
kindToResolver map[string]Resolver
rules []*ruleRecord
labelMap map[label.Label]*ruleRecord
importMap map[ImportSpec][]*ruleRecord
mrslv func(r *rule.Rule, f *rule.File) Resolver
}
// ruleRecord contains information about a rule relevant to import indexing.
type ruleRecord struct {
rule *rule.Rule
label label.Label
file *rule.File
// importedAs is a list of ImportSpecs by which this rule may be imported.
// Used to build a map from ImportSpecs to ruleRecords.
@ -96,10 +97,10 @@ type ruleRecord struct {
//
// kindToResolver is a map from rule kinds (for example, "go_library") to
// Resolvers that support those kinds.
func NewRuleIndex(kindToResolver map[string]Resolver) *RuleIndex {
func NewRuleIndex(mrslv func(r *rule.Rule, f *rule.File) Resolver) *RuleIndex {
return &RuleIndex{
labelMap: make(map[label.Label]*ruleRecord),
kindToResolver: kindToResolver,
labelMap: make(map[label.Label]*ruleRecord),
mrslv: mrslv,
}
}
@ -110,7 +111,7 @@ func NewRuleIndex(kindToResolver map[string]Resolver) *RuleIndex {
// AddRule may only be called before Finish.
func (ix *RuleIndex) AddRule(c *config.Config, r *rule.Rule, f *rule.File) {
var imps []ImportSpec
if rslv, ok := ix.kindToResolver[r.Kind()]; ok {
if rslv := ix.mrslv(r, f); rslv != nil {
imps = rslv.Imports(c, r, f)
}
// If imps == nil, the rule is not importable. If imps is the empty slice,
@ -122,6 +123,7 @@ func (ix *RuleIndex) AddRule(c *config.Config, r *rule.Rule, f *rule.File) {
record := &ruleRecord{
rule: r,
label: label.New(c.RepoName, f.Pkg, r.Name()),
file: f,
importedAs: imps,
}
if _, ok := ix.labelMap[record.label]; ok {
@ -149,8 +151,9 @@ func (ix *RuleIndex) collectEmbeds(r *ruleRecord) {
if r.didCollectEmbeds {
return
}
resolver := ix.mrslv(r.rule, r.file)
r.didCollectEmbeds = true
embedLabels := ix.kindToResolver[r.rule.Kind()].Embeds(r.rule, r.label)
embedLabels := resolver.Embeds(r.rule, r.label)
r.embeds = embedLabels
for _, e := range embedLabels {
er, ok := ix.findRuleByLabel(e, r.label)
@ -158,7 +161,7 @@ func (ix *RuleIndex) collectEmbeds(r *ruleRecord) {
continue
}
ix.collectEmbeds(er)
if ix.kindToResolver[r.rule.Kind()] == ix.kindToResolver[er.rule.Kind()] {
if resolver == ix.mrslv(er.rule, er.file) {
er.embedded = true
r.embeds = append(r.embeds, er.embeds...)
}
@ -195,8 +198,6 @@ type FindResult struct {
// a matched rule.
Label label.Label
Rule *rule.Rule
// Embeds is the transitive closure of labels for rules that the matched
// rule embeds. It may contains duplicates and does not include the label
// for the rule itself.
@ -217,12 +218,11 @@ func (ix *RuleIndex) FindRulesByImport(imp ImportSpec, lang string) []FindResult
matches := ix.importMap[imp]
results := make([]FindResult, 0, len(matches))
for _, m := range matches {
if ix.kindToResolver[m.rule.Kind()].Name() != lang {
if ix.mrslv(m.rule, nil).Name() != lang {
continue
}
results = append(results, FindResult{
Label: m.label,
Rule: m.rule,
Embeds: m.embeds,
})
}

View File

@ -13,11 +13,11 @@ go_library(
"types.go",
"value.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/internal/rule",
importpath = "github.com/bazelbuild/bazel-gazelle/internal/rule",
visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/rule",
importpath = "github.com/bazelbuild/bazel-gazelle/rule",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/internal/label:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/label:go_default_library",
"//vendor/github.com/bazelbuild/buildtools/build:go_default_library",
"//vendor/github.com/bazelbuild/buildtools/tables:go_default_library",
],

View File

@ -20,7 +20,7 @@ import (
"log"
"strings"
"github.com/bazelbuild/bazel-gazelle/internal/label"
"github.com/bazelbuild/bazel-gazelle/label"
bzl "github.com/bazelbuild/buildtools/build"
)
@ -80,7 +80,7 @@ func MapExprStrings(e bzl.Expr, f func(string) string) bzl.Expr {
return &ret
case *bzl.CallExpr:
if x, ok := expr.X.(*bzl.LiteralExpr); !ok || x.Token != "select" || len(expr.List) != 1 {
if x, ok := expr.X.(*bzl.Ident); !ok || x.Name != "select" || len(expr.List) != 1 {
log.Panicf("unexpected call expression in generated imports: %#v", e)
}
arg := MapExprStrings(expr.List[0], f)
@ -170,7 +170,7 @@ func FlattenExpr(e bzl.Expr) bzl.Expr {
func isScalar(e bzl.Expr) bool {
switch e.(type) {
case *bzl.StringExpr, *bzl.LiteralExpr:
case *bzl.StringExpr, *bzl.LiteralExpr, *bzl.Ident:
return true
default:
return false
@ -250,8 +250,8 @@ func extractPlatformStringsExprs(expr bzl.Expr) (platformStringsExprs, error) {
ps.generic = part
case *bzl.CallExpr:
x, ok := part.X.(*bzl.LiteralExpr)
if !ok || x.Token != "select" || len(part.List) != 1 {
x, ok := part.X.(*bzl.Ident)
if !ok || x.Name != "select" || len(part.List) != 1 {
return platformStringsExprs{}, fmt.Errorf("expression could not be matched: callee other than select or wrong number of args")
}
arg, ok := part.List[0].(*bzl.DictExpr)
@ -307,7 +307,7 @@ func extractPlatformStringsExprs(expr bzl.Expr) (platformStringsExprs, error) {
func makePlatformStringsExpr(ps platformStringsExprs) bzl.Expr {
makeSelect := func(dict *bzl.DictExpr) bzl.Expr {
return &bzl.CallExpr{
X: &bzl.LiteralExpr{Token: "select"},
X: &bzl.Ident{Name: "select"},
List: []bzl.Expr{dict},
}
}

View File

@ -288,9 +288,9 @@ func SquashRules(src, dst *Rule, filename string) error {
}
}
}
dst.call.Comments.Before = append(dst.call.Comments.Before, src.call.Comments.Before...)
dst.call.Comments.Suffix = append(dst.call.Comments.Suffix, src.call.Comments.Suffix...)
dst.call.Comments.After = append(dst.call.Comments.After, src.call.Comments.After...)
dst.expr.Comment().Before = append(dst.expr.Comment().Before, src.expr.Comment().Before...)
dst.expr.Comment().Suffix = append(dst.expr.Comment().Suffix, src.expr.Comment().Suffix...)
dst.expr.Comment().After = append(dst.expr.Comment().After, src.expr.Comment().After...)
return nil
}

View File

@ -19,13 +19,14 @@ limitations under the License.
// is language agnostic, but it may be used for language-specific rules by
// providing configuration.
//
// File is the primary interface to this package. Rule and Load are used to
// create, read, update, and delete rules. Once modifications are performed,
// File.Sync() may be called to write the changes back to the original AST,
// which may then be formatted and written back to a file.
// File is the primary interface to this package. A File represents an
// individual build file. It comprises a list of Rules and a list of Loads.
// Rules and Loads may be inserted, modified, or deleted. When all changes
// are done, File.Save() may be called to write changes back to a file.
package rule
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
@ -36,11 +37,9 @@ import (
bt "github.com/bazelbuild/buildtools/tables"
)
// File provides editing functionality on top of a Skylark syntax tree. This
// is the primary interface Gazelle uses for reading and updating build files.
// To use, create a new file with EmptyFile or wrap a syntax tree with
// LoadFile. Perform edits on Loads and Rules, then call Sync() to write
// changes back to the AST.
// File provides editing functionality for a build file. You can create a
// new file with EmptyFile or load an existing file with LoadFile. After
// changes have been made, call Save to write changes back to a file.
type File struct {
// File is the underlying build file syntax tree. Some editing operations
// may modify this, but editing is not complete until Sync() is called.
@ -88,11 +87,31 @@ func LoadFile(path, pkg string) (*File, error) {
return LoadData(path, pkg, data)
}
// LoadWorkspaceFile is similar to LoadFile but parses the file as a WORKSPACE
// file.
func LoadWorkspaceFile(path, pkg string) (*File, error) {
data, err := ioutil.ReadFile(path)
if err != nil {
return nil, err
}
return LoadWorkspaceData(path, pkg, data)
}
// LoadData parses a build file from a byte slice and scans it for rules and
// load statements. The syntax tree within the returned File will be modified
// by editing methods.
func LoadData(path, pkg string, data []byte) (*File, error) {
ast, err := bzl.Parse(path, data)
ast, err := bzl.ParseBuild(path, data)
if err != nil {
return nil, err
}
return ScanAST(pkg, ast), nil
}
// LoadWorkspaceData is similar to LoadData but parses the data as a
// WORKSPACE file.
func LoadWorkspaceData(path, pkg string, data []byte) (*File, error) {
ast, err := bzl.ParseWorkspace(path, data)
if err != nil {
return nil, err
}
@ -108,20 +127,12 @@ func ScanAST(pkg string, bzlFile *bzl.File) *File {
Path: bzlFile.Path,
}
for i, stmt := range f.File.Stmt {
call, ok := stmt.(*bzl.CallExpr)
if !ok {
continue
}
x, ok := call.X.(*bzl.LiteralExpr)
if !ok {
continue
}
if x.Token == "load" {
if l := loadFromExpr(i, call); l != nil {
f.Loads = append(f.Loads, l)
}
} else {
if r := ruleFromExpr(i, call); r != nil {
switch stmt := stmt.(type) {
case *bzl.LoadStmt:
l := loadFromExpr(i, stmt)
f.Loads = append(f.Loads, l)
case *bzl.CallExpr:
if r := ruleFromExpr(i, stmt); r != nil {
f.Rules = append(f.Rules, r)
}
}
@ -194,14 +205,14 @@ func (f *File) Sync() {
for i, stmt := range oldStmt {
for ii < len(inserts) && inserts[ii].index == i {
inserts[ii].index = len(f.File.Stmt)
f.File.Stmt = append(f.File.Stmt, inserts[ii].call)
f.File.Stmt = append(f.File.Stmt, inserts[ii].expr)
ii++
}
if di < len(deletes) && deletes[di].index == i {
di++
continue
}
if si < len(stmts) && stmts[si].call == stmt {
if si < len(stmts) && stmts[si].expr == stmt {
stmts[si].index = len(f.File.Stmt)
si++
}
@ -209,7 +220,7 @@ func (f *File) Sync() {
}
for ii < len(inserts) {
inserts[ii].index = len(f.File.Stmt)
f.File.Stmt = append(f.File.Stmt, inserts[ii].call)
f.File.Stmt = append(f.File.Stmt, inserts[ii].expr)
ii++
}
}
@ -228,10 +239,22 @@ func (f *File) Save(path string) error {
return ioutil.WriteFile(path, data, 0666)
}
// HasDefaultVisibility returns whether the File contains a "package" rule with
// a "default_visibility" attribute. Rules generated by Gazelle should not
// have their own visibility attributes if this is the case.
func (f *File) HasDefaultVisibility() bool {
for _, r := range f.Rules {
if r.Kind() == "package" && r.Attr("default_visibility") != nil {
return true
}
}
return false
}
type stmt struct {
index int
deleted, inserted, updated bool
call *bzl.CallExpr
expr bzl.Expr
}
// Index returns the index for this statement within the build file. For
@ -258,57 +281,42 @@ func (s byIndex) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
// identPair represents one symbol, with or without remapping, in a load
// statement within a build file.
type identPair struct {
to, from *bzl.Ident
}
// Load represents a load statement within a build file.
type Load struct {
stmt
name string
symbols map[string]bzl.Expr
symbols map[string]identPair
}
// NewLoad creates a new, empty load statement for the given file name.
func NewLoad(name string) *Load {
return &Load{
stmt: stmt{
call: &bzl.CallExpr{
X: &bzl.LiteralExpr{Token: "load"},
List: []bzl.Expr{&bzl.StringExpr{Value: name}},
expr: &bzl.LoadStmt{
Module: &bzl.StringExpr{Value: name},
ForceCompact: true,
},
},
name: name,
symbols: make(map[string]bzl.Expr),
symbols: make(map[string]identPair),
}
}
func loadFromExpr(index int, call *bzl.CallExpr) *Load {
func loadFromExpr(index int, loadStmt *bzl.LoadStmt) *Load {
l := &Load{
stmt: stmt{index: index, call: call},
symbols: make(map[string]bzl.Expr),
stmt: stmt{index: index, expr: loadStmt},
name: loadStmt.Module.Value,
symbols: make(map[string]identPair),
}
if len(call.List) == 0 {
return nil
}
name, ok := call.List[0].(*bzl.StringExpr)
if !ok {
return nil
}
l.name = name.Value
for _, arg := range call.List[1:] {
switch arg := arg.(type) {
case *bzl.StringExpr:
l.symbols[arg.Value] = arg
case *bzl.BinaryExpr:
x, ok := arg.X.(*bzl.LiteralExpr)
if !ok {
return nil
}
if _, ok := arg.Y.(*bzl.StringExpr); !ok {
return nil
}
l.symbols[x.Token] = arg
default:
return nil
}
for i := range loadStmt.From {
to, from := loadStmt.To[i], loadStmt.From[i]
l.symbols[to.Name] = identPair{to: to, from: from}
}
return l
}
@ -339,7 +347,8 @@ func (l *Load) Has(sym string) bool {
// doesn't matter.
func (l *Load) Add(sym string) {
if _, ok := l.symbols[sym]; !ok {
l.symbols[sym] = &bzl.StringExpr{Value: sym}
i := &bzl.Ident{Name: sym}
l.symbols[sym] = identPair{to: i, from: i}
l.updated = true
}
}
@ -373,32 +382,32 @@ func (l *Load) sync() {
}
l.updated = false
args := make([]*bzl.StringExpr, 0, len(l.symbols))
kwargs := make([]*bzl.BinaryExpr, 0, len(l.symbols))
for _, e := range l.symbols {
if a, ok := e.(*bzl.StringExpr); ok {
args = append(args, a)
// args1 and args2 are two different sort groups based on whether a remap of the identifier is present.
var args1, args2, args []string
for sym, pair := range l.symbols {
if pair.from.Name == pair.to.Name {
args1 = append(args1, sym)
} else {
kwargs = append(kwargs, e.(*bzl.BinaryExpr))
args2 = append(args2, sym)
}
}
sort.Slice(args, func(i, j int) bool {
return args[i].Value < args[j].Value
})
sort.Slice(kwargs, func(i, j int) bool {
return kwargs[i].X.(*bzl.StringExpr).Value < kwargs[j].Y.(*bzl.StringExpr).Value
})
sort.Strings(args1)
sort.Strings(args2)
args = append(args, args1...)
args = append(args, args2...)
list := make([]bzl.Expr, 0, 1+len(l.symbols))
list = append(list, l.call.List[0])
for _, a := range args {
list = append(list, a)
loadStmt := l.expr.(*bzl.LoadStmt)
loadStmt.Module.Value = l.name
loadStmt.From = make([]*bzl.Ident, 0, len(args))
loadStmt.To = make([]*bzl.Ident, 0, len(args))
for _, sym := range args {
pair := l.symbols[sym]
loadStmt.From = append(loadStmt.From, pair.from)
loadStmt.To = append(loadStmt.To, pair.to)
if pair.from.Name != pair.to.Name {
loadStmt.ForceCompact = false
}
}
for _, a := range kwargs {
list = append(list, a)
}
l.call.List = list
l.call.ForceCompact = len(kwargs) == 0
}
// Rule represents a rule statement within a build file.
@ -413,14 +422,14 @@ type Rule struct {
// NewRule creates a new, empty rule with the given kind and name.
func NewRule(kind, name string) *Rule {
nameAttr := &bzl.BinaryExpr{
X: &bzl.LiteralExpr{Token: "name"},
X: &bzl.Ident{Name: "name"},
Y: &bzl.StringExpr{Value: name},
Op: "=",
}
r := &Rule{
stmt: stmt{
call: &bzl.CallExpr{
X: &bzl.LiteralExpr{Token: kind},
expr: &bzl.CallExpr{
X: &bzl.Ident{Name: kind},
List: []bzl.Expr{nameAttr},
},
},
@ -436,18 +445,18 @@ func ruleFromExpr(index int, expr bzl.Expr) *Rule {
if !ok {
return nil
}
x, ok := call.X.(*bzl.LiteralExpr)
x, ok := call.X.(*bzl.Ident)
if !ok {
return nil
}
kind := x.Token
kind := x.Name
var args []bzl.Expr
attrs := make(map[string]*bzl.BinaryExpr)
for _, arg := range call.List {
attr, ok := arg.(*bzl.BinaryExpr)
if ok && attr.Op == "=" {
key := attr.X.(*bzl.LiteralExpr) // required by parser
attrs[key.Token] = attr
key := attr.X.(*bzl.Ident) // required by parser
attrs[key.Name] = attr
} else {
args = append(args, arg)
}
@ -455,7 +464,7 @@ func ruleFromExpr(index int, expr bzl.Expr) *Rule {
return &Rule{
stmt: stmt{
index: index,
call: call,
expr: call,
},
kind: kind,
args: args,
@ -468,22 +477,27 @@ func ruleFromExpr(index int, expr bzl.Expr) *Rule {
// that are kept should not be modified. This does not check whether
// subexpressions within the rule should be kept.
func (r *Rule) ShouldKeep() bool {
return ShouldKeep(r.call)
return ShouldKeep(r.expr)
}
// Kind returns the kind of rule this is (for example, "go_library").
func (r *Rule) Kind() string {
return r.kind
}
// SetKind changes the kind of rule this is.
func (r *Rule) SetKind(kind string) {
r.kind = kind
r.updated = true
}
// Name returns the value of the rule's "name" attribute if it is a string
// or "" if the attribute does not exist or is not a string.
func (r *Rule) Name() string {
return r.AttrString("name")
}
// SetName sets the value of the rule's "name" attribute.
func (r *Rule) SetName(name string) {
r.SetAttr("name", name)
}
@ -562,7 +576,7 @@ func (r *Rule) SetAttr(key string, value interface{}) {
attr.Y = y
} else {
r.attrs[key] = &bzl.BinaryExpr{
X: &bzl.LiteralExpr{Token: key},
X: &bzl.Ident{Name: key},
Y: y,
Op: "=",
}
@ -622,18 +636,6 @@ func (r *Rule) IsEmpty(info KindInfo) bool {
return true
}
func (r *Rule) IsEmptyOld(attrs map[string]bool) bool {
if attrs == nil {
return false
}
for k := range attrs {
if _, ok := r.attrs[k]; ok {
return false
}
}
return true
}
func (r *Rule) sync() {
if !r.updated {
return
@ -646,8 +648,8 @@ func (r *Rule) sync() {
}
}
call := r.call
call.X.(*bzl.LiteralExpr).Token = r.kind
call := r.expr.(*bzl.CallExpr)
call.X.(*bzl.Ident).Name = r.kind
list := make([]bzl.Expr, 0, len(r.args)+len(r.attrs))
list = append(list, r.args...)
@ -655,7 +657,7 @@ func (r *Rule) sync() {
list = append(list, attr)
}
sortedAttrs := list[len(r.args):]
key := func(e bzl.Expr) string { return e.(*bzl.BinaryExpr).X.(*bzl.LiteralExpr).Token }
key := func(e bzl.Expr) string { return e.(*bzl.BinaryExpr).X.(*bzl.Ident).Name }
sort.SliceStable(sortedAttrs, func(i, j int) bool {
ki := key(sortedAttrs[i])
kj := key(sortedAttrs[j])
@ -665,7 +667,7 @@ func (r *Rule) sync() {
return ki < kj
})
r.call.List = list
call.List = list
r.updated = false
}
@ -681,6 +683,17 @@ func ShouldKeep(e bzl.Expr) bool {
return false
}
// CheckInternalVisibility overrides the given visibility if the package is
// internal.
func CheckInternalVisibility(rel, visibility string) string {
if i := strings.LastIndex(rel, "/internal/"); i >= 0 {
visibility = fmt.Sprintf("//%s:__subpackages__", rel[:i])
} else if strings.HasPrefix(rel, "internal/") {
visibility = "//:__subpackages__"
}
return visibility
}
type byAttrName []KeyValue
var _ sort.Interface = byAttrName{}

View File

@ -15,13 +15,6 @@ limitations under the License.
package rule
// MergableAttrs is the set of attribute names for each kind of rule that
// may be merged. When an attribute is mergeable, a generated value may
// replace or augment an existing value. If an attribute is not mergeable,
// existing values are preserved. Generated non-mergeable attributes may
// still be added to a rule if there is no corresponding existing attribute.
type MergeableAttrs map[string]map[string]bool
// LoadInfo describes a file that Gazelle knows about and the symbols
// it defines.
type LoadInfo struct {

View File

@ -40,12 +40,12 @@ type GlobValue struct {
// ExprFromValue converts a value into an expression that can be written into
// a Bazel build file. The following types of values can be converted:
//
// * bools, integers, floats, strings.
// * slices, arrays (converted to lists).
// * maps (converted to select expressions; keys must be rules in
// @io_bazel_rules_go//go/platform).
// * GlobValue (converted to glob expressions).
// * PlatformStrings (converted to a concatenation of a list and selects).
// * bools, integers, floats, strings.
// * slices, arrays (converted to lists).
// * maps (converted to select expressions; keys must be rules in
// @io_bazel_rules_go//go/platform).
// * GlobValue (converted to glob expressions).
// * PlatformStrings (converted to a concatenation of a list and selects).
//
// Converting unsupported types will cause a panic.
func ExprFromValue(val interface{}) bzl.Expr {
@ -98,7 +98,7 @@ func ExprFromValue(val interface{}) bzl.Expr {
Value: &bzl.ListExpr{},
})
sel := &bzl.CallExpr{
X: &bzl.LiteralExpr{Token: "select"},
X: &bzl.Ident{Name: "select"},
List: []bzl.Expr{&bzl.DictExpr{List: args, ForceMultiLine: true}},
}
return sel

View File

@ -0,0 +1,18 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = [
"config.go",
"walk.go",
],
importmap = "k8s.io/kops/vendor/github.com/bazelbuild/bazel-gazelle/walk",
importpath = "github.com/bazelbuild/bazel-gazelle/walk",
visibility = ["//visibility:public"],
deps = [
"//vendor/github.com/bazelbuild/bazel-gazelle/config:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/flag:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/pathtools:go_default_library",
"//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library",
],
)

View File

@ -0,0 +1,83 @@
/* Copyright 2018 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package walk
import (
"flag"
"path"
"github.com/bazelbuild/bazel-gazelle/config"
gzflag "github.com/bazelbuild/bazel-gazelle/flag"
"github.com/bazelbuild/bazel-gazelle/rule"
)
type walkConfig struct {
excludes []string
ignore bool
follow []string
}
const walkName = "_walk"
func getWalkConfig(c *config.Config) *walkConfig {
return c.Exts[walkName].(*walkConfig)
}
func (wc *walkConfig) isExcluded(rel, base string) bool {
f := path.Join(rel, base)
for _, x := range wc.excludes {
if f == x {
return true
}
}
return false
}
type Configurer struct{}
func (_ *Configurer) RegisterFlags(fs *flag.FlagSet, cmd string, c *config.Config) {
wc := &walkConfig{}
c.Exts[walkName] = wc
fs.Var(&gzflag.MultiFlag{Values: &wc.excludes}, "exclude", "Path to file or directory that should be ignored (may be repeated)")
}
func (_ *Configurer) CheckFlags(fs *flag.FlagSet, c *config.Config) error { return nil }
func (_ *Configurer) KnownDirectives() []string {
return []string{"exclude", "follow", "ignore"}
}
func (_ *Configurer) Configure(c *config.Config, rel string, f *rule.File) {
wc := getWalkConfig(c)
wcCopy := &walkConfig{}
*wcCopy = *wc
wcCopy.ignore = false
if f != nil {
for _, d := range f.Directives {
switch d.Key {
case "exclude":
wcCopy.excludes = append(wcCopy.excludes, path.Join(rel, d.Value))
case "follow":
wcCopy.follow = append(wcCopy.follow, path.Join(rel, d.Value))
case "ignore":
wcCopy.ignore = true
}
}
}
c.Exts[walkName] = wcCopy
}

328
vendor/github.com/bazelbuild/bazel-gazelle/walk/walk.go generated vendored Normal file
View File

@ -0,0 +1,328 @@
/* Copyright 2018 The Bazel Authors. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Package walk provides customizable functionality for visiting each
// subdirectory in a directory tree.
package walk
import (
"io/ioutil"
"log"
"os"
"path"
"path/filepath"
"strings"
"github.com/bazelbuild/bazel-gazelle/config"
"github.com/bazelbuild/bazel-gazelle/pathtools"
"github.com/bazelbuild/bazel-gazelle/rule"
)
// Mode determines which directories Walk visits and which directories
// should be updated.
type Mode int
const (
// In VisitAllUpdateSubdirsMode, Walk visits every directory in the
// repository. The directories given to Walk and their subdirectories are
// updated.
VisitAllUpdateSubdirsMode Mode = iota
// In VisitAllUpdateDirsMode, Walk visits every directory in the repository.
// Only the directories given to Walk are updated (not their subdirectories).
VisitAllUpdateDirsMode
// In UpdateDirsMode, Walk only visits and updates directories given to Walk.
// Build files in parent directories are read in order to produce a complete
// configuration, but the callback is not called for parent directories.
UpdateDirsMode
)
// WalkFunc is a callback called by Walk in each visited directory.
//
// dir is the absolute file system path to the directory being visited.
//
// rel is the relative slash-separated path to the directory from the
// repository root. Will be "" for the repository root directory itself.
//
// c is the configuration for the current directory. This may have been
// modified by directives in the directory's build file.
//
// update is true when the build file may be updated.
//
// f is the existing build file in the directory. Will be nil if there
// was no file.
//
// subdirs is a list of base names of subdirectories within dir, not
// including excluded files.
//
// regularFiles is a list of base names of regular files within dir, not
// including excluded files.
//
// genFiles is a list of names of generated files, found by reading
// "out" and "outs" attributes of rules in f.
type WalkFunc func(dir, rel string, c *config.Config, update bool, f *rule.File, subdirs, regularFiles, genFiles []string)
// Walk traverses the directory tree rooted at c.RepoRoot. Walk visits
// subdirectories in depth-first post-order.
//
// When Walk visits a directory, it lists the files and subdirectories within
// that directory. If a build file is present, Walk reads the build file and
// applies any directives to the configuration (a copy of the parent directory's
// configuration is made, and the copy is modified). After visiting
// subdirectories, the callback wf may be called, depending on the mode.
//
// c is the root configuration to start with. This includes changes made by
// command line flags, but not by the root build file. This configuration
// should not be modified.
//
// cexts is a list of configuration extensions. When visiting a directory,
// before visiting subdirectories, Walk makes a copy of the parent configuration
// and Configure for each extension on the copy. If Walk sees a directive
// that is not listed in KnownDirectives of any extension, an error will
// be logged.
//
// dirs is a list of absolute, canonical file system paths of directories
// to visit.
//
// mode determines whether subdirectories of dirs should be visited recursively,
// when the wf callback should be called, and when the "update" argument
// to the wf callback should be set.
//
// wf is a function that may be called in each directory.
func Walk(c *config.Config, cexts []config.Configurer, dirs []string, mode Mode, wf WalkFunc) {
knownDirectives := make(map[string]bool)
for _, cext := range cexts {
for _, d := range cext.KnownDirectives() {
knownDirectives[d] = true
}
}
symlinks := symlinkResolver{visited: []string{c.RepoRoot}}
updateRels := buildUpdateRelMap(c.RepoRoot, dirs)
var visit func(*config.Config, string, string, bool)
visit = func(c *config.Config, dir, rel string, updateParent bool) {
haveError := false
// TODO: OPT: ReadDir stats all the files, which is slow. We just care about
// names and modes, so we should use something like
// golang.org/x/tools/internal/fastwalk to speed this up.
files, err := ioutil.ReadDir(dir)
if err != nil {
log.Print(err)
return
}
f, err := loadBuildFile(c, rel, dir, files)
if err != nil {
log.Print(err)
haveError = true
}
c = configure(cexts, knownDirectives, c, rel, f)
wc := getWalkConfig(c)
var subdirs, regularFiles []string
for _, fi := range files {
base := fi.Name()
switch {
case base == "" || wc.isExcluded(rel, base):
continue
case fi.IsDir() || fi.Mode()&os.ModeSymlink != 0 && symlinks.follow(c, dir, rel, base):
subdirs = append(subdirs, base)
default:
regularFiles = append(regularFiles, base)
}
}
shouldUpdate := shouldUpdate(rel, mode, updateParent, updateRels)
for _, sub := range subdirs {
if subRel := path.Join(rel, sub); shouldVisit(subRel, mode, updateRels) {
visit(c, filepath.Join(dir, sub), subRel, shouldUpdate)
}
}
update := !haveError && !wc.ignore && shouldUpdate
if shouldCall(rel, mode, updateRels) {
genFiles := findGenFiles(wc, f)
wf(dir, rel, c, update, f, subdirs, regularFiles, genFiles)
}
}
visit(c, c.RepoRoot, "", false)
}
// buildUpdateRelMap builds a table of prefixes, used to determine which
// directories to update and visit.
//
// root and dirs must be absolute, canonical file paths. Each entry in dirs
// must be a subdirectory of root. The caller is responsible for checking this.
//
// buildUpdateRelMap returns a map from slash-separated paths relative to the
// root directory ("" for the root itself) to a boolean indicating whether
// the directory should be updated.
func buildUpdateRelMap(root string, dirs []string) map[string]bool {
relMap := make(map[string]bool)
for _, dir := range dirs {
rel, _ := filepath.Rel(root, dir)
rel = filepath.ToSlash(rel)
if rel == "." {
rel = ""
}
i := 0
for {
next := strings.IndexByte(rel[i:], '/') + i
if next-i < 0 {
relMap[rel] = true
break
}
prefix := rel[:next]
relMap[prefix] = relMap[prefix] // set to false if not present
i = next + 1
}
}
return relMap
}
// shouldCall returns true if Walk should call the callback in the
// directory rel.
func shouldCall(rel string, mode Mode, updateRels map[string]bool) bool {
return mode != UpdateDirsMode || updateRels[rel]
}
// shouldUpdate returns true if Walk should pass true to the callback's update
// parameter in the directory rel. This indicates the build file should be
// updated.
func shouldUpdate(rel string, mode Mode, updateParent bool, updateRels map[string]bool) bool {
return mode == VisitAllUpdateSubdirsMode && updateParent || updateRels[rel]
}
// shouldVisit returns true if Walk should visit the subdirectory rel.
func shouldVisit(rel string, mode Mode, updateRels map[string]bool) bool {
if mode != UpdateDirsMode {
return true
}
_, ok := updateRels[rel]
return ok
}
func loadBuildFile(c *config.Config, pkg, dir string, files []os.FileInfo) (*rule.File, error) {
var err error
readDir := dir
readFiles := files
if c.ReadBuildFilesDir != "" {
readDir = filepath.Join(c.ReadBuildFilesDir, filepath.FromSlash(pkg))
readFiles, err = ioutil.ReadDir(readDir)
if err != nil {
return nil, err
}
}
path := rule.MatchBuildFileName(readDir, c.ValidBuildFileNames, readFiles)
if path == "" {
return nil, nil
}
return rule.LoadFile(path, pkg)
}
func configure(cexts []config.Configurer, knownDirectives map[string]bool, c *config.Config, rel string, f *rule.File) *config.Config {
if rel != "" {
c = c.Clone()
}
if f != nil {
for _, d := range f.Directives {
if !knownDirectives[d.Key] {
log.Printf("%s: unknown directive: gazelle:%s", f.Path, d.Key)
}
}
}
for _, cext := range cexts {
cext.Configure(c, rel, f)
}
return c
}
func findGenFiles(wc *walkConfig, f *rule.File) []string {
if f == nil {
return nil
}
var strs []string
for _, r := range f.Rules {
for _, key := range []string{"out", "outs"} {
if s := r.AttrString(key); s != "" {
strs = append(strs, s)
} else if ss := r.AttrStrings(key); len(ss) > 0 {
strs = append(strs, ss...)
}
}
}
var genFiles []string
for _, s := range strs {
if !wc.isExcluded(f.Pkg, s) {
genFiles = append(genFiles, s)
}
}
return genFiles
}
type symlinkResolver struct {
visited []string
}
// Decide if symlink dir/base should be followed.
func (r *symlinkResolver) follow(c *config.Config, dir, rel, base string) bool {
if dir == c.RepoRoot && strings.HasPrefix(base, "bazel-") {
// Links such as bazel-<workspace>, bazel-out, bazel-genfiles are created by
// Bazel to point to internal build directories.
return false
}
// See if the user has explicitly directed us to follow the link.
wc := getWalkConfig(c)
linkRel := path.Join(rel, base)
for _, follow := range wc.follow {
if linkRel == follow {
return true
}
}
// See if the symlink points to a tree that has been already visited.
fullpath := filepath.Join(dir, base)
dest, err := filepath.EvalSymlinks(fullpath)
if err != nil {
return false
}
if !filepath.IsAbs(dest) {
dest, err = filepath.Abs(filepath.Join(dir, dest))
if err != nil {
return false
}
}
for _, p := range r.visited {
if pathtools.HasPrefix(dest, p) || pathtools.HasPrefix(p, dest) {
return false
}
}
r.visited = append(r.visited, dest)
stat, err := os.Stat(fullpath)
if err != nil {
return false
}
return stat.IsDir()
}

View File

@ -15,38 +15,86 @@ distributed under the License is distributed on an "AS IS" BASIS,
limitations under the License.
"""
load(
"@io_bazel_rules_go//go/private:providers.bzl",
"GoSource",
)
_GO_YACC_TOOL = "@org_golang_x_tools//cmd/goyacc"
def go_yacc(src, out, visibility=None):
"""Runs go tool yacc -o $out $src."""
native.genrule(
name = src + ".go_yacc",
srcs = [src],
outs = [out],
tools = [_GO_YACC_TOOL],
cmd = ("export GOROOT=$$(dirname $(location " + _GO_YACC_TOOL + "))/..;" +
" $(location " + _GO_YACC_TOOL + ") " +
" -o $(location " + out + ") $(SRCS)"),
visibility = visibility,
local = 1,
)
def go_yacc(src, out, visibility = None):
"""Runs go tool yacc -o $out $src."""
native.genrule(
name = src + ".go_yacc",
srcs = [src],
outs = [out],
tools = [_GO_YACC_TOOL],
cmd = ("export GOROOT=$$(dirname $(location " + _GO_YACC_TOOL + "))/..;" +
" $(location " + _GO_YACC_TOOL + ") " +
" -o $(location " + out + ") $(SRCS) > /dev/null"),
visibility = visibility,
local = 1,
)
def _extract_go_src(ctx):
"""Thin rule that exposes the GoSource from a go_library."""
return [DefaultInfo(files = depset(ctx.attr.library[GoSource].srcs))]
extract_go_src = rule(
implementation = _extract_go_src,
attrs = {
"library": attr.label(
providers = [GoSource],
),
},
)
def genfile_check_test(src, gen):
"""Asserts that any checked-in generated code matches regen."""
if not src:
fail("src is required", "src")
if not gen:
fail("gen is required", "gen")
native.genrule(
name = src + "_checksh",
outs = [src + "_check.sh"],
cmd = "echo 'diff $$@' > $@",
)
native.sh_test(
name = src + "_checkshtest",
size = "small",
srcs = [src + "_check.sh"],
data = [src, gen],
args = ["$(location " + src + ")", "$(location " + gen + ")"],
)
"""Asserts that any checked-in generated code matches bazel gen."""
if not src:
fail("src is required", "src")
if not gen:
fail("gen is required", "gen")
native.genrule(
name = src + "_checksh",
outs = [src + "_check.sh"],
cmd = "echo 'diff $$@' > $@",
)
native.sh_test(
name = src + "_checkshtest",
size = "small",
srcs = [src + "_check.sh"],
data = [src, gen],
args = ["$(location " + src + ")", "$(location " + gen + ")"],
)
# magic copy rule used to update the checked-in version
native.genrule(
name = src + "_copysh",
srcs = [gen],
outs = [src + "copy.sh"],
cmd = "echo 'cp $${BUILD_WORKSPACE_DIRECTORY}/$(location " + gen +
") $${BUILD_WORKSPACE_DIRECTORY}/" + native.package_name() + "/" + src + "' > $@",
)
native.sh_binary(
name = src + "_copy",
srcs = [src + "_copysh"],
data = [gen],
)
def go_proto_checkedin_test(src, proto = "go_default_library"):
"""Asserts that any checked-in .pb.go code matches bazel gen."""
genfile = src + "_genfile"
extract_go_src(
name = genfile + "go",
library = proto,
)
# TODO(pmbethe09): why is the extra copy needed?
native.genrule(
name = genfile,
srcs = [genfile + "go"],
outs = [genfile + ".go"],
cmd = "cp $< $@",
)
genfile_check_test(src, genfile)

View File

@ -20,30 +20,139 @@ package build
import (
"bytes"
"fmt"
"path/filepath"
"sort"
"strings"
"unicode/utf8"
)
// Parse parses the input data and returns the corresponding parse tree.
// FileType represents a type of a file (default (for .bzl files), BUILD, or WORKSPACE).
// Certain formatting or refactoring rules can be applied to several file types, so they support
// bitwise operations: `type1 | type2` can represent a scope (e.g. BUILD and WORKSPACE files) and
// `scope & fileType` can be used to check whether a file type belongs to a scope.
type FileType int
const (
// TypeDefault represents .bzl or other Starlark files
TypeDefault FileType = 1 << iota
// TypeBuild represents BUILD files
TypeBuild
// TypeWorkspace represents WORKSPACE files
TypeWorkspace
)
func (t FileType) String() string {
switch t {
case TypeDefault:
return ".bzl"
case TypeBuild:
return "BUILD"
case TypeWorkspace:
return "WORKSPACE"
}
return "unknown"
}
// ParseBuild parses a file, marks it as a BUILD file and returns the corresponding parse tree.
//
// The filename is used only for generating error messages.
func Parse(filename string, data []byte) (*File, error) {
func ParseBuild(filename string, data []byte) (*File, error) {
in := newInput(filename, data)
return in.parse()
f, err := in.parse()
if f != nil {
f.Type = TypeBuild
}
return f, err
}
// ParseWorkspace parses a file, marks it as a WORKSPACE file and returns the corresponding parse tree.
//
// The filename is used only for generating error messages.
func ParseWorkspace(filename string, data []byte) (*File, error) {
in := newInput(filename, data)
f, err := in.parse()
if f != nil {
f.Type = TypeWorkspace
}
return f, err
}
// ParseDefault parses a file, marks it as not a BUILD file (e.g. bzl file) and returns the corresponding parse tree.
//
// The filename is used only for generating error messages.
func ParseDefault(filename string, data []byte) (*File, error) {
in := newInput(filename, data)
f, err := in.parse()
if f != nil {
f.Type = TypeDefault
}
return f, err
}
func getFileType(filename string) FileType {
if filename == "" { // stdin
return TypeBuild // For compatibility
}
basename := strings.ToLower(filepath.Base(filename))
ext := filepath.Ext(basename)
if ext == ".bzl" || ext == ".sky" {
return TypeDefault
}
base := basename[:len(basename)-len(ext)]
switch {
case ext == ".build" || base == "build":
return TypeBuild
case ext == ".workspace" || base == "workspace":
return TypeWorkspace
}
return TypeDefault
}
// Parse parses the input data and returns the corresponding parse tree.
//
// Uses the filename to detect the formatting type (build, workspace, or default) and calls
// ParseBuild, ParseWorkspace, or ParseDefault correspondingly.
func Parse(filename string, data []byte) (*File, error) {
switch getFileType(filename) {
case TypeBuild:
return ParseBuild(filename, data)
case TypeWorkspace:
return ParseWorkspace(filename, data)
}
return ParseDefault(filename, data)
}
// ParseError contains information about the error encountered during parsing.
type ParseError struct {
Message string
Filename string
Pos Position
}
// Error returns a string representation of the parse error.
func (e ParseError) Error() string {
filename := e.Filename
if filename == "" {
filename = "<stdin>"
}
return fmt.Sprintf("%s:%d:%d: %v", filename, e.Pos.Line, e.Pos.LineRune, e.Message)
}
// An input represents a single input file being parsed.
type input struct {
// Lexing state.
filename string // name of input file, for errors
complete []byte // entire input
remaining []byte // remaining input
token []byte // token being scanned
lastToken string // most recently returned token, for error messages
pos Position // current input position
comments []Comment // accumulated comments
endRule int // position of end of current rule
depth int // nesting of [ ] { } ( )
filename string // name of input file, for errors
complete []byte // entire input
remaining []byte // remaining input
token []byte // token being scanned
lastToken string // most recently returned token, for error messages
pos Position // current input position
lineComments []Comment // accumulated line comments
suffixComments []Comment // accumulated suffix comments
depth int // nesting of [ ] { } ( )
cleanLine bool // true if the current line only contains whitespace before the current position
indent int // current line indentation in spaces
indents []int // stack of indentation levels in spaces
// Parser state.
file *File // returned top-level syntax tree
@ -55,14 +164,25 @@ type input struct {
}
func newInput(filename string, data []byte) *input {
// The syntax requires that each simple statement ends with '\n', however it's optional at EOF.
// If `data` doesn't end with '\n' we add it here to keep parser simple.
// It shouldn't affect neither the parsed tree nor its formatting.
data = append(data, '\n')
return &input{
filename: filename,
complete: data,
remaining: data,
pos: Position{Line: 1, LineRune: 1, Byte: 0},
cleanLine: true,
indents: []int{0},
}
}
func (in *input) currentIndent() int {
return in.indents[len(in.indents)-1]
}
// parse parses the input file.
func (in *input) parse() (f *File, err error) {
// The parser panics for both routine errors like syntax errors
@ -74,7 +194,7 @@ func (in *input) parse() (f *File, err error) {
if e == in.parseError {
err = in.parseError
} else {
err = fmt.Errorf("%s:%d:%d: internal error: %v", in.filename, in.pos.Line, in.pos.LineRune, e)
err = ParseError{Message: fmt.Sprintf("internal error: %v", e), Filename: in.filename, Pos: in.pos}
}
}
}()
@ -99,7 +219,7 @@ func (in *input) Error(s string) {
if s == "syntax error" && in.lastToken != "" {
s += " near " + in.lastToken
}
in.parseError = fmt.Errorf("%s:%d:%d: %v", in.filename, in.pos.Line, in.pos.LineRune, s)
in.parseError = ParseError{Message: s, Filename: in.filename, Pos: in.pos}
panic(in.parseError)
}
@ -169,45 +289,24 @@ func (in *input) Lex(val *yySymType) int {
// Skip past spaces, stopping at non-space or EOF.
countNL := 0 // number of newlines we've skipped past
for !in.eof() {
// The parser does not track indentation, because for the most part
// BUILD expressions don't care about how they are indented.
// However, we do need to be able to distinguish
//
// x = y[0]
//
// from the occasional
//
// x = y
// [0]
//
// To handle this one case, when we reach the beginning of a
// top-level BUILD expression, we scan forward to see where
// it should end and record the number of input bytes remaining
// at that endpoint. When we reach that point in the input, we
// insert an implicit semicolon to force the two expressions
// to stay separate.
//
if in.endRule != 0 && len(in.remaining) == in.endRule {
in.endRule = 0
in.lastToken = "implicit ;"
val.tok = ";"
return ';'
}
// Skip over spaces. Count newlines so we can give the parser
// information about where top-level blank lines are,
// for top-level comment assignment.
c := in.peekRune()
if c == ' ' || c == '\t' || c == '\r' || c == '\n' {
if c == '\n' && in.endRule == 0 {
// Not in a rule. Tell parser about top-level blank line.
in.startToken(val)
in.readRune()
in.endToken(val)
return '\n'
}
if c == '\n' {
in.indent = 0
in.cleanLine = true
if in.depth == 0 {
// Not in a statememt. Tell parser about top-level blank line.
in.startToken(val)
in.readRune()
in.endToken(val)
return '\n'
}
countNL++
} else if c == ' ' && in.cleanLine {
in.indent++
}
in.readRune()
continue
@ -215,26 +314,38 @@ func (in *input) Lex(val *yySymType) int {
// Comment runs to end of line.
if c == '#' {
// If a line contains just a comment its indentation level doesn't matter.
// Reset it to zero.
in.indent = 0
isLineComment := in.cleanLine
in.cleanLine = true
// Is this comment the only thing on its line?
// Find the last \n before this # and see if it's all
// spaces from there to here.
// If it's a suffix comment but the last non-space symbol before
// it is one of (, [, or {, treat it as a line comment that should be
// it is one of (, [, or {, or it's a suffix comment to "):"
// (e.g. trailing closing bracket or a function definition),
// treat it as a line comment that should be
// put inside the corresponding block.
i := bytes.LastIndex(in.complete[:in.pos.Byte], []byte("\n"))
prefix := bytes.TrimSpace(in.complete[i+1:in.pos.Byte])
prefix := bytes.TrimSpace(in.complete[i+1 : in.pos.Byte])
prefix = bytes.Replace(prefix, []byte{' '}, []byte{}, -1)
isSuffix := true
if len(prefix) == 0 ||
prefix[len(prefix) - 1] == '[' ||
prefix[len(prefix) - 1] == '(' ||
prefix[len(prefix) - 1] == '{' {
(len(prefix) == 2 && prefix[0] == ')' && prefix[1] == ':') ||
prefix[len(prefix)-1] == '[' ||
prefix[len(prefix)-1] == '(' ||
prefix[len(prefix)-1] == '{' {
isSuffix = false
}
// Consume comment.
// Consume comment without the \n it ends with.
in.startToken(val)
for len(in.remaining) > 0 && in.readRune() != '\n' {
for len(in.remaining) > 0 && in.peekRune() != '\n' {
in.readRune()
}
in.endToken(val)
val.tok = strings.TrimRight(val.tok, "\n")
@ -243,22 +354,27 @@ func (in *input) Lex(val *yySymType) int {
// If we are at top level (not in a rule), hand the comment to
// the parser as a _COMMENT token. The grammar is written
// to handle top-level comments itself.
if in.endRule == 0 {
// Not in a rule. Tell parser about top-level comment.
if in.depth == 0 && isLineComment {
// Not in a statement. Tell parser about top-level comment.
return _COMMENT
}
// Otherwise, save comment for later attachment to syntax tree.
if countNL > 1 {
in.comments = append(in.comments, Comment{val.pos, "", false})
in.lineComments = append(in.lineComments, Comment{val.pos, ""})
}
in.comments = append(in.comments, Comment{val.pos, val.tok, isSuffix})
countNL = 1
if isSuffix {
in.suffixComments = append(in.suffixComments, Comment{val.pos, val.tok})
} else {
in.lineComments = append(in.lineComments, Comment{val.pos, val.tok})
}
countNL = 0
continue
}
if c == '\\' && len(in.remaining) >= 2 && in.remaining[1] == '\n' {
// We can ignore a trailing \ at end of line.
// We can ignore a trailing \ at end of line together with the \n.
in.readRune()
in.readRune()
continue
}
@ -267,6 +383,41 @@ func (in *input) Lex(val *yySymType) int {
break
}
// Check for changes in indentation
// Skip if we're inside a statement, or if there were non-space
// characters before in the current line.
if in.depth == 0 && in.cleanLine {
if in.indent > in.currentIndent() {
// A new indentation block starts
in.indents = append(in.indents, in.indent)
in.lastToken = "indent"
in.cleanLine = false
return _INDENT
} else if in.indent < in.currentIndent() {
// An indentation block ends
in.indents = in.indents[:len(in.indents)-1]
// It's a syntax error if the current line indentation level in now greater than
// currentIndent(), should be either equal (a parent block continues) or still less
// (need to unindent more).
if in.indent > in.currentIndent() {
in.pos = val.pos
in.Error("unexpected indentation")
}
in.lastToken = "unindent"
return _UNINDENT
}
}
in.cleanLine = false
// If the file ends with an indented block, return the corresponding amounts of unindents.
if in.eof() && in.currentIndent() > 0 {
in.indents = in.indents[:len(in.indents)-1]
in.lastToken = "unindent"
return _UNINDENT
}
// Found the beginning of the next token.
in.startToken(val)
defer in.endToken(val)
@ -277,18 +428,6 @@ func (in *input) Lex(val *yySymType) int {
return _EOF
}
// If endRule is 0, we need to recompute where the end
// of the next rule (Python expression) is, so that we can
// generate a virtual end-of-rule semicolon (see above).
if in.endRule == 0 {
in.endRule = len(in.skipPython(in.remaining))
if in.endRule == 0 {
// skipPython got confused.
// No more virtual semicolons.
in.endRule = -1
}
}
// Punctuation tokens.
switch c := in.peekRune(); c {
case '[', '(', '{':
@ -301,12 +440,23 @@ func (in *input) Lex(val *yySymType) int {
in.readRune()
return c
case '.', '-', '%', ':', ';', ',', '/', '*': // single-char tokens
case '.', ':', ';', ',': // single-char tokens
in.readRune()
return c
case '<', '>', '=', '!', '+': // possibly followed by =
case '<', '>', '=', '!', '+', '-', '*', '/', '%', '|': // possibly followed by =
in.readRune()
if c == '*' && in.peekRune() == '*' {
// double asterisk
in.readRune()
return _STAR_STAR
}
if c == '/' && in.peekRune() == '/' {
// integer division
in.readRune()
}
if in.peekRune() == '=' {
in.readRune()
switch c {
@ -318,8 +468,8 @@ func (in *input) Lex(val *yySymType) int {
return _EQ
case '!':
return _NE
case '+':
return _ADDEQ
default:
return _AUGM
}
}
return c
@ -395,17 +545,6 @@ func (in *input) Lex(val *yySymType) int {
in.Error(fmt.Sprintf("unexpected input character %#q", c))
}
// Look for raw Python block (class, def, if, etc at beginning of line) and pass through.
if in.depth == 0 && in.pos.LineRune == 1 && hasPythonPrefix(in.remaining) {
// Find end of Python block and advance input beyond it.
// Have to loop calling readRune in order to maintain line number info.
rest := in.skipPython(in.remaining)
for len(in.remaining) > len(rest) {
in.readRune()
}
return _PYTHON
}
// Scan over alphanumeric identifier.
for {
c := in.peekRune()
@ -421,8 +560,20 @@ func (in *input) Lex(val *yySymType) int {
if k := keywordToken[val.tok]; k != 0 {
return k
}
return _IDENT
switch val.tok {
case "pass":
return _PASS
case "break":
return _BREAK
case "continue":
return _CONTINUE
}
for _, c := range val.tok {
if c > '9' || c < '0' {
return _IDENT
}
}
return _NUMBER
}
// isIdent reports whether c is an identifier rune.
@ -442,157 +593,15 @@ var keywordToken = map[string]int{
"for": _FOR,
"if": _IF,
"else": _ELSE,
"elif": _ELIF,
"in": _IN,
"is": _IS,
"lambda": _LAMBDA,
"load": _LOAD,
"not": _NOT,
"or": _OR,
}
// Python scanning.
// About 1% of BUILD files embed arbitrary Python into the file.
// We do not attempt to parse it. Instead, we lex just enough to scan
// beyond it, treating the Python block as an unintepreted blob.
// hasPythonPrefix reports whether p begins with a keyword that would
// introduce an uninterpreted Python block.
func hasPythonPrefix(p []byte) bool {
for _, pre := range prefixes {
if hasPrefixSpace(p, pre) {
return true
}
}
return false
}
// These keywords introduce uninterpreted Python blocks.
var prefixes = []string{
"assert",
"class",
"def",
"del",
"for",
"if",
"try",
}
// hasPrefixSpace reports whether p begins with pre followed by a space or colon.
func hasPrefixSpace(p []byte, pre string) bool {
if len(p) <= len(pre) || p[len(pre)] != ' ' && p[len(pre)] != '\t' && p[len(pre)] != ':' {
return false
}
for i := range pre {
if p[i] != pre[i] {
return false
}
}
return true
}
func isBlankOrComment(b []byte) bool {
for _, c := range b {
if c == '#' || c == '\n' {
return true
}
if c != ' ' && c != '\t' && c != '\r' {
return false
}
}
return true
}
// hasPythonContinuation reports whether p begins with a keyword that
// continues an uninterpreted Python block.
func hasPythonContinuation(p []byte) bool {
for _, pre := range continuations {
if hasPrefixSpace(p, pre) {
return true
}
}
return false
}
// These keywords continue uninterpreted Python blocks.
var continuations = []string{
"except",
"else",
}
// skipPython returns the data remaining after the uninterpreted
// Python block beginning at p. It does not advance the input position.
// (The only reason for the input receiver is to be able to call in.Error.)
func (in *input) skipPython(p []byte) []byte {
quote := byte(0) // if non-zero, the kind of quote we're in
tripleQuote := false // if true, the quote is a triple quote
depth := 0 // nesting depth for ( ) [ ] { }
var rest []byte // data after the Python block
// Scan over input one byte at a time until we find
// an unindented, non-blank, non-comment line
// outside quoted strings and brackets.
for i := 0; i < len(p); i++ {
c := p[i]
if quote != 0 && c == quote && !tripleQuote {
quote = 0
continue
}
if quote != 0 && c == quote && tripleQuote && i+2 < len(p) && p[i+1] == quote && p[i+2] == quote {
i += 2
quote = 0
tripleQuote = false
continue
}
if quote != 0 {
if c == '\\' {
i++ // skip escaped char
}
continue
}
if c == '\'' || c == '"' {
if i+2 < len(p) && p[i+1] == c && p[i+2] == c {
quote = c
tripleQuote = true
i += 2
continue
}
quote = c
continue
}
if depth == 0 && i > 0 && p[i-1] == '\n' && (i < 2 || p[i-2] != '\\') {
// Possible stopping point. Save the earliest one we find.
if rest == nil {
rest = p[i:]
}
if !isBlankOrComment(p[i:]) {
if !hasPythonContinuation(p[i:]) && c != ' ' && c != '\t' {
// Yes, stop here.
break
}
// Not a stopping point after all.
rest = nil
}
}
switch c {
case '#':
// Skip comment.
for i < len(p) && p[i] != '\n' {
i++
}
case '(', '[', '{':
depth++
case ')', ']', '}':
depth--
}
}
if quote != 0 {
in.Error("EOF scanning Python quoted string")
}
return rest
"def": _DEF,
"return": _RETURN,
}
// Comment assignment.
@ -628,12 +637,21 @@ func (in *input) order(v Expr) {
in.order(x)
}
in.order(&v.End)
case *PythonBlock:
// nothing
case *LoadStmt:
in.order(v.Module)
for i := range v.From {
in.order(v.To[i])
in.order(v.From[i])
}
in.order(&v.Rparen)
case *LiteralExpr:
// nothing
case *StringExpr:
// nothing
case *Ident:
// nothing
case *BranchStmt:
// nothing
case *DotExpr:
in.order(v.X)
case *ListExpr:
@ -641,22 +659,20 @@ func (in *input) order(v Expr) {
in.order(x)
}
in.order(&v.End)
case *ListForExpr:
in.order(v.X)
for _, c := range v.For {
case *Comprehension:
in.order(v.Body)
for _, c := range v.Clauses {
in.order(c)
}
in.order(&v.End)
case *ForClauseWithIfClausesOpt:
in.order(v.For)
for _, c := range v.Ifs {
in.order(c)
case *SetExpr:
for _, x := range v.List {
in.order(x)
}
in.order(&v.End)
case *ForClause:
for _, name := range v.Var {
in.order(name)
}
in.order(v.Expr)
in.order(v.Vars)
in.order(v.X)
case *IfClause:
in.order(v.Cond)
case *KeyValueExpr:
@ -671,7 +687,9 @@ func (in *input) order(v Expr) {
for _, x := range v.List {
in.order(x)
}
in.order(&v.End)
if !v.NoBrackets {
in.order(&v.End)
}
case *UnaryExpr:
in.order(v.X)
case *BinaryExpr:
@ -686,16 +704,47 @@ func (in *input) order(v Expr) {
in.order(&v.End)
case *SliceExpr:
in.order(v.X)
in.order(v.Y)
in.order(v.Z)
in.order(v.From)
in.order(v.To)
in.order(v.Step)
case *IndexExpr:
in.order(v.X)
in.order(v.Y)
case *LambdaExpr:
for _, name := range v.Var {
in.order(name)
for _, param := range v.Params {
in.order(param)
}
for _, expr := range v.Body {
in.order(expr)
}
case *ReturnStmt:
if v.Result != nil {
in.order(v.Result)
}
case *DefStmt:
for _, x := range v.Params {
in.order(x)
}
for _, x := range v.Body {
in.order(x)
}
case *ForStmt:
in.order(v.Vars)
in.order(v.X)
for _, x := range v.Body {
in.order(x)
}
case *IfStmt:
in.order(v.Cond)
for _, s := range v.True {
in.order(s)
}
if len(v.False) > 0 {
in.order(&v.ElsePos)
}
for _, s := range v.False {
in.order(s)
}
in.order(v.Expr)
}
if v != nil {
in.post = append(in.post, v)
@ -706,37 +755,19 @@ func (in *input) order(v Expr) {
func (in *input) assignComments() {
// Generate preorder and postorder lists.
in.order(in.file)
in.assignSuffixComments()
in.assignLineComments()
}
// Split into whole-line comments and suffix comments.
var line, suffix []Comment
for _, com := range in.comments {
if com.Suffix {
suffix = append(suffix, com)
} else {
line = append(line, com)
}
}
// Assign line comments to syntax immediately following.
for _, x := range in.pre {
start, _ := x.Span()
xcom := x.Comment()
for len(line) > 0 && start.Byte >= line[0].Start.Byte {
xcom.Before = append(xcom.Before, line[0])
line = line[1:]
}
}
// Remaining line comments go at end of file.
in.file.After = append(in.file.After, line...)
func (in *input) assignSuffixComments() {
// Assign suffix comments to syntax immediately before.
suffix := in.suffixComments
for i := len(in.post) - 1; i >= 0; i-- {
x := in.post[i]
// Do not assign suffix comments to file
// Do not assign suffix comments to file or to block statements
switch x.(type) {
case *File:
case *File, *DefStmt, *IfStmt, *ForStmt, *CommentBlock:
continue
}
@ -759,6 +790,27 @@ func (in *input) assignComments() {
in.file.Before = append(in.file.Before, suffix...)
}
func (in *input) assignLineComments() {
// Assign line comments to syntax immediately following.
line := in.lineComments
for _, x := range in.pre {
start, _ := x.Span()
xcom := x.Comment()
for len(line) > 0 && start.Byte >= line[0].Start.Byte {
xcom.Before = append(xcom.Before, line[0])
line = line[1:]
}
// Line comments can be sorted in a wrong order because they get assigned from different
// parts of the lexer and the parser. Restore the original order.
sort.SliceStable(xcom.Before, func(i, j int) bool {
return xcom.Before[i].Start.Byte < xcom.Before[j].Start.Byte
})
}
// Remaining line comments go at end of file.
in.file.After = append(in.file.After, line...)
}
// reverseComments reverses the []Comment list.
func reverseComments(list []Comment) {
for i, j := 0, len(list)-1; i < j; i, j = i+1, j-1 {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -23,16 +23,27 @@ import (
"strings"
)
// Format returns the formatted form of the given BUILD file.
const (
nestedIndentation = 4 // Indentation of nested blocks
listIndentation = 4 // Indentation of multiline expressions
defIndentation = 8 // Indentation of multiline function definitions
)
// Format returns the formatted form of the given BUILD or bzl file.
func Format(f *File) []byte {
pr := &printer{}
pr := &printer{fileType: f.Type}
pr.file(f)
return pr.Bytes()
}
// FormatString returns the string form of the given expression.
func FormatString(x Expr) string {
pr := &printer{}
fileType := TypeBuild // for compatibility
if file, ok := x.(*File); ok {
fileType = file.Type
}
pr := &printer{fileType: fileType}
switch x := x.(type) {
case *File:
pr.file(x)
@ -44,10 +55,13 @@ func FormatString(x Expr) string {
// A printer collects the state during printing of a file or expression.
type printer struct {
fileType FileType // different rules can be applied to different file types.
bytes.Buffer // output buffer
comment []Comment // pending end-of-line comments
margin int // left margin (indent), a number of spaces
depth int // nesting depth inside ( ) [ ] { }
level int // nesting level of def-, if-else- and for-blocks
needsNewLine bool // true if the next statement needs a new line before it
}
// printf prints to the buffer.
@ -71,6 +85,7 @@ func (p *printer) indent() int {
// To break a line inside an expression that might not be enclosed
// in brackets of some kind, use breakline instead.
func (p *printer) newline() {
p.needsNewLine = false
if len(p.comment) > 0 {
p.printf(" ")
for i, com := range p.comment {
@ -87,6 +102,28 @@ func (p *printer) newline() {
p.printf("\n%*s", p.margin, "")
}
// softNewline postpones a call to newline to the next call of p.newlineIfNeeded()
// If softNewline is called several times, just one newline is printed.
// Usecase: if there are several nested blocks ending at the same time, for instance
//
// if True:
// for a in b:
// pass
// foo()
//
// the last statement (`pass`) doesn't end with a newline, each block ends with a lazy newline
// which actually gets printed only once when right before the next statement (`foo()`) is printed.
func (p *printer) softNewline() {
p.needsNewLine = true
}
// newlineIfNeeded calls newline if softNewline() has previously been called
func (p *printer) newlineIfNeeded() {
if p.needsNewLine == true {
p.newline()
}
}
// breakline breaks the current line, inserting a continuation \ if needed.
// If no continuation \ is needed, breakline flushes end-of-line comments.
func (p *printer) breakline() {
@ -118,63 +155,117 @@ func (p *printer) file(f *File) {
p.newline()
}
for i, stmt := range f.Stmt {
switch stmt := stmt.(type) {
case *CommentBlock:
// comments already handled
case *PythonBlock:
for _, com := range stmt.Before {
p.printf("%s", strings.TrimSpace(com.Token))
p.newline()
}
p.printf("%s", stmt.Token) // includes trailing newline
default:
p.expr(stmt, precLow)
p.newline()
}
for _, com := range stmt.Comment().After {
p.printf("%s", strings.TrimSpace(com.Token))
p.newline()
}
if i+1 < len(f.Stmt) && !compactStmt(stmt, f.Stmt[i+1]) {
p.newline()
}
}
p.statements(f.Stmt)
for _, com := range f.After {
p.printf("%s", strings.TrimSpace(com.Token))
p.newline()
}
p.newlineIfNeeded()
}
func (p *printer) nestedStatements(stmts []Expr) {
p.margin += nestedIndentation
p.level++
p.newline()
p.statements(stmts)
p.margin -= nestedIndentation
p.level--
}
func (p *printer) statements(stmts []Expr) {
for i, stmt := range stmts {
switch stmt := stmt.(type) {
case *CommentBlock:
// comments already handled
default:
p.expr(stmt, precLow)
}
// A CommentBlock is an empty statement without a body,
// it doesn't need an line break after the body
if _, ok := stmt.(*CommentBlock); !ok {
p.softNewline()
}
for _, com := range stmt.Comment().After {
p.newlineIfNeeded()
p.printf("%s", strings.TrimSpace(com.Token))
p.softNewline()
}
// Print an empty line break after the statement unless it's the last statement in the sequence.
// In that case a line break should be printed when the block or the file ends.
if i < len(stmts)-1 {
p.newline()
}
if i+1 < len(stmts) && !p.compactStmt(stmt, stmts[i+1]) {
p.newline()
}
}
}
// compactStmt reports whether the pair of statements s1, s2
// should be printed without an intervening blank line.
// We omit the blank line when both are subinclude statements
// and the second one has no leading comments.
func compactStmt(s1, s2 Expr) bool {
func (p *printer) compactStmt(s1, s2 Expr) bool {
if len(s2.Comment().Before) > 0 {
return false
} else if isLoad(s1) && isLoad(s2) {
// Load statements should be compact
return true
} else if isLoad(s1) || isLoad(s2) {
// Load statements should be separated from anything else
return false
} else if isCommentBlock(s1) || isCommentBlock(s2) {
// Standalone comment blocks shouldn't be attached to other statements
return false
} else if p.fileType != TypeDefault && p.level == 0 {
// Top-level statements in a BUILD or WORKSPACE file
return false
} else if isFunctionDefinition(s1) || isFunctionDefinition(s2) {
// On of the statements is a function definition
return false
} else {
// Depend on how the statements have been printed in the original file
_, end := s1.Span()
start, _ := s2.Span()
return start.Line-end.Line <= 1
}
return (isCall(s1, "subinclude") || isCall(s1, "load")) &&
(isCall(s2, "subinclude") || isCall(s2, "load"))
}
// isCall reports whether x is a call to a function with the given name.
func isCall(x Expr, name string) bool {
c, ok := x.(*CallExpr)
if !ok {
// isLoad reports whether x is a load statement.
func isLoad(x Expr) bool {
_, ok := x.(*LoadStmt)
return ok
}
// isCommentBlock reports whether x is a comment block node.
func isCommentBlock(x Expr) bool {
_, ok := x.(*CommentBlock)
return ok
}
// isFunctionDefinition checks if the statement is a def code block
func isFunctionDefinition(x Expr) bool {
_, ok := x.(*DefStmt)
return ok
}
// isDifferentLines reports whether two positions belong to different lines.
// If one of the positions is null (Line == 0), it's not a real position but probably an indicator
// of manually inserted node. Return false in this case
func isDifferentLines(p1, p2 *Position) bool {
if p1.Line == 0 || p2.Line == 0 {
return false
}
nam, ok := c.X.(*LiteralExpr)
if !ok {
return false
}
return nam.Token == name
return p1.Line != p2.Line
}
// Expression formatting.
@ -203,36 +294,43 @@ func isCall(x Expr, name string) bool {
const (
precLow = iota
precAssign
precComma
precColon
precIn
precIfElse
precOr
precAnd
precCmp
precAdd
precMultiply
precSuffix
precUnary
precConcat
precSuffix
)
// opPrec gives the precedence for operators found in a BinaryExpr.
var opPrec = map[string]int{
"=": precAssign,
"+=": precAssign,
"or": precOr,
"and": precAnd,
"<": precCmp,
">": precCmp,
"==": precCmp,
"!=": precCmp,
"<=": precCmp,
">=": precCmp,
"+": precAdd,
"-": precAdd,
"*": precMultiply,
"/": precMultiply,
"%": precMultiply,
"=": precAssign,
"+=": precAssign,
"-=": precAssign,
"*=": precAssign,
"/=": precAssign,
"//=": precAssign,
"%=": precAssign,
"or": precOr,
"and": precAnd,
"in": precCmp,
"not in": precCmp,
"<": precCmp,
">": precCmp,
"==": precCmp,
"!=": precCmp,
"<=": precCmp,
">=": precCmp,
"+": precAdd,
"-": precAdd,
"*": precMultiply,
"/": precMultiply,
"//": precMultiply,
"%": precMultiply,
"|": precMultiply,
}
// expr prints the expression v to the print buffer.
@ -252,6 +350,8 @@ func (p *printer) expr(v Expr, outerPrec int) {
// TODO(bazel-team): Check whether it is valid to emit comments right now,
// and if not, insert them earlier in the output instead, at the most
// recent \n not following a \ line.
p.newlineIfNeeded()
if before := v.Comment().Before; len(before) > 0 {
// Want to print a line comment.
// Line comments must be at the current margin.
@ -291,14 +391,19 @@ func (p *printer) expr(v Expr, outerPrec int) {
case *LiteralExpr:
p.printf("%s", v.Token)
case *Ident:
p.printf("%s", v.Name)
case *BranchStmt:
p.printf("%s", v.Token)
case *StringExpr:
// If the Token is a correct quoting of Value, use it.
// This preserves the specific escaping choices that
// BUILD authors have made, and it also works around
// b/7272572.
if strings.HasPrefix(v.Token, `"`) {
s, triple, err := unquote(v.Token)
if s == v.Value && triple == v.TripleQuote && err == nil {
// If the Token is a correct quoting of Value and has double quotes, use it,
// also use it if it has single quotes and the value itself contains a double quote symbol.
// This preserves the specific escaping choices that BUILD authors have made.
s, triple, err := unquote(v.Token)
if s == v.Value && triple == v.TripleQuote && err == nil {
if strings.HasPrefix(v.Token, `"`) || strings.ContainsRune(v.Value, '"') {
p.printf("%s", v.Token)
break
}
@ -309,7 +414,16 @@ func (p *printer) expr(v Expr, outerPrec int) {
case *DotExpr:
addParen(precSuffix)
p.expr(v.X, precSuffix)
_, xEnd := v.X.Span()
isMultiline := isDifferentLines(&v.NamePos, &xEnd)
if isMultiline {
p.margin += listIndentation
p.breakline()
}
p.printf(".%s", v.Name)
if isMultiline {
p.margin -= listIndentation
}
case *IndexExpr:
addParen(precSuffix)
@ -327,12 +441,18 @@ func (p *printer) expr(v Expr, outerPrec int) {
addParen(precSuffix)
p.expr(v.X, precSuffix)
p.printf("[")
if v.Y != nil {
p.expr(v.Y, precLow)
if v.From != nil {
p.expr(v.From, precLow)
}
p.printf(":")
if v.Z != nil {
p.expr(v.Z, precLow)
if v.To != nil {
p.expr(v.To, precLow)
}
if v.SecondColon.Byte != 0 {
p.printf(":")
if v.Step != nil {
p.expr(v.Step, precLow)
}
}
p.printf("]")
@ -348,14 +468,14 @@ func (p *printer) expr(v Expr, outerPrec int) {
case *LambdaExpr:
addParen(precColon)
p.printf("lambda ")
for i, name := range v.Var {
for i, param := range v.Params {
if i > 0 {
p.printf(", ")
}
p.expr(name, precLow)
p.expr(param, precLow)
}
p.printf(": ")
p.expr(v.Expr, precColon)
p.expr(v.Body[0], precLow) // lambdas should have exactly one statement
case *BinaryExpr:
// Precedence: use the precedence of the operator.
@ -379,7 +499,7 @@ func (p *printer) expr(v Expr, outerPrec int) {
if v.LineBreak {
p.margin = p.indent()
if v.Op == "=" {
p.margin += 4
p.margin += listIndentation
}
}
@ -394,36 +514,142 @@ func (p *printer) expr(v Expr, outerPrec int) {
p.margin = m
case *ParenExpr:
p.seq("()", []Expr{v.X}, &v.End, modeParen, false, v.ForceMultiLine)
p.seq("()", &v.Start, &[]Expr{v.X}, &v.End, modeParen, false, v.ForceMultiLine)
case *CallExpr:
addParen(precSuffix)
p.expr(v.X, precSuffix)
p.seq("()", v.List, &v.End, modeCall, v.ForceCompact, v.ForceMultiLine)
p.seq("()", &v.ListStart, &v.List, &v.End, modeCall, v.ForceCompact, v.ForceMultiLine)
case *LoadStmt:
addParen(precSuffix)
p.printf("load")
args := []Expr{v.Module}
for i := range v.From {
from := v.From[i]
to := v.To[i]
var arg Expr
if from.Name == to.Name {
// Suffix comments are attached to the `to` token,
// Before comments are attached to the `from` token,
// they need to be combined.
arg = from.asString()
arg.Comment().Before = to.Comment().Before
} else {
arg = &BinaryExpr{
X: to,
Op: "=",
Y: from.asString(),
}
}
args = append(args, arg)
}
p.seq("()", &v.Load, &args, &v.Rparen, modeLoad, v.ForceCompact, false)
case *ListExpr:
p.seq("[]", v.List, &v.End, modeList, false, v.ForceMultiLine)
p.seq("[]", &v.Start, &v.List, &v.End, modeList, false, v.ForceMultiLine)
case *SetExpr:
p.seq("{}", &v.Start, &v.List, &v.End, modeList, false, v.ForceMultiLine)
case *TupleExpr:
p.seq("()", v.List, &v.End, modeTuple, v.ForceCompact, v.ForceMultiLine)
mode := modeTuple
if v.NoBrackets {
mode = modeSeq
}
p.seq("()", &v.Start, &v.List, &v.End, mode, v.ForceCompact, v.ForceMultiLine)
case *DictExpr:
var list []Expr
for _, x := range v.List {
list = append(list, x)
}
p.seq("{}", list, &v.End, modeDict, false, v.ForceMultiLine)
p.seq("{}", &v.Start, &list, &v.End, modeDict, false, v.ForceMultiLine)
case *ListForExpr:
case *Comprehension:
p.listFor(v)
case *ConditionalExpr:
addParen(precSuffix)
p.expr(v.Then, precSuffix)
p.expr(v.Then, precIfElse)
p.printf(" if ")
p.expr(v.Test, precSuffix)
p.expr(v.Test, precIfElse)
p.printf(" else ")
p.expr(v.Else, precSuffix)
p.expr(v.Else, precIfElse)
case *ReturnStmt:
p.printf("return")
if v.Result != nil {
p.printf(" ")
p.expr(v.Result, precLow)
}
case *DefStmt:
p.printf("def ")
p.printf(v.Name)
p.seq("()", &v.StartPos, &v.Params, nil, modeDef, v.ForceCompact, v.ForceMultiLine)
p.printf(":")
p.nestedStatements(v.Body)
case *ForStmt:
p.printf("for ")
p.expr(v.Vars, precLow)
p.printf(" in ")
p.expr(v.X, precLow)
p.printf(":")
p.nestedStatements(v.Body)
case *IfStmt:
block := v
isFirst := true
needsEmptyLine := false
for {
p.newlineIfNeeded()
if !isFirst {
if needsEmptyLine {
p.newline()
}
p.printf("el")
}
p.printf("if ")
p.expr(block.Cond, precLow)
p.printf(":")
p.nestedStatements(block.True)
isFirst = false
_, end := block.True[len(block.True)-1].Span()
needsEmptyLine = block.ElsePos.Pos.Line-end.Line > 1
// If the else-block contains just one statement which is an IfStmt, flatten it as a part
// of if-elif chain.
// Don't do it if the "else" statement has a suffix comment.
if len(block.ElsePos.Comment().Suffix) == 0 && len(block.False) == 1 {
next, ok := block.False[0].(*IfStmt)
if ok {
block = next
continue
}
}
break
}
if len(block.False) > 0 {
p.newlineIfNeeded()
if needsEmptyLine {
p.newline()
}
p.printf("else:")
p.comment = append(p.comment, block.ElsePos.Comment().Suffix...)
p.nestedStatements(block.False)
}
case *ForClause:
p.printf("for ")
p.expr(v.Vars, precLow)
p.printf(" in ")
p.expr(v.X, precLow)
case *IfClause:
p.printf("if ")
p.expr(v.Cond, precLow)
}
// Add closing parenthesis if needed.
@ -449,87 +675,150 @@ const (
modeTuple // (x,)
modeParen // (x)
modeDict // {x:y}
modeSeq // x, y
modeDef // def f(x, y)
modeLoad // load(a, b, c)
)
// useCompactMode reports whether a sequence should be formatted in a compact mode
func (p *printer) useCompactMode(start *Position, list *[]Expr, end *End, mode seqMode, forceCompact, forceMultiLine bool) bool {
// If there are line comments, use multiline
// so we can print the comments before the closing bracket.
for _, x := range *list {
if len(x.Comment().Before) > 0 {
return false
}
}
if end != nil && len(end.Before) > 0 {
return false
}
// Implicit tuples are always compact
if mode == modeSeq {
return true
}
// In the Default printing mode try to keep the original printing style.
// Non-top-level statements and lists of arguments of a function definition
// should also keep the original style regardless of the mode.
if (p.level != 0 || p.fileType == TypeDefault || mode == modeDef) && mode != modeLoad {
// If every element (including the brackets) ends on the same line where the next element starts,
// use the compact mode, otherwise use multiline mode.
// If an node's line number is 0, it means it doesn't appear in the original file,
// its position shouldn't be taken into account.
previousEnd := start
for _, x := range *list {
start, end := x.Span()
if isDifferentLines(&start, previousEnd) {
return false
}
if end.Line != 0 {
previousEnd = &end
}
}
if end != nil && isDifferentLines(previousEnd, &end.Pos) {
return false
}
return true
}
// In Build mode, use the forceMultiline and forceCompact values
if forceMultiLine {
return false
}
if forceCompact {
return true
}
// If neither of the flags are set, use compact mode only for empty or 1-element sequences
return len(*list) <= 1
}
// seq formats a list of values inside a given bracket pair (brack = "()", "[]", "{}").
// The end node holds any trailing comments to be printed just before the
// closing bracket.
// The mode parameter specifies the sequence mode (see above).
// If multiLine is true, seq avoids the compact form even
// for 0- and 1-element sequences.
func (p *printer) seq(brack string, list []Expr, end *End, mode seqMode, forceCompact, forceMultiLine bool) {
p.printf("%s", brack[:1])
func (p *printer) seq(brack string, start *Position, list *[]Expr, end *End, mode seqMode, forceCompact, forceMultiLine bool) {
if mode != modeSeq {
p.printf("%s", brack[:1])
}
p.depth++
// If there are line comments, force multiline
// so we can print the comments before the closing bracket.
for _, x := range list {
if len(x.Comment().Before) > 0 {
forceMultiLine = true
defer func() {
p.depth--
if mode != modeSeq {
p.printf("%s", brack[1:])
}
}
if len(end.Before) > 0 {
forceMultiLine = true
}
}()
// Resolve possibly ambiguous call arguments explicitly
// instead of depending on implicit resolution in logic below.
if forceMultiLine {
forceCompact = false
}
switch {
case len(list) == 0 && !forceMultiLine:
// Compact form: print nothing.
case len(list) == 1 && !forceMultiLine:
// Compact form.
p.expr(list[0], precLow)
// Tuple must end with comma, to mark it as a tuple.
if mode == modeTuple {
p.printf(",")
}
case forceCompact:
// Compact form but multiple elements.
for i, x := range list {
if p.useCompactMode(start, list, end, mode, forceCompact, forceMultiLine) {
for i, x := range *list {
if i > 0 {
p.printf(", ")
}
p.expr(x, precLow)
}
default:
// Multi-line form.
p.margin += 4
for i, x := range list {
// If we are about to break the line before the first
// element and there are trailing end-of-line comments
// waiting to be printed, delay them and print them as
// whole-line comments preceding that element.
// Do this by printing a newline ourselves and positioning
// so that the end-of-line comment, with the two spaces added,
// will line up with the current margin.
if i == 0 && len(p.comment) > 0 {
p.printf("\n%*s", p.margin-2, "")
}
p.newline()
p.expr(x, precLow)
if mode != modeParen || i+1 < len(list) {
p.printf(",")
}
// Single-element tuple must end with comma, to mark it as a tuple.
if len(*list) == 1 && mode == modeTuple {
p.printf(",")
}
// Final comments.
return
}
// Multi-line form.
indentation := listIndentation
if mode == modeDef {
indentation = defIndentation
}
p.margin += indentation
for i, x := range *list {
// If we are about to break the line before the first
// element and there are trailing end-of-line comments
// waiting to be printed, delay them and print them as
// whole-line comments preceding that element.
// Do this by printing a newline ourselves and positioning
// so that the end-of-line comment, with the two spaces added,
// will line up with the current margin.
if i == 0 && len(p.comment) > 0 {
p.printf("\n%*s", p.margin-2, "")
}
p.newline()
p.expr(x, precLow)
if i+1 < len(*list) || needsTrailingComma(mode, x) {
p.printf(",")
}
}
// Final comments.
if end != nil {
for _, com := range end.Before {
p.newline()
p.printf("%s", strings.TrimSpace(com.Token))
}
p.margin -= 4
}
p.margin -= indentation
// in modeDef print the closing bracket on the same line
if mode != modeDef {
p.newline()
}
p.depth--
p.printf("%s", brack[1:])
}
func needsTrailingComma(mode seqMode, v Expr) bool {
switch mode {
case modeDef:
return false
case modeParen:
return false
case modeCall:
// *args and **kwargs in fn calls
switch v := v.(type) {
case *UnaryExpr:
if v.Op == "*" || v.Op == "**" {
return false
}
}
}
return true
}
// listFor formats a ListForExpr (list comprehension).
@ -543,7 +832,7 @@ func (p *printer) seq(brack string, list []Expr, end *End, mode seqMode, forceCo
// if c
// ]
//
func (p *printer) listFor(v *ListForExpr) {
func (p *printer) listFor(v *Comprehension) {
multiLine := v.ForceMultiLine || len(v.End.Before) > 0
// space breaks the line in multiline mode
@ -556,41 +845,23 @@ func (p *printer) listFor(v *ListForExpr) {
}
}
if v.Brack != "" {
p.depth++
p.printf("%s", v.Brack[:1])
open, close := "[", "]"
if v.Curly {
open, close = "{", "}"
}
p.depth++
p.printf("%s", open)
if multiLine {
if v.Brack != "" {
p.margin += 4
}
p.margin += listIndentation
p.newline()
}
p.expr(v.X, precLow)
p.expr(v.Body, precLow)
for _, c := range v.For {
for _, c := range v.Clauses {
space()
p.printf("for ")
for i, name := range c.For.Var {
if i > 0 {
p.printf(", ")
}
p.expr(name, precLow)
}
p.printf(" in ")
p.expr(c.For.Expr, precLow)
p.comment = append(p.comment, c.For.Comment().Suffix...)
for _, i := range c.Ifs {
space()
p.printf("if ")
p.expr(i.Cond, precLow)
p.comment = append(p.comment, i.Comment().Suffix...)
}
p.comment = append(p.comment, c.Comment().Suffix...)
p.expr(c, precLow)
}
if multiLine {
@ -598,14 +869,14 @@ func (p *printer) listFor(v *ListForExpr) {
p.newline()
p.printf("%s", strings.TrimSpace(com.Token))
}
if v.Brack != "" {
p.margin -= 4
}
p.margin -= listIndentation
p.newline()
}
if v.Brack != "" {
p.printf("%s", v.Brack[1:])
p.depth--
}
p.printf("%s", close)
p.depth--
}
func (p *printer) isTopLevel() bool {
return p.margin == 0
}

View File

@ -18,6 +18,8 @@ distributed under the License is distributed on an "AS IS" BASIS,
package build
import (
"path"
"path/filepath"
"regexp"
"sort"
"strings"
@ -61,19 +63,24 @@ func Rewrite(f *File, info *RewriteInfo) {
for _, r := range rewrites {
if !disabled(r.name) {
r.fn(f, info)
if f.Type&r.scope != 0 {
r.fn(f, info)
}
}
}
}
// RewriteInfo collects information about what Rewrite did.
type RewriteInfo struct {
EditLabel int // number of label strings edited
NameCall int // number of calls with argument names added
SortCall int // number of call argument lists sorted
SortStringList int // number of string lists sorted
UnsafeSort int // number of unsafe string lists sorted
Log []string // log entries - may change
EditLabel int // number of label strings edited
NameCall int // number of calls with argument names added
SortCall int // number of call argument lists sorted
SortStringList int // number of string lists sorted
UnsafeSort int // number of unsafe string lists sorted
SortLoad int // number of load argument lists sorted
FormatDocstrings int // number of reindented docstrings
ReorderArguments int // number of reordered function call arguments
Log []string // log entries - may change
}
func (info *RewriteInfo) String() string {
@ -93,23 +100,56 @@ func (info *RewriteInfo) String() string {
if info.UnsafeSort > 0 {
s += " unsafesort"
}
if info.SortLoad > 0 {
s += " sortload"
}
if info.FormatDocstrings > 0 {
s += " formatdocstrings"
}
if info.ReorderArguments > 0 {
s += " reorderarguments"
}
if s != "" {
s = s[1:]
}
return s
}
// Each rewrite function can be either applied for BUILD files, other files (such as .bzl),
// or all files.
const (
scopeDefault = TypeDefault
scopeBuild = TypeBuild | TypeWorkspace // BUILD and WORKSPACE files
scopeBoth = scopeDefault | scopeBuild
)
// rewrites is the list of all Buildifier rewrites, in the order in which they are applied.
// The order here matters: for example, label canonicalization must happen
// before sorting lists of strings.
var rewrites = []struct {
name string
fn func(*File, *RewriteInfo)
name string
fn func(*File, *RewriteInfo)
scope FileType
}{
{"callsort", sortCallArgs},
{"label", fixLabels},
{"listsort", sortStringLists},
{"multiplus", fixMultilinePlus},
{"callsort", sortCallArgs, scopeBuild},
{"label", fixLabels, scopeBuild},
{"listsort", sortStringLists, scopeBoth},
{"multiplus", fixMultilinePlus, scopeBuild},
{"loadsort", sortLoadArgs, scopeBoth},
{"formatdocstrings", formatDocstrings, scopeBoth},
{"reorderarguments", reorderArguments, scopeBoth},
}
// DisableLoadSortForBuildFiles disables the loadsort transformation for BUILD files.
// This is a temporary function for backward compatibility, can be called if there's plenty of
// already formatted BUILD files that shouldn't be changed by the transformation.
func DisableLoadSortForBuildFiles() {
for i := range rewrites {
if rewrites[i].name == "loadsort" {
rewrites[i].scope = scopeDefault
break
}
}
}
// leaveAlone reports whether any of the nodes on the stack are marked
@ -160,8 +200,9 @@ func keepSorted(x Expr) bool {
// First, it joins labels written as string addition, turning
// "//x" + ":y" (usually split across multiple lines) into "//x:y".
//
// Second, it removes redundant target qualifiers, turning
// "//third_party/m4:m4" into "//third_party/m4".
// Second, it removes redundant target qualifiers, turning labels like
// "//third_party/m4:m4" into "//third_party/m4" as well as ones like
// "@foo//:foo" into "@foo".
//
func fixLabels(f *File, info *RewriteInfo) {
joinLabel := func(p *Expr) {
@ -194,22 +235,57 @@ func fixLabels(f *File, info *RewriteInfo) {
*p = str1
}
// labelRE matches label strings //x/y/z:abc.
// $1 is //x/y/z, $2 is x/y/, $3 is z, $4 is :abc, and $5 is abc.
labelRE := regexp.MustCompile(`^(//(.*/)?([^:]+))(:([^:]+))?$`)
labelPrefix := "//"
if tables.StripLabelLeadingSlashes {
labelPrefix = ""
}
// labelRE matches label strings, e.g. @r//x/y/z:abc
// where $1 is @r//x/y/z, $2 is @r//, $3 is r, $4 is z, $5 is abc.
labelRE := regexp.MustCompile(`^(((?:@(\w+))?//|` + labelPrefix + `)(?:.+/)?([^:]*))(?::([^:]+))?$`)
shortenLabel := func(v Expr) {
str, ok := v.(*StringExpr)
if !ok {
return
}
editPerformed := false
if tables.StripLabelLeadingSlashes && strings.HasPrefix(str.Value, "//") {
if filepath.Dir(f.Path) == "." || !strings.HasPrefix(str.Value, "//:") {
editPerformed = true
str.Value = str.Value[2:]
}
}
if tables.ShortenAbsoluteLabelsToRelative {
thisPackage := labelPrefix + filepath.Dir(f.Path)
// filepath.Dir on Windows uses backslashes as separators, while labels always have slashes.
if filepath.Separator != '/' {
thisPackage = strings.Replace(thisPackage, string(filepath.Separator), "/", -1)
}
if str.Value == thisPackage {
editPerformed = true
str.Value = ":" + path.Base(str.Value)
} else if strings.HasPrefix(str.Value, thisPackage+":") {
editPerformed = true
str.Value = str.Value[len(thisPackage):]
}
}
m := labelRE.FindStringSubmatch(str.Value)
if m == nil {
return
}
if m[3] == m[5] {
info.EditLabel++
if m[4] != "" && m[4] == m[5] { // e.g. //foo:foo
editPerformed = true
str.Value = m[1]
} else if m[3] != "" && m[4] == "" && m[3] == m[5] { // e.g. @foo//:foo
editPerformed = true
str.Value = "@" + m[3]
}
if editPerformed {
info.EditLabel++
}
}
@ -227,8 +303,8 @@ func fixLabels(f *File, info *RewriteInfo) {
if !ok || as.Op != "=" {
continue
}
key, ok := as.X.(*LiteralExpr)
if !ok || !tables.IsLabelArg[key.Token] || tables.LabelBlacklist[callName(v)+"."+key.Token] {
key, ok := as.X.(*Ident)
if !ok || !tables.IsLabelArg[key.Name] || tables.LabelBlacklist[callName(v)+"."+key.Name] {
continue
}
if leaveAlone1(as.Y) {
@ -242,6 +318,15 @@ func fixLabels(f *File, info *RewriteInfo) {
joinLabel(&list.List[i])
shortenLabel(list.List[i])
}
}
if set, ok := as.Y.(*SetExpr); ok {
for i := range set.List {
if leaveAlone1(set.List[i]) {
continue
}
joinLabel(&set.List[i])
shortenLabel(set.List[i])
}
} else {
joinLabel(&as.Y)
shortenLabel(as.Y)
@ -254,11 +339,11 @@ func fixLabels(f *File, info *RewriteInfo) {
// callName returns the name of the rule being called by call.
// If the call is not to a literal rule name, callName returns "".
func callName(call *CallExpr) string {
rule, ok := call.X.(*LiteralExpr)
rule, ok := call.X.(*Ident)
if !ok {
return ""
}
return rule.Token
return rule.Name
}
// sortCallArgs sorts lists of named arguments to a call.
@ -328,8 +413,8 @@ func ruleNamePriority(rule, arg string) int {
// Otherwise argName returns "".
func argName(x Expr) string {
if as, ok := x.(*BinaryExpr); ok && as.Op == "=" {
if id, ok := as.X.(*LiteralExpr); ok {
return id.Token
if id, ok := as.X.(*Ident); ok {
return id.Name
}
}
return ""
@ -379,12 +464,12 @@ func sortStringLists(f *File, info *RewriteInfo) {
if !ok || as.Op != "=" || leaveAlone1(as) || doNotSort(as) {
continue
}
key, ok := as.X.(*LiteralExpr)
key, ok := as.X.(*Ident)
if !ok {
continue
}
context := rule + "." + key.Token
if !tables.IsSortableListArg[key.Token] || tables.SortableBlacklist[context] {
context := rule + "." + key.Name
if !tables.IsSortableListArg[key.Name] || tables.SortableBlacklist[context] || f.Type == TypeDefault {
continue
}
if disabled("unsafesort") && !tables.SortableWhitelist[context] && !allowedSort(context) {
@ -414,7 +499,7 @@ func sortStringLists(f *File, info *RewriteInfo) {
return
}
// "keep sorted" comment above first list element also forces sorting of list.
if len(v.List) > 0 && keepSorted(v.List[0]) {
if len(v.List) > 0 && (keepSorted(v) || keepSorted(v.List[0])) {
sortStringList(v, info, "?")
}
}
@ -435,7 +520,7 @@ func sortStringList(x Expr, info *RewriteInfo, context string) {
return
}
forceSort := keepSorted(list.List[0])
forceSort := keepSorted(list) || keepSorted(list.List[0])
// TODO(bazel-team): Decide how to recognize lists that cannot
// be sorted. Avoiding all lists with comments avoids sorting
@ -528,11 +613,11 @@ func callArgName(stk []Expr) string {
if !ok {
return ""
}
rule, ok := call.X.(*LiteralExpr)
rule, ok := call.X.(*Ident)
if !ok {
return ""
}
return rule.Token + "." + arg
return rule.Name + "." + arg
}
// A stringSortKey records information about a single string literal to be
@ -559,7 +644,7 @@ func makeSortKey(index int, x *StringExpr) stringSortKey {
switch {
case strings.HasPrefix(x.Value, ":"):
key.phase = 1
case strings.HasPrefix(x.Value, "//"):
case strings.HasPrefix(x.Value, "//") || (tables.StripLabelLeadingSlashes && !strings.HasPrefix(x.Value, "@")):
key.phase = 2
case strings.HasPrefix(x.Value, "@"):
key.phase = 3
@ -753,6 +838,20 @@ func fixMultilinePlus(f *File, info *RewriteInfo) {
})
}
func sortLoadArgs(f *File, info *RewriteInfo) {
Walk(f, func(v Expr, stk []Expr) {
load, ok := v.(*LoadStmt)
if !ok {
return
}
args := loadArgs{From: load.From, To: load.To}
sort.Sort(args)
if args.modified {
info.SortLoad++
}
})
}
// hasComments reports whether any comments are associated with
// the list or its elements.
func hasComments(list *ListExpr) (line, suffix bool) {
@ -774,3 +873,129 @@ func hasComments(list *ListExpr) (line, suffix bool) {
}
return
}
// A wrapper for a LoadStmt's From and To slices for consistent sorting of their contents.
// It's assumed that the following slices have the same length. The contents are sorted by
// the `To` attribute, but all items with equal "From" and "To" parts are placed before the items
// with different parts.
type loadArgs struct {
From []*Ident
To []*Ident
modified bool
}
func (args loadArgs) Len() int {
return len(args.From)
}
func (args loadArgs) Swap(i, j int) {
args.From[i], args.From[j] = args.From[j], args.From[i]
args.To[i], args.To[j] = args.To[j], args.To[i]
args.modified = true
}
func (args loadArgs) Less(i, j int) bool {
// Arguments with equal "from" and "to" parts are prioritized
equalI := args.From[i].Name == args.To[i].Name
equalJ := args.From[j].Name == args.To[j].Name
if equalI != equalJ {
// If equalI and !equalJ, return true, otherwise false.
// Equivalently, return equalI.
return equalI
}
return args.To[i].Name < args.To[j].Name
}
// formatDocstrings fixes the indentation and trailing whitespace of docstrings
func formatDocstrings(f *File, info *RewriteInfo) {
Walk(f, func(v Expr, stk []Expr) {
def, ok := v.(*DefStmt)
if !ok || len(def.Body) == 0 {
return
}
docstring, ok := def.Body[0].(*StringExpr)
if !ok || !docstring.TripleQuote {
return
}
oldIndentation := docstring.Start.LineRune - 1 // LineRune starts with 1
newIndentation := nestedIndentation * len(stk)
// Operate on Token, not Value, because their line breaks can be different if a line ends with
// a backslash.
updatedToken := formatString(docstring.Token, oldIndentation, newIndentation)
if updatedToken != docstring.Token {
docstring.Token = updatedToken
// Update the value to keep it consistent with Token
docstring.Value, _, _ = unquote(updatedToken)
info.FormatDocstrings++
}
})
}
// formatString modifies a string value of a docstring to match the new indentation level and
// to remove trailing whitespace from its lines.
func formatString(value string, oldIndentation, newIndentation int) string {
difference := newIndentation - oldIndentation
lines := strings.Split(value, "\n")
for i, line := range lines {
if i == 0 {
// The first line shouldn't be touched because it starts right after ''' or """
continue
}
if difference > 0 {
line = strings.Repeat(" ", difference) + line
} else {
for i, rune := range line {
if i == -difference || rune != ' ' {
line = line[i:]
break
}
}
}
if i != len(lines)-1 {
// Remove trailing space from the line unless it's the last line that's responsible
// for the indentation of the closing `"""`
line = strings.TrimRight(line, " ")
}
lines[i] = line
}
return strings.Join(lines, "\n")
}
// argumentType returns an integer by which funcall arguments can be sorted:
// 1 for positional, 2 for named, 3 for *args, 4 for **kwargs
func argumentType(expr Expr) int {
switch expr := expr.(type) {
case *UnaryExpr:
switch expr.Op {
case "**":
return 4
case "*":
return 3
}
case *BinaryExpr:
if expr.Op == "=" {
return 2
}
}
return 1
}
// reorderArguments fixes the order of arguments of a function call
// (positional, named, *args, **kwargs)
func reorderArguments(f *File, info *RewriteInfo) {
Walk(f, func(expr Expr, stack []Expr) {
call, ok := expr.(*CallExpr)
if !ok {
return
}
compare := func(i, j int) bool {
return argumentType(call.List[i]) < argumentType(call.List[j])
}
if !sort.SliceIsSorted(call.List, compare) {
sort.SliceStable(call.List, compare)
info.ReorderArguments++
}
})
}

View File

@ -18,33 +18,64 @@ distributed under the License is distributed on an "AS IS" BASIS,
package build
import "strings"
import (
"path/filepath"
"strings"
)
// A Rule represents a single BUILD rule.
type Rule struct {
Call *CallExpr
Call *CallExpr
ImplicitName string // The name which should be used if the name attribute is not set. See the comment on File.implicitRuleName.
}
// NewRule is a simple constructor for Rule.
func NewRule(call *CallExpr) *Rule {
return &Rule{call, ""}
}
func (f *File) Rule(call *CallExpr) *Rule {
r := &Rule{call, ""}
if r.AttrString("name") == "" {
r.ImplicitName = f.implicitRuleName()
}
return r
}
// Rules returns the rules in the file of the given kind (such as "go_library").
// If kind == "", Rules returns all rules in the file.
func (f *File) Rules(kind string) []*Rule {
var all []*Rule
for _, stmt := range f.Stmt {
call, ok := stmt.(*CallExpr)
if !ok {
continue
}
rule := &Rule{call}
if kind != "" && rule.Kind() != kind {
continue
}
all = append(all, rule)
Walk(stmt, func(x Expr, stk []Expr) {
call, ok := x.(*CallExpr)
if !ok {
return
}
// Skip nested calls.
for _, frame := range stk {
if _, ok := frame.(*CallExpr); ok {
return
}
}
// Check if the rule kind is correct.
rule := f.Rule(call)
if kind != "" && rule.Kind() != kind {
return
}
all = append(all, rule)
})
}
return all
}
// RuleAt returns the rule in the file that starts at the specified line, or null if no such rule.
func (f *File) RuleAt(linenum int) *Rule {
for _, stmt := range f.Stmt {
call, ok := stmt.(*CallExpr)
if !ok {
@ -52,7 +83,7 @@ func (f *File) RuleAt(linenum int) *Rule {
}
start, end := call.X.Span()
if start.Line <= linenum && linenum <= end.Line {
return &Rule{call}
return f.Rule(call)
}
}
return nil
@ -65,9 +96,9 @@ func (f *File) DelRules(kind, name string) int {
var i int
for _, stmt := range f.Stmt {
if call, ok := stmt.(*CallExpr); ok {
r := &Rule{call}
r := f.Rule(call)
if (kind == "" || r.Kind() == kind) &&
(name == "" || r.AttrString("name") == name) {
(name == "" || r.Name() == name) {
continue
}
}
@ -79,6 +110,42 @@ func (f *File) DelRules(kind, name string) int {
return n
}
// If a build file contains exactly one unnamed rule, and no rules in the file explicitly have the
// same name as the name of the directory the build file is in, we treat the unnamed rule as if it
// had the name of the directory containing the BUILD file.
// This is following a convention used in the Pants build system to cut down on boilerplate.
func (f *File) implicitRuleName() string {
// We disallow empty names in the top-level BUILD files.
dir := filepath.Dir(f.Path)
if dir == "." {
return ""
}
sawAnonymousRule := false
possibleImplicitName := filepath.Base(dir)
for _, stmt := range f.Stmt {
call, ok := stmt.(*CallExpr)
if !ok {
continue
}
temp := &Rule{call, ""}
if temp.AttrString("name") == possibleImplicitName {
// A target explicitly has the name of the dir, so no implicit targets are allowed.
return ""
}
if temp.Kind() != "" && temp.AttrString("name") == "" {
if sawAnonymousRule {
return ""
}
sawAnonymousRule = true
}
}
if sawAnonymousRule {
return possibleImplicitName
}
return ""
}
// Kind returns the rule's kind (such as "go_library").
// The kind of the rule may be given by a literal or it may be a sequence of dot expressions that
// begins with a literal, if the call expression does not conform to either of these forms, an
@ -94,11 +161,11 @@ func (r *Rule) Kind() string {
names = append(names, x.Name)
expr = x.X
}
x, ok := expr.(*LiteralExpr)
x, ok := expr.(*Ident)
if !ok {
return ""
}
names = append(names, x.Token)
names = append(names, x.Name)
// Reverse the elements since the deepest expression contains the leading literal
for l, r := 0, len(names)-1; l < r; l, r = l+1, r-1 {
names[l], names[r] = names[r], names[l]
@ -110,7 +177,7 @@ func (r *Rule) Kind() string {
func (r *Rule) SetKind(kind string) {
names := strings.Split(kind, ".")
var expr Expr
expr = &LiteralExpr{Token: names[0]}
expr = &Ident{Name: names[0]}
for _, name := range names[1:] {
expr = &DotExpr{X: expr, Name: name}
}
@ -118,9 +185,13 @@ func (r *Rule) SetKind(kind string) {
}
// Name returns the rule's target name.
// If the rule has no target name, Name returns the empty string.
// If the rule has no explicit target name, Name returns the implicit name if there is one, else the empty string.
func (r *Rule) Name() string {
return r.AttrString("name")
explicitName := r.AttrString("name")
if explicitName == "" && r.Kind() != "package" {
return r.ImplicitName
}
return explicitName
}
// AttrKeys returns the keys of all the rule's attributes.
@ -128,8 +199,8 @@ func (r *Rule) AttrKeys() []string {
var keys []string
for _, expr := range r.Call.List {
if binExpr, ok := expr.(*BinaryExpr); ok && binExpr.Op == "=" {
if keyExpr, ok := binExpr.X.(*LiteralExpr); ok {
keys = append(keys, keyExpr.Token)
if keyExpr, ok := binExpr.X.(*Ident); ok {
keys = append(keys, keyExpr.Name)
}
}
}
@ -145,8 +216,8 @@ func (r *Rule) AttrDefn(key string) *BinaryExpr {
if !ok || as.Op != "=" {
continue
}
k, ok := as.X.(*LiteralExpr)
if !ok || k.Token != key {
k, ok := as.X.(*Ident)
if !ok || k.Name != key {
continue
}
return as
@ -174,8 +245,8 @@ func (r *Rule) DelAttr(key string) Expr {
if !ok || as.Op != "=" {
continue
}
k, ok := as.X.(*LiteralExpr)
if !ok || k.Token != key {
k, ok := as.X.(*Ident)
if !ok || k.Name != key {
continue
}
copy(list[i:], list[i+1:])
@ -197,7 +268,7 @@ func (r *Rule) SetAttr(key string, val Expr) {
r.Call.List = append(r.Call.List,
&BinaryExpr{
X: &LiteralExpr{Token: key},
X: &Ident{Name: key},
Op: "=",
Y: val,
},
@ -210,11 +281,14 @@ func (r *Rule) SetAttr(key string, val Expr) {
// If the rule has no such attribute or the attribute is not an identifier or number,
// AttrLiteral returns "".
func (r *Rule) AttrLiteral(key string) string {
lit, ok := r.Attr(key).(*LiteralExpr)
if !ok {
return ""
value := r.Attr(key)
if ident, ok := value.(*Ident); ok {
return ident.Name
}
return lit.Token
if literal, ok := value.(*LiteralExpr); ok {
return literal.Token
}
return ""
}
// AttrString returns the value of the rule's attribute

View File

@ -57,9 +57,8 @@ type Expr interface {
// A Comment represents a single # comment.
type Comment struct {
Start Position
Token string // without trailing newline
Suffix bool // an end of line (not whole line) comment
Start Position
Token string // without trailing newline
}
// Comments collects the comments associated with an expression.
@ -83,16 +82,25 @@ func (c *Comments) Comment() *Comments {
// A File represents an entire BUILD file.
type File struct {
Path string // file path, relative to workspace directory
Type FileType
Comments
Stmt []Expr
}
func (x *File) Span() (start, end Position) {
if len(x.Stmt) == 0 {
// DisplayPath returns the filename if it's not empty, "<stdin>" otherwise
func (f *File) DisplayPath() string {
if f.Path == "" {
return "<stdin>"
}
return f.Path
}
func (f *File) Span() (start, end Position) {
if len(f.Stmt) == 0 {
return
}
start, _ = x.Stmt[0].Span()
_, end = x.Stmt[len(x.Stmt)-1].Span()
start, _ = f.Stmt[0].Span()
_, end = f.Stmt[len(f.Stmt)-1].Span()
return start, end
}
@ -107,18 +115,39 @@ func (x *CommentBlock) Span() (start, end Position) {
return x.Start, x.Start
}
// A PythonBlock represents a blob of Python code, typically a def or for loop.
type PythonBlock struct {
// An Ident represents an identifier.
type Ident struct {
Comments
Start Position
Token string // raw Python code, including final newline
NamePos Position
Name string
}
func (x *PythonBlock) Span() (start, end Position) {
return x.Start, x.Start.add(x.Token)
func (x *Ident) Span() (start, end Position) {
return x.NamePos, x.NamePos.add(x.Name)
}
// A LiteralExpr represents a literal identifier or number.
// BranchStmt represents a `pass` statement.
type BranchStmt struct {
Comments
Token string // pass, break, continue
TokenPos Position
}
func (x *BranchStmt) Span() (start, end Position) {
return x.TokenPos, x.TokenPos.add(x.Token)
}
func (x *Ident) asString() *StringExpr {
_, end := x.Span()
return &StringExpr{
Comments: x.Comments,
Start: x.NamePos,
Value: x.Name,
End: end,
}
}
// A LiteralExpr represents a literal number.
type LiteralExpr struct {
Comments
Start Position
@ -189,32 +218,32 @@ func (x *DotExpr) Span() (start, end Position) {
return start, x.NamePos.add(x.Name)
}
// A ListForExpr represents a list comprehension expression: [X for ... if ...].
type ListForExpr struct {
// A Comprehension represents a list comprehension expression: [X for ... if ...].
type Comprehension struct {
Comments
Curly bool // curly braces (as opposed to square brackets)
Lbrack Position
Body Expr
Clauses []Expr // = *ForClause | *IfClause
ForceMultiLine bool // split expression across multiple lines
Brack string // "", "()", or "[]"
Start Position
X Expr
For []*ForClauseWithIfClausesOpt
End
}
func (x *ListForExpr) Span() (start, end Position) {
return x.Start, x.End.Pos.add("]")
func (x *Comprehension) Span() (start, end Position) {
return x.Lbrack, x.End.Pos.add("]")
}
// A ForClause represents a for clause in a list comprehension: for Var in Expr.
type ForClause struct {
Comments
For Position
Var []Expr
Vars Expr
In Position
Expr Expr
X Expr
}
func (x *ForClause) Span() (start, end Position) {
_, end = x.Expr.Span()
_, end = x.X.Span()
return x.For, end
}
@ -230,23 +259,6 @@ func (x *IfClause) Span() (start, end Position) {
return x.If, end
}
// A ForClauseWithIfClausesOpt represents a for clause in a list comprehension followed by optional
// if expressions: for ... in ... [if ... if ...]
type ForClauseWithIfClausesOpt struct {
Comments
For *ForClause
Ifs []*IfClause
}
func (x *ForClauseWithIfClausesOpt) Span() (start, end Position) {
start, end = x.For.Span()
if len(x.Ifs) > 0 {
_, end = x.Ifs[len(x.Ifs) - 1].Span()
}
return start, end
}
// A KeyValueExpr represents a dictionary entry: Key: Value.
type KeyValueExpr struct {
Comments
@ -265,8 +277,7 @@ func (x *KeyValueExpr) Span() (start, end Position) {
type DictExpr struct {
Comments
Start Position
List []Expr // all *KeyValueExprs
Comma Position // position of trailing comma, if any
List []Expr // all *KeyValueExprs
End
ForceMultiLine bool // force multiline form when printing
}
@ -280,7 +291,6 @@ type ListExpr struct {
Comments
Start Position
List []Expr
Comma Position // position of trailing comma, if any
End
ForceMultiLine bool // force multiline form when printing
}
@ -289,19 +299,37 @@ func (x *ListExpr) Span() (start, end Position) {
return x.Start, x.End.Pos.add("]")
}
// A TupleExpr represents a tuple literal: (List)
type TupleExpr struct {
// A SetExpr represents a set literal: { List }.
type SetExpr struct {
Comments
Start Position
List []Expr
Comma Position // position of trailing comma, if any
End
ForceMultiLine bool // force multiline form when printing
}
func (x *SetExpr) Span() (start, end Position) {
return x.Start, x.End.Pos.add("}")
}
// A TupleExpr represents a tuple literal: (List)
type TupleExpr struct {
Comments
NoBrackets bool // true if a tuple has no brackets, e.g. `a, b = x`
Start Position
List []Expr
End
ForceCompact bool // force compact (non-multiline) form when printing
ForceMultiLine bool // force multiline form when printing
}
func (x *TupleExpr) Span() (start, end Position) {
return x.Start, x.End.Pos.add(")")
if !x.NoBrackets {
return x.Start, x.End.Pos.add(")")
}
start, _ = x.List[0].Span()
_, end = x.List[len(x.List)-1].Span()
return start, end
}
// A UnaryExpr represents a unary expression: Op X.
@ -346,20 +374,22 @@ func (x *ParenExpr) Span() (start, end Position) {
return x.Start, x.End.Pos.add(")")
}
// A SliceExpr represents a slice expression: X[Y:Z].
// A SliceExpr represents a slice expression: expr[from:to] or expr[from:to:step] .
type SliceExpr struct {
Comments
X Expr
SliceStart Position
Y Expr
Colon Position
Z Expr
End Position
X Expr
SliceStart Position
From Expr
FirstColon Position
To Expr
SecondColon Position
Step Expr
End Position
}
func (x *SliceExpr) Span() (start, end Position) {
start, _ = x.X.Span()
return start, x.End
return start, x.End.add("]")
}
// An IndexExpr represents an index expression: X[Y].
@ -373,21 +403,30 @@ type IndexExpr struct {
func (x *IndexExpr) Span() (start, end Position) {
start, _ = x.X.Span()
return start, x.End
return start, x.End.add("]")
}
// A Function represents the common parts of LambdaExpr and DefStmt
type Function struct {
Comments
StartPos Position // position of DEF or LAMBDA token
Params []Expr
Body []Expr
}
func (x *Function) Span() (start, end Position) {
_, end = x.Body[len(x.Body)-1].Span()
return x.StartPos, end
}
// A LambdaExpr represents a lambda expression: lambda Var: Expr.
type LambdaExpr struct {
Comments
Lambda Position
Var []Expr
Colon Position
Expr Expr
Function
}
func (x *LambdaExpr) Span() (start, end Position) {
_, end = x.Expr.Span()
return x.Lambda, end
return x.Function.Span()
}
// ConditionalExpr represents the conditional: X if TEST else ELSE.
@ -407,3 +446,88 @@ func (x *ConditionalExpr) Span() (start, end Position) {
_, end = x.Else.Span()
return start, end
}
// A LoadStmt loads another module and binds names from it:
// load(Module, "x", y="foo").
//
// The AST is slightly unfaithful to the concrete syntax here because
// Skylark's load statement, so that it can be implemented in Python,
// binds some names (like y above) with an identifier and some (like x)
// without. For consistency we create fake identifiers for all the
// strings.
type LoadStmt struct {
Comments
Load Position
Module *StringExpr
From []*Ident // name defined in loading module
To []*Ident // name in loaded module
Rparen End
ForceCompact bool // force compact (non-multiline) form when printing
}
func (x *LoadStmt) Span() (start, end Position) {
return x.Load, x.Rparen.Pos.add(")")
}
// A DefStmt represents a function definition expression: def foo(List):.
type DefStmt struct {
Comments
Function
Name string
ForceCompact bool // force compact (non-multiline) form when printing the arguments
ForceMultiLine bool // force multiline form when printing the arguments
}
func (x *DefStmt) Span() (start, end Position) {
return x.Function.Span()
}
// A ReturnStmt represents a return statement: return f(x).
type ReturnStmt struct {
Comments
Return Position
Result Expr // may be nil
}
func (x *ReturnStmt) Span() (start, end Position) {
if x.Result == nil {
return x.Return, x.Return.add("return")
}
_, end = x.Result.Span()
return x.Return, end
}
// A ForStmt represents a for loop block: for x in range(10):.
type ForStmt struct {
Comments
Function
For Position // position of for
Vars Expr
X Expr
Body []Expr
}
func (x *ForStmt) Span() (start, end Position) {
_, end = x.Body[len(x.Body)-1].Span()
return x.For, end
}
// An IfStmt represents an if-else block: if x: ... else: ... .
// `elif`s are treated as a chain of `IfStmt`s.
type IfStmt struct {
Comments
If Position // position of if
Cond Expr
True []Expr
ElsePos End // position of else or elif
False []Expr // optional
}
func (x *IfStmt) Span() (start, end Position) {
body := x.False
if body == nil {
body = x.True
}
_, end = body[len(body)-1].Span()
return x.If, end
}

View File

@ -30,7 +30,7 @@ func Walk(v Expr, f func(x Expr, stk []Expr)) {
})
}
// WalkAndUpdate walks the expression tree v, calling f on all subexpressions
// Edit walks the expression tree v, calling f on all subexpressions
// in a preorder traversal. If f returns a non-nil value, the tree is mutated.
// The new value replaces the old one.
//
@ -42,12 +42,16 @@ func Edit(v Expr, f func(x Expr, stk []Expr) Expr) Expr {
return walk1(&v, &stack, f)
}
// walk1 is the actual implementation of Walk and WalkAndUpdate.
// It has the same signature and meaning as Walk,
// except that it maintains in *stack the current stack
// of nodes. Using a pointer to a slice here ensures that
// as the stack grows and shrinks the storage can be
// reused for the next growth.
// EditChildren is similar to Edit but doesn't visit the initial node, instead goes
// directly to its children.
func EditChildren(v Expr, f func(x Expr, stk []Expr) Expr) {
stack := []Expr{v}
WalkOnce(v, func(x *Expr) {
walk1(x, &stack, f)
})
}
// walk1 is a helper function for Walk, WalkWithPostfix, and Edit.
func walk1(v *Expr, stack *[]Expr, f func(x Expr, stk []Expr) Expr) Expr {
if v == nil {
return nil
@ -57,72 +61,170 @@ func walk1(v *Expr, stack *[]Expr, f func(x Expr, stk []Expr) Expr) Expr {
*v = res
}
*stack = append(*stack, *v)
switch v := (*v).(type) {
case *File:
for _, stmt := range v.Stmt {
walk1(&stmt, stack, f)
}
case *DotExpr:
walk1(&v.X, stack, f)
case *IndexExpr:
walk1(&v.X, stack, f)
walk1(&v.Y, stack, f)
case *KeyValueExpr:
walk1(&v.Key, stack, f)
walk1(&v.Value, stack, f)
case *SliceExpr:
walk1(&v.X, stack, f)
if v.Y != nil {
walk1(&v.Y, stack, f)
}
if v.Z != nil {
walk1(&v.Z, stack, f)
}
case *ParenExpr:
walk1(&v.X, stack, f)
case *UnaryExpr:
walk1(&v.X, stack, f)
case *BinaryExpr:
walk1(&v.X, stack, f)
walk1(&v.Y, stack, f)
case *LambdaExpr:
for i := range v.Var {
walk1(&v.Var[i], stack, f)
}
walk1(&v.Expr, stack, f)
case *CallExpr:
walk1(&v.X, stack, f)
for i := range v.List {
walk1(&v.List[i], stack, f)
}
case *ListExpr:
for i := range v.List {
walk1(&v.List[i], stack, f)
}
case *TupleExpr:
for i := range v.List {
walk1(&v.List[i], stack, f)
}
case *DictExpr:
for i := range v.List {
walk1(&v.List[i], stack, f)
}
case *ListForExpr:
walk1(&v.X, stack, f)
for _, c := range v.For {
for j := range c.For.Var {
walk1(&c.For.Var[j], stack, f)
}
walk1(&c.For.Expr, stack, f)
for _, i := range c.Ifs {
walk1(&i.Cond, stack, f)
}
}
case *ConditionalExpr:
walk1(&v.Then, stack, f)
walk1(&v.Test, stack, f)
walk1(&v.Else, stack, f)
}
WalkOnce(*v, func(x *Expr) {
walk1(x, stack, f)
})
*stack = (*stack)[:len(*stack)-1]
return *v
}
// WalkOnce calls f on every child of v.
func WalkOnce(v Expr, f func(x *Expr)) {
switch v := v.(type) {
case *File:
for i := range v.Stmt {
f(&v.Stmt[i])
}
case *DotExpr:
f(&v.X)
case *IndexExpr:
f(&v.X)
f(&v.Y)
case *KeyValueExpr:
f(&v.Key)
f(&v.Value)
case *SliceExpr:
f(&v.X)
if v.From != nil {
f(&v.From)
}
if v.To != nil {
f(&v.To)
}
if v.Step != nil {
f(&v.Step)
}
case *ParenExpr:
f(&v.X)
case *UnaryExpr:
f(&v.X)
case *BinaryExpr:
f(&v.X)
f(&v.Y)
case *LambdaExpr:
for i := range v.Params {
f(&v.Params[i])
}
for i := range v.Body {
f(&v.Body[i])
}
case *CallExpr:
f(&v.X)
for i := range v.List {
f(&v.List[i])
}
case *ListExpr:
for i := range v.List {
f(&v.List[i])
}
case *SetExpr:
for i := range v.List {
f(&v.List[i])
}
case *TupleExpr:
for i := range v.List {
f(&v.List[i])
}
case *DictExpr:
for i := range v.List {
f(&v.List[i])
}
case *Comprehension:
f(&v.Body)
for _, c := range v.Clauses {
f(&c)
}
case *IfClause:
f(&v.Cond)
case *ForClause:
f(&v.Vars)
f(&v.X)
case *ConditionalExpr:
f(&v.Then)
f(&v.Test)
f(&v.Else)
case *LoadStmt:
module := (Expr)(v.Module)
f(&module)
v.Module = module.(*StringExpr)
for i := range v.From {
from := (Expr)(v.From[i])
f(&from)
v.From[i] = from.(*Ident)
to := (Expr)(v.To[i])
f(&to)
v.To[i] = to.(*Ident)
}
case *DefStmt:
for i := range v.Params {
f(&v.Params[i])
}
for i := range v.Body {
f(&v.Body[i])
}
case *IfStmt:
f(&v.Cond)
for i := range v.True {
f(&v.True[i])
}
for i := range v.False {
f(&v.False[i])
}
case *ForStmt:
f(&v.Vars)
f(&v.X)
for i := range v.Body {
f(&v.Body[i])
}
case *ReturnStmt:
if v.Result != nil {
f(&v.Result)
}
}
}
// walkStatements is a helper function for WalkStatements
func walkStatements(v Expr, stack *[]Expr, f func(x Expr, stk []Expr)) {
if v == nil {
return
}
f(v, *stack)
*stack = append(*stack, v)
traverse := func(x Expr) {
walkStatements(x, stack, f)
}
switch expr := v.(type) {
case *File:
for _, s := range expr.Stmt {
traverse(s)
}
case *DefStmt:
for _, s := range expr.Body {
traverse(s)
}
case *IfStmt:
for _, s := range expr.True {
traverse(s)
}
for _, s := range expr.False {
traverse(s)
}
case *ForStmt:
for _, s := range expr.Body {
traverse(s)
}
}
*stack = (*stack)[:len(*stack)-1]
}
// WalkStatements traverses sub statements (not all nodes)
func WalkStatements(v Expr, f func(x Expr, stk []Expr)) {
var stack []Expr
walkStatements(v, &stack, f)
}

Some files were not shown because too many files have changed in this diff Show More