diff --git a/Godeps/LICENSES b/Godeps/LICENSES index a05313334c9..811e8a20234 100644 --- a/Godeps/LICENSES +++ b/Godeps/LICENSES @@ -2542,237 +2542,6 @@ THE SOFTWARE. ================================================================================ -================================================================================ -= vendor/github.com/bazelbuild/bazel-gazelle licensed under: = - - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. - -= vendor/github.com/bazelbuild/bazel-gazelle/LICENSE 3b83ef96387f14655fc854ddc3c6bd57 -================================================================================ - - -================================================================================ -= vendor/github.com/bazelbuild/buildtools licensed under: = - -Copyright 2016 Google Inc. 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. - -= vendor/github.com/bazelbuild/buildtools/LICENSE adb52eb384caedba181cd51fbcdf4b99 -================================================================================ - - ================================================================================ = vendor/github.com/beorn7/perks licensed under: = @@ -23307,215 +23076,6 @@ third-party archives. ================================================================================ -================================================================================ -= vendor/k8s.io/repo-infra licensed under: = - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - 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. - -= vendor/k8s.io/repo-infra/LICENSE e3fc50a88d0a364313df4b21ef20c29e -================================================================================ - - ================================================================================ = vendor/k8s.io/system-validators licensed under: = diff --git a/build/root/.kazelcfg.json b/build/root/.kazelcfg.json index 342cc3e0dab..23518e90e46 100644 --- a/build/root/.kazelcfg.json +++ b/build/root/.kazelcfg.json @@ -3,6 +3,7 @@ "SkippedPaths": [ "^_.*", "/_", + "^hack/tools", "^third_party/etcd.*" ], "AddSourcesRules": true, diff --git a/build/tools.go b/build/tools.go index 5faebdb6475..c70ccef1525 100644 --- a/build/tools.go +++ b/build/tools.go @@ -20,8 +20,6 @@ limitations under the License. package tools import ( - _ "github.com/bazelbuild/bazel-gazelle/cmd/gazelle" - _ "github.com/bazelbuild/buildtools/buildozer" _ "github.com/cespare/prettybench" _ "github.com/client9/misspell/cmd/misspell" _ "github.com/go-bindata/go-bindata/go-bindata" @@ -37,5 +35,4 @@ import ( _ "k8s.io/gengo/examples/import-boss/generators" _ "k8s.io/gengo/examples/set-gen/generators" _ "k8s.io/kube-openapi/cmd/openapi-gen" - _ "k8s.io/repo-infra/cmd/kazel" ) diff --git a/go.mod b/go.mod index 6769f3453dc..77e6a0a7df4 100644 --- a/go.mod +++ b/go.mod @@ -20,8 +20,6 @@ require ( github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7 // indirect github.com/aws/aws-sdk-go v1.28.2 - github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798 - github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89 github.com/blang/semver v3.5.0+incompatible github.com/boltdb/bolt v1.3.1 // indirect github.com/caddyserver/caddy v1.0.3 @@ -73,6 +71,8 @@ require ( github.com/libopenstorage/openstorage v1.0.0 github.com/lithammer/dedent v1.1.0 github.com/lpabon/godbc v0.1.1 // indirect + github.com/magiconair/properties v1.8.1 // indirect + github.com/mattn/go-isatty v0.0.9 // indirect github.com/miekg/dns v1.1.4 github.com/moby/ipvs v1.0.0 github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb // indirect @@ -145,7 +145,6 @@ require ( k8s.io/kubelet v0.0.0 k8s.io/legacy-cloud-providers v0.0.0 k8s.io/metrics v0.0.0 - k8s.io/repo-infra v0.0.1-alpha.1 k8s.io/sample-apiserver v0.0.0 k8s.io/system-validators v1.1.2 k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89 @@ -174,30 +173,23 @@ replace ( github.com/Microsoft/go-winio => github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5 github.com/Microsoft/hcsshim => github.com/Microsoft/hcsshim v0.0.0-20190417211021-672e52e9209d github.com/NYTimes/gziphandler => github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 - github.com/OpenPeeDeeP/depguard => github.com/OpenPeeDeeP/depguard v1.0.1 github.com/PuerkitoBio/purell => github.com/PuerkitoBio/purell v1.1.1 github.com/PuerkitoBio/urlesc => github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 - github.com/StackExchange/wmi => github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 github.com/agnivade/levenshtein => github.com/agnivade/levenshtein v1.0.1 github.com/ajstarks/svgo => github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af github.com/alecthomas/template => github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc github.com/alecthomas/units => github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf github.com/andreyvit/diff => github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 - github.com/anmitsu/go-shlex => github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239 github.com/armon/circbuf => github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e github.com/armon/consul-api => github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 github.com/asaskevich/govalidator => github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a github.com/auth0/go-jwt-middleware => github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7 github.com/aws/aws-sdk-go => github.com/aws/aws-sdk-go v1.28.2 - github.com/bazelbuild/bazel-gazelle => github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798 - github.com/bazelbuild/buildtools => github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89 - github.com/bazelbuild/rules_go => github.com/bazelbuild/rules_go v0.0.0-20190719190356-6dae44dc5cab github.com/beorn7/perks => github.com/beorn7/perks v1.0.0 github.com/bgentry/speakeasy => github.com/bgentry/speakeasy v0.1.0 github.com/bifurcation/mint => github.com/bifurcation/mint v0.0.0-20180715133206-93c51c6ce115 github.com/blang/semver => github.com/blang/semver v3.5.0+incompatible github.com/boltdb/bolt => github.com/boltdb/bolt v1.3.1 - github.com/bradfitz/go-smtpd => github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625 github.com/caddyserver/caddy => github.com/caddyserver/caddy v1.0.3 github.com/cenkalti/backoff => github.com/cenkalti/backoff v2.1.1+incompatible github.com/census-instrumentation/opencensus-proto => github.com/census-instrumentation/opencensus-proto v0.2.1 @@ -250,16 +242,12 @@ replace ( github.com/fogleman/gg => github.com/fogleman/gg v1.2.1-0.20190220221249-0403632d5b90 github.com/fsnotify/fsnotify => github.com/fsnotify/fsnotify v1.4.9 github.com/ghodss/yaml => github.com/ghodss/yaml v1.0.0 - github.com/gliderlabs/ssh => github.com/gliderlabs/ssh v0.1.1 github.com/go-acme/lego => github.com/go-acme/lego v2.5.0+incompatible github.com/go-bindata/go-bindata => github.com/go-bindata/go-bindata v3.1.1+incompatible - github.com/go-critic/go-critic => github.com/go-critic/go-critic v0.3.5-0.20190526074819-1df300866540 github.com/go-ini/ini => github.com/go-ini/ini v1.9.0 github.com/go-kit/kit => github.com/go-kit/kit v0.8.0 - github.com/go-lintpack/lintpack => github.com/go-lintpack/lintpack v0.5.2 github.com/go-logfmt/logfmt => github.com/go-logfmt/logfmt v0.3.0 github.com/go-logr/logr => github.com/go-logr/logr v0.1.0 - github.com/go-ole/go-ole => github.com/go-ole/go-ole v1.2.1 github.com/go-openapi/analysis => github.com/go-openapi/analysis v0.19.5 github.com/go-openapi/errors => github.com/go-openapi/errors v0.19.2 github.com/go-openapi/jsonpointer => github.com/go-openapi/jsonpointer v0.19.3 @@ -272,16 +260,6 @@ replace ( github.com/go-openapi/validate => github.com/go-openapi/validate v0.19.5 github.com/go-ozzo/ozzo-validation => github.com/go-ozzo/ozzo-validation v3.5.0+incompatible github.com/go-stack/stack => github.com/go-stack/stack v1.8.0 - github.com/go-toolsmith/astcast => github.com/go-toolsmith/astcast v1.0.0 - github.com/go-toolsmith/astcopy => github.com/go-toolsmith/astcopy v1.0.0 - github.com/go-toolsmith/astequal => github.com/go-toolsmith/astequal v1.0.0 - github.com/go-toolsmith/astfmt => github.com/go-toolsmith/astfmt v1.0.0 - github.com/go-toolsmith/astinfo => github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21 - github.com/go-toolsmith/astp => github.com/go-toolsmith/astp v1.0.0 - github.com/go-toolsmith/pkgload => github.com/go-toolsmith/pkgload v1.0.0 - github.com/go-toolsmith/strparse => github.com/go-toolsmith/strparse v1.0.0 - github.com/go-toolsmith/typep => github.com/go-toolsmith/typep v1.0.0 - github.com/gobwas/glob => github.com/gobwas/glob v0.2.3 github.com/godbus/dbus => github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.1 github.com/golang/freetype => github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 @@ -289,31 +267,12 @@ replace ( github.com/golang/groupcache => github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903 github.com/golang/mock => github.com/golang/mock v1.3.1 github.com/golang/protobuf => github.com/golang/protobuf v1.3.3 - github.com/golangci/check => github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 - github.com/golangci/dupl => github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a - github.com/golangci/errcheck => github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6 - github.com/golangci/go-misc => github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613 - github.com/golangci/go-tools => github.com/golangci/go-tools v0.0.0-20190318055746-e32c54105b7c - github.com/golangci/goconst => github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3 - github.com/golangci/gocyclo => github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee - github.com/golangci/gofmt => github.com/golangci/gofmt v0.0.0-20181222123516-0b8337e80d98 - github.com/golangci/golangci-lint => github.com/golangci/golangci-lint v1.18.0 - github.com/golangci/gosec => github.com/golangci/gosec v0.0.0-20190211064107-66fb7fc33547 - github.com/golangci/ineffassign => github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc - github.com/golangci/lint-1 => github.com/golangci/lint-1 v0.0.0-20190420132249-ee948d087217 - github.com/golangci/maligned => github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca - github.com/golangci/misspell => github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770 - github.com/golangci/prealloc => github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21 - github.com/golangci/revgrep => github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0 - github.com/golangci/unconvert => github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 github.com/golangplus/bytes => github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450 github.com/golangplus/fmt => github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995 github.com/golangplus/testing => github.com/golangplus/testing v0.0.0-20180327235837-af21d9c3145e github.com/google/btree => github.com/google/btree v1.0.0 github.com/google/cadvisor => github.com/google/cadvisor v0.36.1-0.20200323171535-8af10c683a96 github.com/google/go-cmp => github.com/google/go-cmp v0.4.0 - github.com/google/go-github => github.com/google/go-github v17.0.0+incompatible - github.com/google/go-querystring => github.com/google/go-querystring v1.0.0 github.com/google/gofuzz => github.com/google/gofuzz v1.1.0 github.com/google/martian => github.com/google/martian v2.1.0+incompatible github.com/google/pprof => github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57 @@ -326,7 +285,6 @@ replace ( github.com/gorilla/context => github.com/gorilla/context v1.1.1 github.com/gorilla/mux => github.com/gorilla/mux v1.7.3 github.com/gorilla/websocket => github.com/gorilla/websocket v1.4.0 - github.com/gostaticanalysis/analysisutil => github.com/gostaticanalysis/analysisutil v0.0.3 github.com/gregjones/httpcache => github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 github.com/grpc-ecosystem/go-grpc-middleware => github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4 github.com/grpc-ecosystem/go-grpc-prometheus => github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 @@ -340,7 +298,6 @@ replace ( github.com/imdario/mergo => github.com/imdario/mergo v0.3.5 github.com/inconshreveable/mousetrap => github.com/inconshreveable/mousetrap v1.0.0 github.com/ishidawataru/sctp => github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5 - github.com/jellevandenhooff/dkim => github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1 github.com/jimstudt/http-authentication => github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a github.com/jmespath/go-jmespath => github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af github.com/jonboulle/clockwork => github.com/jonboulle/clockwork v0.1.0 @@ -352,7 +309,6 @@ replace ( github.com/karrick/godirwalk => github.com/karrick/godirwalk v1.7.5 github.com/kisielk/errcheck => github.com/kisielk/errcheck v1.2.0 github.com/kisielk/gotool => github.com/kisielk/gotool v1.0.0 - github.com/klauspost/compress => github.com/klauspost/compress v1.4.1 github.com/klauspost/cpuid => github.com/klauspost/cpuid v1.2.0 github.com/konsorten/go-windows-terminal-sequences => github.com/konsorten/go-windows-terminal-sequences v1.0.2 github.com/kr/logfmt => github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 @@ -363,7 +319,6 @@ replace ( github.com/libopenstorage/openstorage => github.com/libopenstorage/openstorage v1.0.0 github.com/liggitt/tabwriter => github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de github.com/lithammer/dedent => github.com/lithammer/dedent v1.1.0 - github.com/logrusorgru/aurora => github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e github.com/lpabon/godbc => github.com/lpabon/godbc v0.1.1 github.com/lucas-clemente/aes12 => github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f github.com/lucas-clemente/quic-clients => github.com/lucas-clemente/quic-clients v0.1.0 @@ -375,14 +330,12 @@ replace ( github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9 github.com/mattn/go-isatty => github.com/mattn/go-isatty v0.0.9 github.com/mattn/go-runewidth => github.com/mattn/go-runewidth v0.0.2 - github.com/mattn/goveralls => github.com/mattn/goveralls v0.0.2 github.com/matttproud/golang_protobuf_extensions => github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 github.com/mholt/certmagic => github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2 github.com/miekg/dns => github.com/miekg/dns v1.1.4 github.com/mindprince/gonvml => github.com/mindprince/gonvml v0.0.0-20190828220739-9ebdce4bb989 github.com/mistifyio/go-zfs => github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible github.com/mitchellh/go-homedir => github.com/mitchellh/go-homedir v1.1.0 - github.com/mitchellh/go-ps => github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936 github.com/mitchellh/go-wordwrap => github.com/mitchellh/go-wordwrap v1.0.0 github.com/mitchellh/mapstructure => github.com/mitchellh/mapstructure v1.1.2 github.com/moby/ipvs => github.com/moby/ipvs v1.0.0 @@ -391,7 +344,6 @@ replace ( github.com/modern-go/reflect2 => github.com/modern-go/reflect2 v1.0.1 github.com/mohae/deepcopy => github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb github.com/morikuni/aec => github.com/morikuni/aec v1.0.0 - github.com/mozilla/tls-observatory => github.com/mozilla/tls-observatory v0.0.0-20180409132520-8791a200eb40 github.com/mrunalp/fileutils => github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618 github.com/munnerz/goautoneg => github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 github.com/mvdan/xurls => github.com/mvdan/xurls v1.1.0 @@ -399,7 +351,6 @@ replace ( github.com/mxk/go-flowrate => github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f github.com/naoina/go-stringutil => github.com/naoina/go-stringutil v0.1.0 github.com/naoina/toml => github.com/naoina/toml v0.1.1 - github.com/nbutton23/zxcvbn-go => github.com/nbutton23/zxcvbn-go v0.0.0-20171102151520-eafdab6b0663 github.com/olekukonko/tablewriter => github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5 github.com/onsi/ginkgo => github.com/onsi/ginkgo v1.11.0 github.com/onsi/gomega => github.com/onsi/gomega v1.7.0 @@ -417,7 +368,6 @@ replace ( github.com/prometheus/client_model => github.com/prometheus/client_model v0.2.0 github.com/prometheus/common => github.com/prometheus/common v0.4.1 github.com/prometheus/procfs => github.com/prometheus/procfs v0.0.5 - github.com/quasilyte/go-consistent => github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c github.com/quobyte/api => github.com/quobyte/api v0.1.2 github.com/remyoudompheng/bigfft => github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446 github.com/robfig/cron => github.com/robfig/cron v1.1.0 @@ -425,19 +375,13 @@ replace ( github.com/rogpeppe/go-internal => github.com/rogpeppe/go-internal v1.3.0 github.com/rubiojr/go-vhd => github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c github.com/russross/blackfriday => github.com/russross/blackfriday v1.5.2 - github.com/ryanuber/go-glob => github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735 github.com/satori/go.uuid => github.com/satori/go.uuid v1.2.0 github.com/seccomp/libseccomp-golang => github.com/seccomp/libseccomp-golang v0.9.1 github.com/sergi/go-diff => github.com/sergi/go-diff v1.0.0 - github.com/shirou/gopsutil => github.com/shirou/gopsutil v0.0.0-20180427012116-c95755e4bcd7 - github.com/shirou/w32 => github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 - github.com/shurcooL/go => github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e - github.com/shurcooL/go-goon => github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041 github.com/sirupsen/logrus => github.com/sirupsen/logrus v1.4.2 github.com/smartystreets/assertions => github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d github.com/smartystreets/goconvey => github.com/smartystreets/goconvey v1.6.4 github.com/soheilhy/cmux => github.com/soheilhy/cmux v0.1.4 - github.com/sourcegraph/go-diff => github.com/sourcegraph/go-diff v0.5.1 github.com/spf13/afero => github.com/spf13/afero v1.2.2 github.com/spf13/cast => github.com/spf13/cast v1.3.0 github.com/spf13/cobra => github.com/spf13/cobra v0.0.5 @@ -448,19 +392,12 @@ replace ( github.com/stretchr/objx => github.com/stretchr/objx v0.2.0 github.com/stretchr/testify => github.com/stretchr/testify v1.4.0 github.com/syndtr/gocapability => github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 - github.com/tarm/serial => github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07 github.com/thecodeteam/goscaleio => github.com/thecodeteam/goscaleio v0.1.0 github.com/tidwall/pretty => github.com/tidwall/pretty v1.0.0 - github.com/timakin/bodyclose => github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec github.com/tmc/grpc-websocket-proxy => github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8 github.com/ugorji/go/codec => github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8 - github.com/ultraware/funlen => github.com/ultraware/funlen v0.0.2 github.com/urfave/cli => github.com/urfave/cli v1.20.0 github.com/urfave/negroni => github.com/urfave/negroni v1.0.0 - github.com/valyala/bytebufferpool => github.com/valyala/bytebufferpool v1.0.0 - github.com/valyala/fasthttp => github.com/valyala/fasthttp v1.2.0 - github.com/valyala/quicktemplate => github.com/valyala/quicktemplate v1.1.1 - github.com/valyala/tcplisten => github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a github.com/vektah/gqlparser => github.com/vektah/gqlparser v1.1.2 github.com/vishvananda/netlink => github.com/vishvananda/netlink v1.1.0 github.com/vishvananda/netns => github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df @@ -475,8 +412,6 @@ replace ( go.uber.org/atomic => go.uber.org/atomic v1.3.2 go.uber.org/multierr => go.uber.org/multierr v1.1.0 go.uber.org/zap => go.uber.org/zap v1.10.0 - go4.org => go4.org v0.0.0-20180809161055-417644f6feb5 - golang.org/x/build => golang.org/x/build v0.0.0-20190927031335-2835ba2e683f golang.org/x/crypto => golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975 golang.org/x/exp => golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 golang.org/x/image => golang.org/x/image v0.0.0-20190227222117-0694c2d4d067 @@ -485,7 +420,6 @@ replace ( golang.org/x/mod => golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e golang.org/x/net => golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e golang.org/x/oauth2 => golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 - golang.org/x/perf => golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852 golang.org/x/sync => golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e golang.org/x/sys => golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a // pinned to release-branch.go1.13 golang.org/x/text => golang.org/x/text v0.3.2 @@ -518,7 +452,6 @@ replace ( gotest.tools => gotest.tools v2.2.0+incompatible gotest.tools/gotestsum => gotest.tools/gotestsum v0.3.5 gotest.tools/v3 => gotest.tools/v3 v3.0.2 - grpc.go4.org => grpc.go4.org v0.0.0-20170609214715-11d0a25b4919 honnef.co/go/tools => honnef.co/go/tools v0.0.1-2019.2.2 k8s.io/api => ./staging/src/k8s.io/api k8s.io/apiextensions-apiserver => ./staging/src/k8s.io/apiextensions-apiserver @@ -544,7 +477,6 @@ replace ( k8s.io/kubelet => ./staging/src/k8s.io/kubelet k8s.io/legacy-cloud-providers => ./staging/src/k8s.io/legacy-cloud-providers k8s.io/metrics => ./staging/src/k8s.io/metrics - k8s.io/repo-infra => k8s.io/repo-infra v0.0.1-alpha.1 k8s.io/sample-apiserver => ./staging/src/k8s.io/sample-apiserver k8s.io/sample-cli-plugin => ./staging/src/k8s.io/sample-cli-plugin k8s.io/sample-controller => ./staging/src/k8s.io/sample-controller @@ -555,14 +487,10 @@ replace ( modernc.org/mathutil => modernc.org/mathutil v1.0.0 modernc.org/strutil => modernc.org/strutil v1.0.0 modernc.org/xc => modernc.org/xc v1.0.0 - mvdan.cc/interfacer => mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed - mvdan.cc/lint => mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b - mvdan.cc/unparam => mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34 rsc.io/pdf => rsc.io/pdf v0.1.1 sigs.k8s.io/apiserver-network-proxy/konnectivity-client => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7 sigs.k8s.io/kustomize => sigs.k8s.io/kustomize v2.0.3+incompatible sigs.k8s.io/structured-merge-diff/v3 => sigs.k8s.io/structured-merge-diff/v3 v3.0.0 sigs.k8s.io/yaml => sigs.k8s.io/yaml v1.2.0 - sourcegraph.com/sqs/pbtypes => sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4 vbom.ml/util => vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc ) diff --git a/go.sum b/go.sum index cd03c6af6a8..40594874884 100644 --- a/go.sum +++ b/go.sum @@ -37,18 +37,15 @@ github.com/Microsoft/hcsshim v0.0.0-20190417211021-672e52e9209d h1:u64+IetywsPQ0 github.com/Microsoft/hcsshim v0.0.0-20190417211021-672e52e9209d/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46 h1:lsxEuwrXEAokXB9qhlbKWPpo3KMLZQ5WB5WLQRW1uq0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= @@ -58,12 +55,6 @@ github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7 h1:irR1cO6 github.com/auth0/go-jwt-middleware v0.0.0-20170425171159-5493cabe49f7/go.mod h1:LWMyo4iOLWXHGdBki7NIht1kHru/0wM179h+d3g8ATM= github.com/aws/aws-sdk-go v1.28.2 h1:j5IXG9CdyLfcVfICqo1PXVv+rua+QQHbkXuvuU/JF+8= github.com/aws/aws-sdk-go v1.28.2/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798 h1:1pcd3bq1rC5X4nz56fdK0oQrz9CZup6DGZl8isCPthk= -github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798/go.mod h1:rPwzNHUqEzngx1iVBfO/2X2npKaT3tqPqqHW6rVsn/A= -github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89 h1:3B/ZE1a6eEJ/4Jf/M6RM2KBouN8yKCUcMmXzSyWqa3g= -github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= -github.com/bazelbuild/rules_go v0.0.0-20190719190356-6dae44dc5cab h1:wzbawlkLtl2ze9w/312NHZ84c7kpUCtlkD8HgFY27sw= -github.com/bazelbuild/rules_go v0.0.0-20190719190356-6dae44dc5cab/go.mod h1:MC23Dc/wkXEyk3Wpq6lCqz0ZAYOZDw2DR5y3N1q2i7M= github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= @@ -72,7 +63,6 @@ github.com/blang/semver v3.5.0+incompatible h1:CGxCgetQ64DKk7rdZ++Vfnb1+ogGNnB17 github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= -github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= github.com/caddyserver/caddy v1.0.3 h1:i9gRhBgvc5ifchwWtSe7pDpsdS9+Q0Rw9oYQmYUTw1w= github.com/caddyserver/caddy v1.0.3/go.mod h1:G+ouvOY32gENkJC+jhgl62TyhvqEsFaDiZ4uw0RzP1E= github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= @@ -167,17 +157,13 @@ github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-acme/lego v2.5.0+incompatible/go.mod h1:yzMNe9CasVUhkquNvti5nAtPmG94USbYxYrZfTkIn0M= github.com/go-bindata/go-bindata v3.1.1+incompatible h1:tR4f0e4VTO7LK6B2YWyAoVEzG9ByG1wrXB4TL9+jiYg= github.com/go-bindata/go-bindata v3.1.1+incompatible/go.mod h1:xK8Dsgwmeed+BBsSy2XTopBn/8uK2HWuGSnA11C3Joo= -github.com/go-critic/go-critic v0.3.5-0.20190526074819-1df300866540/go.mod h1:+sE8vrLDS2M0pZkBk0wy6+nLdKexVDrl/jBqQOTDThA= github.com/go-ini/ini v1.9.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= -github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= github.com/go-openapi/analysis v0.19.5 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI= github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY= @@ -202,16 +188,6 @@ github.com/go-ozzo/ozzo-validation v3.5.0+incompatible h1:sUy/in/P6askYr16XJgTKq github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU= github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= -github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= -github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= -github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= -github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= -github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU= -github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= -github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc= -github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= -github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= -github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e h1:BWhy2j3IXJhjCbC68FptL43tDKIq8FladmaTs3Xs7Z8= github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= @@ -225,23 +201,6 @@ github.com/golang/mock v1.3.1 h1:qGJ6qTW+x6xX/my+8YUVl4WNpX9B7+/l2tRsHGZ7f2s= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.3.3 h1:gyjaxf+svBWX08ZjK86iN9geUJF0H6gp2IRKX6Nf6/I= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= -github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= -github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0= -github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8= -github.com/golangci/go-tools v0.0.0-20190318055746-e32c54105b7c/go.mod h1:unzUULGw35sjyOYjUt0jMTXqHlZPpPc6e+xfO4cd6mM= -github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3/go.mod h1:JXrF4TWy4tXYn62/9x8Wm/K/dm06p8tCKwFRDPZG/1o= -github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU= -github.com/golangci/gofmt v0.0.0-20181222123516-0b8337e80d98/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= -github.com/golangci/golangci-lint v1.18.0/go.mod h1:kaqo8l0OZKYPtjNmG4z4HrWLgcYNIJ9B9q3LWri9uLg= -github.com/golangci/gosec v0.0.0-20190211064107-66fb7fc33547/go.mod h1:0qUabqiIQgfmlAmulqxyiGkkyF6/tOGSnY2cnPVwrzU= -github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU= -github.com/golangci/lint-1 v0.0.0-20190420132249-ee948d087217/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= -github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= -github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= -github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI= -github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4= -github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450 h1:7xqw01UYS+KCI25bMrPxwNYkSns2Db1ziQPpVq99FpE= github.com/golangplus/bytes v0.0.0-20160111154220-45c989fe5450/go.mod h1:Bk6SMAONeMXrxql8uvOKuAZSu8aM5RUGv+1C6IJaEho= github.com/golangplus/fmt v0.0.0-20150411045040-2a5d6d7d2995 h1:f5gsjBiF9tRRVomCvrkGMMWI8W1f2OBFar2c5oakAP0= @@ -254,8 +213,6 @@ github.com/google/cadvisor v0.36.1-0.20200323171535-8af10c683a96 h1:au7bcM+rjGXL github.com/google/cadvisor v0.36.1-0.20200323171535-8af10c683a96/go.mod h1:OTAGfVYYYA6MI5yPZ1/81PGoh6gfXpcQIyb3mXX7C3M= github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= -github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -276,7 +233,6 @@ github.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4 h1:z53tR0945TRRQO/fLEVPI6SMv7ZflF0TEaTAoU7tOzg= @@ -302,7 +258,6 @@ github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NH github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5 h1:qPmlgoeRS18y2dT+iAH5vEKZgIqgiPi2Y8UCu/b7Aq8= github.com/ishidawataru/sctp v0.0.0-20190723014705-7c296d48a2b5/go.mod h1:DM4VvS+hD/kDi1U1QsX2fnZowwBhqD0Dk3bRPKF/Oc8= -github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= github.com/jimstudt/http-authentication v0.0.0-20140401203705-3eca13d6893a/go.mod h1:wK6yTYYcgjHE1Z1QtXACPDjcFJyBskHEdagmnq3vsP8= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -319,8 +274,6 @@ github.com/karrick/godirwalk v1.7.5 h1:VbzFqwXwNbAZoA6W5odrLr+hKK197CcENcPh6E/gJ github.com/karrick/godirwalk v1.7.5/go.mod h1:2c9FRhkDxdIbgkOnCEvnSWs71Bhugbl46shStcFDJ34= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.4.1 h1:8VMb5+0wMgdBykOV96DwNwKFQ+WTI4pzYURP99CcB9E= -github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -337,7 +290,6 @@ github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhn github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffktY= github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= github.com/lpabon/godbc v0.1.1 h1:ilqjArN1UOENJJdM34I2YHKmF/B0gGq4VLoSGy9iAao= github.com/lpabon/godbc v0.1.1/go.mod h1:Jo9QV0cf3U6jZABgiJ2skINAXb9j8m51r07g4KI92ZA= github.com/lucas-clemente/aes12 v0.0.0-20171027163421-cd47fb39b79f/go.mod h1:JpH9J1c9oX6otFSgdUHwUBUizmKlrMjxWnIAjff4m04= @@ -354,7 +306,6 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO github.com/mattn/go-isatty v0.0.9 h1:d5US/mDsogSGW37IV293h//ZFaeajb69h+EHFsv2xGg= github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= -github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/mholt/certmagic v0.6.2-0.20190624175158-6a42ef9fe8c2/go.mod h1:g4cOPxcjV0oFq3qwpjSA30LReKD8AoIfwAY9VvG35NY= @@ -366,7 +317,6 @@ github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible h1 github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk= github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= @@ -383,7 +333,6 @@ github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb h1:e+l77LJOEqXTIQih github.com/mohae/deepcopy v0.0.0-20170603005431-491d3605edfb/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mozilla/tls-observatory v0.0.0-20180409132520-8791a200eb40/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618 h1:7InQ7/zrOh6SlFjaXFubv0xX0HsuC9qJsdqm7bNQpYM= github.com/mrunalp/fileutils v0.0.0-20171103030105-7d4729fb3618/go.mod h1:x8F1gnqOkIEiO4rqoeEEEqQbo7HjGMTvyoq3gej4iT0= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= @@ -395,7 +344,6 @@ github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0= github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E= -github.com/nbutton23/zxcvbn-go v0.0.0-20171102151520-eafdab6b0663/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/onsi/ginkgo v1.11.0 h1:JAKSXpt1YjtLA7YpPiqO9ss6sNXEsPfSGdwN0UHqzrw= github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -429,7 +377,6 @@ github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6 github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQlL8= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= -github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= github.com/quobyte/api v0.1.2 h1:lPHLsuvtjFyk8WhC4uHoHRkScijIHcffTWBBP+YpzYo= github.com/quobyte/api v0.1.2/go.mod h1:jL7lIHrmqQ7yh05OJ+eEEdHr0u/kmT1Ff9iHd+4H6VI= github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uYEyJGbgTkfkS4+E/PavXkNJcbFIpEtjt2B0KDQ5+9M= @@ -441,16 +388,11 @@ github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c h1:ht7N4d/B7Ezf58nv github.com/rubiojr/go-vhd v0.0.0-20160810183302-0bfd3b39853c/go.mod h1:DM5xW0nvfNNm2uytzsvhI3OnX8uzaRAg8UX/CnDqbto= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo= github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/shirou/gopsutil v0.0.0-20180427012116-c95755e4bcd7/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= -github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= -github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= @@ -459,7 +401,6 @@ github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIK github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/sourcegraph/go-diff v0.5.1/go.mod h1:j2dHj3m8aZgQO8lMTcTnBcXkRRRqi34cd2MNlA9u1mE= github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= @@ -480,25 +421,18 @@ github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJy github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 h1:b6uOv7YOFK0TYG7HtkIgExQo+2RdLuwRft63jn2HWj8= github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= github.com/thecodeteam/goscaleio v0.1.0 h1:SB5tO98lawC+UK8ds/U2jyfOCH7GTcFztcF5x9gbut4= github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= -github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8 h1:ndzgwNDnKIqyCvHTXaCqh9KlOWKvBry6nuXMJmonVsE= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8 h1:3SVOIvH7Ae1KRYyQWRjXWJEA9sS/c/pjvH++55Gr648= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= -github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= github.com/urfave/cli v1.20.0 h1:fDqGv3UG/4jbVl/QkFwEdddtEDjh/5Ov6X+0B/3bPaw= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/negroni v1.0.0 h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc= github.com/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4= -github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= -github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s= -github.com/valyala/quicktemplate v1.1.1/go.mod h1:EH+4AkTd43SvgIbQHYu59/cJyxDoOVRUAfrukLPuGJ4= -github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vishvananda/netlink v1.1.0 h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= @@ -525,8 +459,6 @@ go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= -golang.org/x/build v0.0.0-20190927031335-2835ba2e683f/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM= golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975 h1:/Tl7pH94bvbAAHBdZJT947M/+gp0+CqQXDtMRC0fseo= golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190312203227-4b39c73a6495 h1:I6A9Ag9FpEKOjcKrRNjQkPHawoXIhKyTGfvvjFAiiAk= @@ -540,7 +472,6 @@ golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e h1:3G+cUijn7XD+S4eJFddp53Pv7 golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a h1:aYOabOQFp6Vj6W1F80affTUvO9UxmJRx8K0gsfABByQ= @@ -597,7 +528,6 @@ gotest.tools/gotestsum v0.3.5 h1:VePOWRsuWFYpfp/G8mbmOZKxO5T3501SEGQRUdvq7h0= gotest.tools/gotestsum v0.3.5/go.mod h1:Mnf3e5FUzXbkCfynWBGOwLssY7gTQgCHObK9tMpAriY= gotest.tools/v3 v3.0.2 h1:kG1BFyqVHuQoVQiR1bWGnfz/fmHvvuiSPIV7rvl360E= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= -grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= honnef.co/go/tools v0.0.1-2019.2.2 h1:TEgegKbBqByGUb1Coo1pc2qIdf2xw6v0mYyLSYtyopE= honnef.co/go/tools v0.0.1-2019.2.2/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= k8s.io/gengo v0.0.0-20200205140755-e0e292d8aa12 h1:pZzawYyz6VRNPVYpqGv61LWCimQv1BihyeqFrp50/G4= @@ -608,8 +538,6 @@ k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= k8s.io/kube-openapi v0.0.0-20200403204345-e1beb1bd0f35 h1:FDWYFE3itI1G8UFOMjUuLbROZExo+Rrfm/Qaf473rm4= k8s.io/kube-openapi v0.0.0-20200403204345-e1beb1bd0f35/go.mod h1:NwPpO8COeh/j9Q9ModsqBxwHcWDo/PmrJOPyquZCC1A= -k8s.io/repo-infra v0.0.1-alpha.1 h1:2us1n30u3cOcoPsacNfCvCssS9B9Yldr1ZGOdK0728U= -k8s.io/repo-infra v0.0.1-alpha.1/go.mod h1:wO1t9WaB99V80ljbeENTnayuEEwNZt7gECYh/CEyOJ8= k8s.io/system-validators v1.1.2 h1:0xzEb0PqnDnUOuf/2E/gaJBOBN7j+qf0LIn12jw3oc4= k8s.io/system-validators v1.1.2/go.mod h1:bPldcLgkIUK22ALflnsXk8pvkTEndYdNuaHH6gRrl0Q= k8s.io/utils v0.0.0-20200324210504-a9aa75ae1b89 h1:d4vVOjXm687F1iLSP2q3lyPPuyvTUt3aVoBpi2DqRsU= @@ -619,9 +547,6 @@ modernc.org/golex v1.0.0/go.mod h1:b/QX9oBD/LhixY6NDh+IdGv17hgB+51fET1i2kPSmvk= modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= modernc.org/strutil v1.0.0/go.mod h1:lstksw84oURvj9y3tn8lGvRxyRC1S2+g5uuIzNfIOBs= modernc.org/xc v1.0.0/go.mod h1:mRNCo0bvLjGhHO9WsyuKVU4q0ceiDDDoEeWDJHrNx8I= -mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= -mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= -mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7 h1:uuHDyjllyzRyCIvvn0OBjiRB0SgBZGqHNYAmjR7fO50= sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.7/go.mod h1:PHgbrJT7lCHcxMU+mDHEm+nx46H4zuuHZkDP6icnhu0= @@ -631,6 +556,5 @@ sigs.k8s.io/structured-merge-diff/v3 v3.0.0 h1:dOmIZBMfhcHS09XZkMyUgkq5trg3/jRyJ sigs.k8s.io/structured-merge-diff/v3 v3.0.0/go.mod h1:PlARxl6Hbt/+BC80dRLi1qAmnMqwqDg62YvvVkZjemw= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= -sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc h1:MksmcCZQWAQJCTA5T0jgI/0sJ51AVm4Z41MrmfczEoc= vbom.ml/util v0.0.0-20160121211510-db5cfe13f5cc/go.mod h1:so/NYdZXCz+E3ZpW0uAoCj6uzU2+8OWDFv/HxUSs7kI= diff --git a/hack/make-rules/vet.sh b/hack/make-rules/vet.sh index 40ed0c9e5db..81374d8139e 100755 --- a/hack/make-rules/vet.sh +++ b/hack/make-rules/vet.sh @@ -49,7 +49,7 @@ if [[ ${#targets[@]} -eq 0 ]]; then # Do not run on third_party directories or generated client code or build tools. while IFS='' read -r line; do targets+=("${line}") - done < <(go list -e ./... | grep -E -v "/(build|third_party|vendor|staging|clientset_generated)/") + done < <(go list -e ./... | grep -E -v "/(build|third_party|vendor|staging|clientset_generated|hack)/") fi go vet "${goflags[@]:+${goflags[@]}}" "${targets[@]}" diff --git a/hack/tools/README.md b/hack/tools/README.md new file mode 100644 index 00000000000..cf5c7b94bf0 --- /dev/null +++ b/hack/tools/README.md @@ -0,0 +1,2 @@ +This directory contains a stub go module used to track version of development +tools like the ones needed for updating bazel BUILD files. diff --git a/hack/tools/go.mod b/hack/tools/go.mod new file mode 100644 index 00000000000..6266cab363e --- /dev/null +++ b/hack/tools/go.mod @@ -0,0 +1,9 @@ +module k8s.io/kubernetes/hack/tools + +go 1.13 + +require ( + github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798 + github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89 + k8s.io/repo-infra v0.0.1-alpha.1 +) diff --git a/hack/tools/go.sum b/hack/tools/go.sum new file mode 100644 index 00000000000..bf494a6a3ba --- /dev/null +++ b/hack/tools/go.sum @@ -0,0 +1,335 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/OpenPeeDeeP/depguard v1.0.0/go.mod h1:7/4sitnI9YlQgTLLk734QlzXT8DuHVnAyztLplQjk+o= +github.com/OpenPeeDeeP/depguard v1.0.1 h1:VlW4R6jmBIv3/u1JNlawEvJMM4J+dPORPaZasQee8Us= +github.com/OpenPeeDeeP/depguard v1.0.1/go.mod h1:xsIw86fROiiwelg+jB2uM9PiKihMMmUx/1V+TNhjQvM= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= +github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/bazelbuild/bazel-gazelle v0.18.2/go.mod h1:D0ehMSbS+vesFsLGiD6JXu3mVEzOlfUl8wNnq+x/9p0= +github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798 h1:1pcd3bq1rC5X4nz56fdK0oQrz9CZup6DGZl8isCPthk= +github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798/go.mod h1:rPwzNHUqEzngx1iVBfO/2X2npKaT3tqPqqHW6rVsn/A= +github.com/bazelbuild/buildtools v0.0.0-20190731111112-f720930ceb60/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= +github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89 h1:3B/ZE1a6eEJ/4Jf/M6RM2KBouN8yKCUcMmXzSyWqa3g= +github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89/go.mod h1:5JP0TXzWDHXv8qvxRC4InIazwdyDseBDbzESUMKk1yU= +github.com/bazelbuild/rules_go v0.0.0-20190719190356-6dae44dc5cab h1:wzbawlkLtl2ze9w/312NHZ84c7kpUCtlkD8HgFY27sw= +github.com/bazelbuild/rules_go v0.0.0-20190719190356-6dae44dc5cab/go.mod h1:MC23Dc/wkXEyk3Wpq6lCqz0ZAYOZDw2DR5y3N1q2i7M= +github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20181012123002-c6f51f82210d/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/fatih/color v1.6.0 h1:66qjqZk8kalYAvDRtM1AdAJQI0tj4Wrue3Eq3B3pmFU= +github.com/fatih/color v1.6.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= +github.com/go-critic/go-critic v0.3.5-0.20190526074819-1df300866540/go.mod h1:+sE8vrLDS2M0pZkBk0wy6+nLdKexVDrl/jBqQOTDThA= +github.com/go-lintpack/lintpack v0.5.2 h1:DI5mA3+eKdWeJ40nU4d6Wc26qmdG8RCi/btYq0TuRN0= +github.com/go-lintpack/lintpack v0.5.2/go.mod h1:NwZuYi2nUHho8XEIZ6SIxihrnPoqBTDqfpXvXAN0sXM= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= +github.com/go-toolsmith/astcast v1.0.0 h1:JojxlmI6STnFVG9yOImLeGREv8W2ocNUM+iOhR6jE7g= +github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4= +github.com/go-toolsmith/astcopy v1.0.0 h1:OMgl1b1MEpjFQ1m5ztEO06rz5CUd3oBv9RF7+DyvdG8= +github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ= +github.com/go-toolsmith/astequal v0.0.0-20180903214952-dcb477bfacd6/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= +github.com/go-toolsmith/astequal v1.0.0 h1:4zxD8j3JRFNyLN46lodQuqz3xdKSrur7U/sr0SDS/gQ= +github.com/go-toolsmith/astequal v1.0.0/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY= +github.com/go-toolsmith/astfmt v0.0.0-20180903215011-8f8ee99c3086/go.mod h1:mP93XdblcopXwlyN4X4uodxXQhldPGZbcEJIimQHrkg= +github.com/go-toolsmith/astfmt v1.0.0 h1:A0vDDXt+vsvLEdbMFJAUBI/uTbRw1ffOPnxsILnFL6k= +github.com/go-toolsmith/astfmt v1.0.0/go.mod h1:cnWmsOAuq4jJY6Ct5YWlVLmcmLMn1JUPuQIHCY7CJDw= +github.com/go-toolsmith/astinfo v0.0.0-20180906194353-9809ff7efb21/go.mod h1:dDStQCHtmZpYOmjRP/8gHHnCCch3Zz3oEgCdZVdtweU= +github.com/go-toolsmith/astp v0.0.0-20180903215135-0af7e3c24f30/go.mod h1:SV2ur98SGypH1UjcPpCatrV5hPazG6+IfNHbkDXBRrk= +github.com/go-toolsmith/astp v1.0.0 h1:alXE75TXgcmupDsMK1fRAy0YUzLzqPVvBKoyWV+KPXg= +github.com/go-toolsmith/astp v1.0.0/go.mod h1:RSyrtpVlfTFGDYRbrjyWP1pYu//tSFcvdYrA8meBmLI= +github.com/go-toolsmith/pkgload v0.0.0-20181119091011-e9e65178eee8/go.mod h1:WoMrjiy4zvdS+Bg6z9jZH82QXwkcgCBX6nOfnmdaHks= +github.com/go-toolsmith/pkgload v1.0.0 h1:4DFWWMXVfbcN5So1sBNW9+yeiMqLFGl1wFLTL5R0Tgg= +github.com/go-toolsmith/pkgload v1.0.0/go.mod h1:5eFArkbO80v7Z0kdngIxsRXRMTaX4Ilcwuh3clNrQJc= +github.com/go-toolsmith/strparse v1.0.0 h1:Vcw78DnpCAKlM20kSbAyO4mPfJn/lyYA4BJUDxe2Jb4= +github.com/go-toolsmith/strparse v1.0.0/go.mod h1:YI2nUKP9YGZnL/L1/DLFBfixrcjslWct4wyljWhSRy8= +github.com/go-toolsmith/typep v1.0.0 h1:zKymWyA1TRYvqYrYDrfEMZULyrhcnGY3x7LDKU2XQaA= +github.com/go-toolsmith/typep v1.0.0/go.mod h1:JSQCQMUPdRlMZFswiq3TGpNp1GMktqkR2Ns5AIQkATU= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/gogo/protobuf v1.1.1 h1:72R+M5VuhED/KujmZVcIquuo8mBgX4oVda//DQb3PXo= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.0.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0 h1:P3YflyNX/ehuJFLhxviNdFxQPkGK5cDcApsge1SqnvM= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2 h1:23T5iq8rbUYlhpt5DB4XJkc6BU31uODLD1o1gKvZmD0= +github.com/golangci/check v0.0.0-20180506172741-cfe4005ccda2/go.mod h1:k9Qvh+8juN+UKMCS/3jFtGICgW8O96FVaZsaxdzDkR4= +github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a h1:w8hkcTqaFpzKqonE9uMCefW1WDie15eSP/4MssdenaM= +github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a/go.mod h1:ryS0uhF+x9jgbj/N71xsEqODy9BN81/GonCZiOzirOk= +github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6 h1:YYWNAGTKWhKpcLLt7aSj/odlKrSrelQwlovBpDuf19w= +github.com/golangci/errcheck v0.0.0-20181223084120-ef45e06d44b6/go.mod h1:DbHgvLiFKX1Sh2T1w8Q/h4NAI8MHIpzCdnBUDTXU3I0= +github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613 h1:9kfjN3AdxcbsZBf8NjltjWihK2QfBBBZuv91cMFfDHw= +github.com/golangci/go-misc v0.0.0-20180628070357-927a3d87b613/go.mod h1:SyvUF2NxV+sN8upjjeVYr5W7tyxaT1JVtvhKhOn2ii8= +github.com/golangci/go-tools v0.0.0-20190318055746-e32c54105b7c/go.mod h1:unzUULGw35sjyOYjUt0jMTXqHlZPpPc6e+xfO4cd6mM= +github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3 h1:pe9JHs3cHHDQgOFXJJdYkK6fLz2PWyYtP4hthoCMvs8= +github.com/golangci/goconst v0.0.0-20180610141641-041c5f2b40f3/go.mod h1:JXrF4TWy4tXYn62/9x8Wm/K/dm06p8tCKwFRDPZG/1o= +github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee h1:J2XAy40+7yz70uaOiMbNnluTg7gyQhtGqLQncQh+4J8= +github.com/golangci/gocyclo v0.0.0-20180528134321-2becd97e67ee/go.mod h1:ozx7R9SIwqmqf5pRP90DhR2Oay2UIjGuKheCBCNwAYU= +github.com/golangci/gofmt v0.0.0-20181222123516-0b8337e80d98/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= +github.com/golangci/golangci-lint v1.18.0/go.mod h1:kaqo8l0OZKYPtjNmG4z4HrWLgcYNIJ9B9q3LWri9uLg= +github.com/golangci/gosec v0.0.0-20190211064107-66fb7fc33547/go.mod h1:0qUabqiIQgfmlAmulqxyiGkkyF6/tOGSnY2cnPVwrzU= +github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc h1:gLLhTLMk2/SutryVJ6D4VZCU3CUqr8YloG7FPIBWFpI= +github.com/golangci/ineffassign v0.0.0-20190609212857-42439a7714cc/go.mod h1:e5tpTHCfVze+7EpLEozzMB3eafxo2KT5veNg1k6byQU= +github.com/golangci/lint-1 v0.0.0-20190420132249-ee948d087217/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= +github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= +github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= +github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770 h1:EL/O5HGrF7Jaq0yNhBLucz9hTuRzj2LdwGBOaENgxIk= +github.com/golangci/misspell v0.0.0-20180809174111-950f5d19e770/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= +github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21 h1:leSNB7iYzLYSSx3J/s5sVf4Drkc68W2wm4Ixh/mr0us= +github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bzsHdTM0bsB7+8mt0GUMvjCgwLpTapNZHU8AajI= +github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0 h1:HVfrLniijszjS1aiNg8JbBMO2+E1WIQ+j/gL4SQqGPg= +github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4= +github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= +github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0 h1:+dTQ8DZQJz0Mb/HjFlkptS1FeQ4cWSnN941F8aEG4SQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= +github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3 h1:JVnpOZS+qxli+rgVl98ILOXVNbW+kb5wcxeGx8ShUIw= +github.com/gostaticanalysis/analysisutil v0.0.0-20190318220348-4088753ea4d3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= +github.com/gostaticanalysis/analysisutil v0.0.3/go.mod h1:eEOZF4jCKGi+aprrirO9e7WKB3beBRtWgqGunKl6pKE= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v0.0.0-20180404174102-ef8a98b0bbce/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hpcloud/tail v1.0.0 h1:nfCOvKYfkgYP8hkirhJocXT2+zOD8yUNjXaWfTlyFKI= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/kisielk/gotool v0.0.0-20161130080628-0de1eaf82fa3/go.mod h1:jxZFDH7ILpTPQTk+E2s+z4CUas9lVNjIuKR4c5/zKgM= +github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= +github.com/klauspost/cpuid v0.0.0-20180405133222-e7e905edc00e/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4= +github.com/magiconair/properties v1.7.6/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.0 h1:LLgXmsheXeRoUOBOjtwPQCWIYqM/LU1ayDtDePerRcY= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.9/go.mod h1:YNRxwqDuOph6SZLI9vUUz6OYw3QyUt7WiY2yME+cCiQ= +github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-ps v0.0.0-20170309133038-4fdf99ab2936/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk= +github.com/mitchellh/mapstructure v0.0.0-20180220230111-00c29f56e238/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mozilla/tls-observatory v0.0.0-20180409132520-8791a200eb40/go.mod h1:SrKMQvPiws7F7iqYp8/TX+IhxCYhzr6N/1yb8cwHsGk= +github.com/nbutton23/zxcvbn-go v0.0.0-20160627004424-a22cb81b2ecd/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= +github.com/nbutton23/zxcvbn-go v0.0.0-20171102151520-eafdab6b0663/go.mod h1:o96djdrsSGy3AWPyBgZMAGfxZNfgntdJG+11KU4QvbU= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/pelletier/go-toml v1.1.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/quasilyte/go-consistent v0.0.0-20190521200055-c6f3937de18c/go.mod h1:5STLWrekHfjyYwxBRVRXNOSewLJ3PWfDJd1VyTS21fI= +github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= +github.com/shirou/gopsutil v0.0.0-20180427012116-c95755e4bcd7/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e h1:MZM7FHLqUHYI0Y/mQAt3d2aYa0SiNms/hFqC9qJYolM= +github.com/shurcooL/go v0.0.0-20180423040247-9e1955d9fb6e/go.mod h1:TDJrrUr11Vxrven61rcy3hJMUqaf/CLWYhHNPmT14Lk= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041 h1:llrF3Fs4018ePo4+G/HV/uQUqEI1HMDjCeOf2V6puPc= +github.com/shurcooL/go-goon v0.0.0-20170922171312-37c2f522c041/go.mod h1:N5mDOmsrJOB+vfqUK+7DmDyjhSLIIBnXo9lvZJj3MWQ= +github.com/sirupsen/logrus v1.0.5 h1:8c8b5uO0zS4X6RPl/sd1ENwSkIc0/H2PaHxE3udaE8I= +github.com/sirupsen/logrus v1.0.5/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sourcegraph/go-diff v0.5.1 h1:gO6i5zugwzo1RVTvgvfwCOSVegNuvnNi6bAD1QCmkHs= +github.com/sourcegraph/go-diff v0.5.1/go.mod h1:j2dHj3m8aZgQO8lMTcTnBcXkRRRqi34cd2MNlA9u1mE= +github.com/spf13/afero v1.1.0/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.2.0/go.mod h1:r2rcYCSwa1IExKTDiTfzaxqT2FNHs8hODu4LnUfgKEg= +github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.2/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/jwalterweatherman v0.0.0-20180109140146-7c0cea34c8ec/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.0.2/go.mod h1:A8kyI5cUJhb8N+3pkfONlcEcZbueH6nhAm0Fq7SrnBM= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA= +github.com/timakin/bodyclose v0.0.0-20190721030226-87058b9bfcec/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ultraware/funlen v0.0.1/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= +github.com/ultraware/funlen v0.0.2 h1:Av96YVBwwNSe4MLR7iI/BIa3VyI7/djnto/pK3Uxbdo= +github.com/ultraware/funlen v0.0.2/go.mod h1:Dp4UiAus7Wdb9KUZsYWZEWiRzGuM2kXM1lPbfaF6xhA= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasthttp v1.2.0/go.mod h1:4vX61m6KN+xDduDNwXrhIAVZaZaZiQ1luJk8LWSxF3s= +github.com/valyala/quicktemplate v1.1.1/go.mod h1:EH+4AkTd43SvgIbQHYu59/cJyxDoOVRUAfrukLPuGJ4= +github.com/valyala/tcplisten v0.0.0-20161114210144-ceec8f93295a/go.mod h1:v3UYOV9WzVtRmSR+PDvWpU/qWl4Wa5LApYYX4ZtKbio= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= +golang.org/x/build v0.0.0-20190927031335-2835ba2e683f/go.mod h1:fYw7AShPAhGMdXqA9gRadk/CcMsvLlClpE5oBwnS3dM= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190424203555-c05e17bb3b2d/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/net v0.0.0-20170915142106-8351a756f30f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190502183928-7f726cade0ab/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/perf v0.0.0-20180704124530-6e6d33e29852/go.mod h1:JLpeXjPJfIyPr5TlbXLkXWLhP8nz10XfvxElABhCtcw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20171026204733-164713f0dfce/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190122071731-054c452bb702/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.0.0-20170915090833-1cbadb444a80/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20170915040203-e531a2a1c15f/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181117154741-2ddaf7f79a09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190110163146-51295c7ec13a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190121143147-24cd39ecf745/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190122202912-9c309ee22fab/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190311215038-5c2858a9cfe5/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190322203728-c1a832b0ad89/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190521203540-521d6ed310dd/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190909030654-5b82db07426d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72 h1:bw9doJza/SFBEweII/rHQh338oozWyiFsBRHtrflcws= +golang.org/x/tools v0.0.0-20190920225731-5eefd052ad72/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +gopkg.in/airbrake/gobrake.v2 v2.0.9 h1:7z2uVWwn7oVeeugY1DtlPAy5H+KYgB1KeKTnqjNatLo= +gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2 h1:OAj3g0cR6Dx/R07QgQe8wkA9RNjB2u4i700xBkIT4e0= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +grpc.go4.org v0.0.0-20170609214715-11d0a25b4919/go.mod h1:77eQGdRu53HpSqPFJFmuJdjuHRquDANNeA4x7B8WQ9o= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +k8s.io/klog v1.0.0 h1:Pt+yjF5aB1xDSVbau4VsWe+dQNzA0qv1LlXdC2dF6Q8= +k8s.io/klog v1.0.0/go.mod h1:4Bi6QPql/J/LkTDqv7R/cd3hPo4k2DG6Ptcz060Ez5I= +k8s.io/repo-infra v0.0.1-alpha.1 h1:2us1n30u3cOcoPsacNfCvCssS9B9Yldr1ZGOdK0728U= +k8s.io/repo-infra v0.0.1-alpha.1/go.mod h1:wO1t9WaB99V80ljbeENTnayuEEwNZt7gECYh/CEyOJ8= +mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= +mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed/go.mod h1:Xkxe497xwlCKkIaQYRfC7CSLworTXY9RMqwhhCm+8Nc= +mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b h1:DxJ5nJdkhDlLok9K6qO+5290kphDJbHOQO1DFFFTeBo= +mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b/go.mod h1:2odslEg/xrtNQqCYg2/jCoyKnw3vv5biOc3JnIcYfL4= +mvdan.cc/unparam v0.0.0-20190209190245-fbb59629db34/go.mod h1:H6SUd1XjIs+qQCyskXg5OFSrilMRUkD8ePJpHKDPaeY= +sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4 h1:JPJh2pk3+X4lXAkZIk2RuE/7/FoK9maXw+TNPJhVS/c= +sourcegraph.com/sqs/pbtypes v0.0.0-20180604144634-d3ebe8f20ae4/go.mod h1:ketZ/q3QxT9HOBeFhu6RdvsftgpsbFHBF5Cas6cDKZ0= diff --git a/vendor/github.com/bazelbuild/buildtools/LICENSE b/hack/tools/tools.go similarity index 57% rename from vendor/github.com/bazelbuild/buildtools/LICENSE rename to hack/tools/tools.go index 0adcb5d6f52..d17328fe236 100644 --- a/vendor/github.com/bazelbuild/buildtools/LICENSE +++ b/hack/tools/tools.go @@ -1,4 +1,5 @@ -Copyright 2016 Google Inc. All Rights Reserved. +/* +Copyright 2019 The Kubernetes Authors. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -11,3 +12,15 @@ 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 tools is used to track binary dependencies with go modules +// https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module +package tools + +import ( + // bazel-related tools + _ "github.com/bazelbuild/bazel-gazelle/cmd/gazelle" + _ "github.com/bazelbuild/buildtools/buildozer" + _ "k8s.io/repo-infra/cmd/kazel" +) diff --git a/hack/update-bazel.sh b/hack/update-bazel.sh index 524a66eccf8..688d442457a 100755 --- a/hack/update-bazel.sh +++ b/hack/update-bazel.sh @@ -24,11 +24,10 @@ source "${KUBE_ROOT}/hack/lib/init.sh" export GOBIN="${KUBE_OUTPUT_BINPATH}" PATH="${GOBIN}:${PATH}" -# Install tools we need, but only from vendor/... -pushd "${KUBE_ROOT}" >/dev/null - GO111MODULE=on GOFLAGS=-mod=vendor go install github.com/bazelbuild/bazel-gazelle/cmd/gazelle - GO111MODULE=on GOFLAGS=-mod=vendor go install github.com/bazelbuild/buildtools/buildozer - GO111MODULE=on GOFLAGS=-mod=vendor go install k8s.io/repo-infra/cmd/kazel +pushd "${KUBE_ROOT}/hack/tools" >/dev/null + GO111MODULE=on go install github.com/bazelbuild/bazel-gazelle/cmd/gazelle + GO111MODULE=on go install github.com/bazelbuild/buildtools/buildozer + GO111MODULE=on go install k8s.io/repo-infra/cmd/kazel popd >/dev/null # Find all of the staging repos. @@ -104,3 +103,6 @@ buildozer -quiet 'set clinkopts select({"@io_bazel_rules_go//go/platform:linux": if [[ $ret != 0 && $ret != 3 ]]; then exit 1 fi + +# Avoid bazel stuff in tools/ directory +rm hack/tools/BUILD diff --git a/hack/verify-staticcheck.sh b/hack/verify-staticcheck.sh index d66f4474eba..87756b178dc 100755 --- a/hack/verify-staticcheck.sh +++ b/hack/verify-staticcheck.sh @@ -67,7 +67,7 @@ while IFS='' read -r line; do all_packages+=("./$line") done < <( hack/make-rules/helpers/cache_go_dirs.sh "${KUBE_ROOT}/_tmp/all_go_dirs" | grep "^${FOCUS:-.}" | - grep -vE "(third_party|generated|clientset_generated|/_)" | + grep -vE "(third_party|generated|clientset_generated|hack|/_)" | grep -vE "$ignore_pattern" ) failing_packages=() diff --git a/test/typecheck/main.go b/test/typecheck/main.go index 9e073be31f1..9a7f4e34783 100644 --- a/test/typecheck/main.go +++ b/test/typecheck/main.go @@ -82,6 +82,9 @@ var ( // edit/record.go doesn't compile without gopkg.in/yaml.v2 // in $GOSRC/$GOROOT (both typecheck and the shell script). "pkg/kubectl/cmd/testdata/edit", + // Tools we use for maintaining the code base but not necessarily + // ship as part of the release + "hack/tools", } ) diff --git a/vendor/BUILD b/vendor/BUILD index 51da9068e49..d787b2ea621 100644 --- a/vendor/BUILD +++ b/vendor/BUILD @@ -48,28 +48,6 @@ filegroup( "//vendor/github.com/aws/aws-sdk-go/service/elbv2:all-srcs", "//vendor/github.com/aws/aws-sdk-go/service/kms:all-srcs", "//vendor/github.com/aws/aws-sdk-go/service/sts:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/config:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/flag:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/internal/version:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/internal/wspace:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/label:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/language:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/merger:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/pathtools:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/repo:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/resolve:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/rule:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/walk:all-srcs", - "//vendor/github.com/bazelbuild/buildtools/api_proto:all-srcs", - "//vendor/github.com/bazelbuild/buildtools/build:all-srcs", - "//vendor/github.com/bazelbuild/buildtools/build_proto:all-srcs", - "//vendor/github.com/bazelbuild/buildtools/buildozer:all-srcs", - "//vendor/github.com/bazelbuild/buildtools/edit:all-srcs", - "//vendor/github.com/bazelbuild/buildtools/file:all-srcs", - "//vendor/github.com/bazelbuild/buildtools/lang:all-srcs", - "//vendor/github.com/bazelbuild/buildtools/tables:all-srcs", - "//vendor/github.com/bazelbuild/buildtools/wspace:all-srcs", "//vendor/github.com/beorn7/perks/quantile:all-srcs", "//vendor/github.com/blang/semver:all-srcs", "//vendor/github.com/caddyserver/caddy/caddyfile:all-srcs", @@ -403,7 +381,6 @@ filegroup( "//vendor/golang.org/x/tools/go/packages:all-srcs", "//vendor/golang.org/x/tools/go/types/objectpath:all-srcs", "//vendor/golang.org/x/tools/go/types/typeutil:all-srcs", - "//vendor/golang.org/x/tools/go/vcs:all-srcs", "//vendor/golang.org/x/tools/imports:all-srcs", "//vendor/golang.org/x/tools/internal/fastwalk:all-srcs", "//vendor/golang.org/x/tools/internal/gopathwalk:all-srcs", @@ -490,7 +467,6 @@ filegroup( "//vendor/k8s.io/kube-openapi/pkg/handler:all-srcs", "//vendor/k8s.io/kube-openapi/pkg/schemaconv:all-srcs", "//vendor/k8s.io/kube-openapi/pkg/util:all-srcs", - "//vendor/k8s.io/repo-infra/cmd/kazel:all-srcs", "//vendor/k8s.io/system-validators/validators:all-srcs", "//vendor/k8s.io/utils/buffer:all-srcs", "//vendor/k8s.io/utils/clock:all-srcs", diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/AUTHORS b/vendor/github.com/bazelbuild/bazel-gazelle/AUTHORS deleted file mode 100644 index 5abe237daec..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/AUTHORS +++ /dev/null @@ -1,18 +0,0 @@ -# This is the official list of authors for copyright purposes. -# Names should be added to this file as: -# Name or Organization -# The email address is not required for organizations. - -Andy Hochhaus -Antoine Pelisse -GinFungYJF <645116215@qq.com> -Google Inc. -Improbable Worlds Ltd -Jeff Hodges -John Millikin -Melinda Lu -Peter McAlpine -RS -Rodrigo Queiro -Tom Payne -Yuki Yugui Sonoda diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/CONTRIBUTORS b/vendor/github.com/bazelbuild/bazel-gazelle/CONTRIBUTORS deleted file mode 100644 index d4ff1901b8e..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/CONTRIBUTORS +++ /dev/null @@ -1,29 +0,0 @@ -# People who have agreed to one of the CLAs and can contribute patches. -# The AUTHORS file lists the copyright holders; this file -# lists people. For example, Google employees are listed here -# but not in AUTHORS, because Google holds the copyright. -# -# https://developers.google.com/open-source/cla/individual -# https://developers.google.com/open-source/cla/corporate -# -# Names should be added to this file as: -# Name - -Ainsley Escorce-Jones -Andy Hochhaus -Antoine Pelisse -GinFungYJF <645116215@qq.com> -Ian Cottrell -Jay Conrod -Jeff Grafton -Jeff Hodges -John Millikin -Kristina -Melinda Lu -Paul Bethe -Peter McAlpine -Rodrigo Queiro -RS -Stefan Sakalik -Tom Payne -Yuki Yugui Sonoda diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/LICENSE b/vendor/github.com/bazelbuild/bazel-gazelle/LICENSE deleted file mode 100644 index d6456956733..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/BUILD deleted file mode 100644 index f153e60e100..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/BUILD +++ /dev/null @@ -1,55 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "diff.go", - "fix.go", - "fix-update.go", - "gazelle.go", - "langs.go", - "metaresolver.go", - "print.go", - "update-repos.go", - "version.go", - ], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle", - importpath = "github.com/bazelbuild/bazel-gazelle/cmd/gazelle", - visibility = ["//visibility:private"], - 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/internal/version: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", - ], -) - -go_binary( - name = "gazelle", - embed = [":go_default_library"], - tags = ["manual"], - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/diff.go b/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/diff.go deleted file mode 100644 index 2d574090e86..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/diff.go +++ /dev/null @@ -1,89 +0,0 @@ -/* Copyright 2016 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 ( - "fmt" - "io" - "io/ioutil" - "os" - "path/filepath" - - "github.com/bazelbuild/bazel-gazelle/config" - "github.com/bazelbuild/bazel-gazelle/rule" - "github.com/pmezard/go-difflib/difflib" -) - -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 { - return fmt.Errorf("error getting old path for file %q: %v", f.Path, err) - } - rel = filepath.ToSlash(rel) - - date := "1970-01-01 00:00:00.000000000 +0000" - diff := difflib.UnifiedDiff{ - Context: 3, - FromDate: date, - ToDate: date, - } - - 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 - } - } - - 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 - } - - uc := getUpdateConfig(c) - var out io.Writer = os.Stdout - if uc.patchPath != "" { - out = &uc.patchBuffer - } - 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 -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/fix-update.go b/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/fix-update.go deleted file mode 100644 index 4544e68c233..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/fix-update.go +++ /dev/null @@ -1,592 +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 main - -import ( - "bytes" - "flag" - "fmt" - "io/ioutil" - "log" - "os" - "path/filepath" - "sort" - "strings" - - "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 { - dirs []string - emit emitFunc - repos []repo.Repo - workspaceFiles []*rule.File - walkMode walk.Mode - patchPath string - patchBuffer bytes.Buffer -} - -type emitFunc func(c *config.Config, f *rule.File) error - -var modeFromName = map[string]emitFunc{ - "print": printFile, - "fix": fixFile, - "diff": diffFile, -} - -const updateName = "_update" - -func getUpdateConfig(c *config.Config) *updateConfig { - return c.Exts[updateName].(*updateConfig) -} - -type updateConfigurer struct { - mode string - recursive bool - knownImports []string - repoConfigPath string -} - -func (ucr *updateConfigurer) RegisterFlags(fs *flag.FlagSet, cmd string, c *config.Config) { - uc := &updateConfig{} - c.Exts[updateName] = uc - - 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") - fs.Var(&gzflag.MultiFlag{Values: &ucr.knownImports}, "known_import", "import path for which external resolution is skipped (can specify multiple times)") - fs.StringVar(&ucr.repoConfigPath, "repo_config", "", "file where Gazelle should load repository configuration. Defaults to WORKSPACE.") -} - -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) - } - if uc.patchPath != "" && ucr.mode != "diff" { - return fmt.Errorf("-patch set but -mode is %s, not diff", ucr.mode) - } - - 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", dirs[i], err) - } - dir, err = filepath.EvalSymlinks(dir) - if err != nil { - 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) - } - uc.dirs[i] = dir - } - - if ucr.recursive { - uc.walkMode = walk.VisitAllUpdateSubdirsMode - } else if c.IndexLibraries { - uc.walkMode = walk.VisitAllUpdateDirsMode - } else { - uc.walkMode = walk.UpdateDirsMode - } - - // Load the repo configuration file (WORKSPACE by default) to find out - // names and prefixes of other go_repositories. This affects external - // dependency resolution for Go. - // TODO(jayconrod): Go-specific code should be moved to language/go. - if ucr.repoConfigPath == "" { - ucr.repoConfigPath = filepath.Join(c.RepoRoot, "WORKSPACE") - } - repoConfigFile, err := rule.LoadWorkspaceFile(ucr.repoConfigPath, "") - if err != nil && !os.IsNotExist(err) { - return err - } else if err == nil { - c.Repos, _, err = repo.ListRepositories(repoConfigFile) - if err != nil { - return err - } - } - for _, imp := range ucr.knownImports { - uc.repos = append(uc.repos, repo.Repo{ - Name: label.ImportPathToBazelRepoName(imp), - GoPrefix: imp, - }) - } - for _, r := range c.Repos { - if r.Kind() == "go_repository" { - uc.repos = append(uc.repos, repo.Repo{ - Name: r.Name(), - GoPrefix: r.AttrString("importpath"), - }) - } - } - - // If the repo configuration file is not WORKSPACE, also load WORKSPACE - // and any declared macro files so we can apply fixes. - workspacePath := filepath.Join(c.RepoRoot, "WORKSPACE") - var workspace *rule.File - if ucr.repoConfigPath == workspacePath { - workspace = repoConfigFile - } else { - workspace, err = rule.LoadWorkspaceFile(workspacePath, "") - if err != nil && !os.IsNotExist(err) { - return err - } - } - if workspace != nil { - c.RepoName = findWorkspaceName(workspace) - _, repoFileMap, err := repo.ListRepositories(workspace) - if err != nil { - return err - } - seen := make(map[*rule.File]bool) - for _, f := range repoFileMap { - if !seen[f] { - uc.workspaceFiles = append(uc.workspaceFiles, f) - seen[f] = true - } - } - sort.Slice(uc.workspaceFiles, func(i, j int) bool { - return uc.workspaceFiles[i].Path < uc.workspaceFiles[j].Path - }) - } - - return nil -} - -func (ucr *updateConfigurer) KnownDirectives() []string { return nil } - -func (ucr *updateConfigurer) Configure(c *config.Config, rel string, f *rule.File) {} - -// visitRecord stores information about about a directory visited with -// packages.Walk. -type visitRecord struct { - // pkgRel is the slash-separated path to the visited directory, relative to - // 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 - -func (vs byPkgRel) Len() int { return len(vs) } -func (vs byPkgRel) Less(i, j int) bool { return vs[i].pkgRel < vs[j].pkgRel } -func (vs byPkgRel) Swap(i, j int) { vs[i], vs[j] = vs[j], vs[i] } - -var genericLoads = []rule.LoadInfo{ - { - Name: "@bazel_gazelle//:def.bzl", - Symbols: []string{"gazelle"}, - }, -} - -func runFixUpdate(cmd command, args []string) (err error) { - 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() { - mrslv.AddBuiltin(kind, lang) - kinds[kind] = info - } - loads = append(loads, lang.Loads()...) - } - ruleIndex := resolve.NewRuleIndex(mrslv.Resolver) - - c, err := newFixUpdateConfiguration(cmd, args, cexts) - if err != nil { - return err - } - - if err := fixRepoFiles(c, loads); err != nil { - return err - } - - if cmd == fixCmd { - // Only check the version when "fix" is run. Generated build files - // frequently work with older version of rules_go, and we don't want to - // nag too much since there's no way to disable this warning. - checkRulesGoVersion(c.RepoRoot) - } - - // Visit all directories in the repository. - var visits []visitRecord - 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 c.IndexLibraries && f != nil { - for _, r := range f.Rules { - ruleIndex.AddRule(c, r, f) - } - } - return - } - - // Fix any problems in the file. - if f != nil { - for _, l := range languages { - l.Fix(c, f) - } - } - - // Generate rules. - var empty, gen []*rule.Rule - var imports []interface{} - for _, l := range languages { - 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(rel, 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) - for _, r := range gen { - r.Insert(f) - } - } else { - merger.MergeFile(f, empty, gen, merger.PreResolve, - unionKindInfoMaps(kinds, mappedKindInfo)) - } - visits = append(visits, visitRecord{ - pkgRel: rel, - c: c, - rules: gen, - imports: imports, - empty: empty, - file: f, - mappedKinds: mappedKinds, - mappedKindInfo: mappedKindInfo, - }) - - // Add library rules to the dependency resolution table. - if c.IndexLibraries { - for _, r := range f.Rules { - ruleIndex.AddRule(c, r, f) - } - } - }) - - // Finish building the index for dependency resolution. - ruleIndex.Finish() - - // Resolve dependencies. - rc, cleanupRc := repo.NewRemoteCache(uc.repos) - defer func() { - if cerr := cleanupRc(); err == nil && cerr != nil { - err = cerr - } - }() - for _, v := range visits { - for i, r := range v.rules { - from := label.New(c.RepoName, v.pkgRel, r.Name()) - mrslv.Resolver(r, v.pkgRel).Resolve(v.c, ruleIndex, rc, r, v.imports[i], from) - } - 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, applyKindMappings(v.mappedKinds, loads)) - if err := uc.emit(v.c, v.file); err != nil { - if err == exitError { - exit = err - } else { - log.Print(err) - } - } - } - 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) (*config.Config, error) { - c := config.New() - - fs := flag.NewFlagSet("gazelle", flag.ContinueOnError) - // Flag will call this on any parse error. Don't print usage unless - // -h or -help were passed explicitly. - fs.Usage = func() {} - - for _, cext := range cexts { - cext.RegisterFlags(fs, cmd.String(), c) - } - - if err := fs.Parse(args); err != nil { - if err == flag.ErrHelp { - fixUpdateUsage(fs) - return nil, err - } - // flag already prints the error; don't print it again. - log.Fatal("Try -help for more information.") - } - - for _, cext := range cexts { - if err := cext.CheckFlags(fs, c); err != nil { - return nil, err - } - } - - return c, nil -} - -func fixUpdateUsage(fs *flag.FlagSet) { - fmt.Fprint(os.Stderr, `usage: gazelle [fix|update] [flags...] [package-dirs...] - -The update command creates new build files and update existing BUILD files -when needed. - -The fix command also creates and updates build files, and in addition, it may -make potentially breaking updates to usage of rules. For example, it may -delete obsolete rules or rename existing rules. - -There are several output modes which can be selected with the -mode flag. The -output mode determines what Gazelle does with updated BUILD files. - - fix (default) - write updated BUILD files back to disk. - print - print updated BUILD files to stdout. - diff - diff updated BUILD files against existing files in unified format. - -Gazelle accepts a list of paths to Go package directories to process (defaults -to the working directory if none are given). It recursively traverses -subdirectories. All directories must be under the directory specified by --repo_root; if -repo_root is not given, this is the directory containing the -WORKSPACE file. - -FLAGS: - -`) - fs.PrintDefaults() -} - -func fixRepoFiles(c *config.Config, loads []rule.LoadInfo) error { - uc := getUpdateConfig(c) - if !c.ShouldFix { - return nil - } - shouldFix := false - for _, d := range uc.dirs { - if d == c.RepoRoot { - shouldFix = true - } - } - if !shouldFix { - return nil - } - - for _, f := range uc.workspaceFiles { - merger.FixLoads(f, loads) - if f.Path == filepath.Join(c.RepoRoot, "WORKSPACE") { - removeLegacyGoRepository(f) - if err := merger.CheckGazelleLoaded(f); err != nil { - return err - } - } - if err := uc.emit(c, f); err != nil { - return err - } - } - return nil -} - -// removeLegacyGoRepository removes loads of go_repository from -// @io_bazel_rules_go. FixLoads should be called after this; it will load from -// @bazel_gazelle. -func removeLegacyGoRepository(f *rule.File) { - for _, l := range f.Loads { - if l.Name() == "@io_bazel_rules_go//go:def.bzl" { - l.Remove("go_repository") - if l.IsEmpty() { - l.Delete() - } - } - } -} - -func findWorkspaceName(f *rule.File) string { - for _, r := range f.Rules { - if r.Kind() == "workspace" { - return r.Name() - } - } - return "" -} - -func isDescendingDir(dir, root string) bool { - rel, err := filepath.Rel(root, dir) - if err != nil { - return false - } - if rel == "." { - return true - } - return !strings.HasPrefix(rel, "..") -} - -func findOutputPath(c *config.Config, f *rule.File) string { - if c.ReadBuildFilesDir == "" && c.WriteBuildFilesDir == "" { - return f.Path - } - baseDir := c.WriteBuildFilesDir - if c.WriteBuildFilesDir == "" { - baseDir = c.RepoRoot - } - outputDir := filepath.Join(baseDir, filepath.FromSlash(f.Pkg)) - defaultOutputPath := filepath.Join(outputDir, c.DefaultBuildFileName()) - files, err := ioutil.ReadDir(outputDir) - if err != nil { - // Ignore error. Directory probably doesn't exist. - return defaultOutputPath - } - outputPath := rule.MatchBuildFileName(outputDir, c.ValidBuildFileNames, files) - if outputPath == "" { - return defaultOutputPath - } - 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 i, load := range mappedLoads { - if load.Name == mappedKind.KindLoad { - mappedLoads[i].Symbols = append(load.Symbols, mappedKind.KindName) - return mappedLoads - } - } - - // Add a new LoadInfo. - return append(mappedLoads, rule.LoadInfo{ - Name: mappedKind.KindLoad, - Symbols: []string{mappedKind.KindName}, - }) -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/fix.go b/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/fix.go deleted file mode 100644 index 2b67bdd56ec..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/fix.go +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright 2016 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 ( - "io/ioutil" - "os" - "path/filepath" - - "github.com/bazelbuild/bazel-gazelle/config" - "github.com/bazelbuild/bazel-gazelle/rule" -) - -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(outPath, f.Format(), 0666) -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/gazelle.go b/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/gazelle.go deleted file mode 100644 index 8ad9f9b3b17..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/gazelle.go +++ /dev/null @@ -1,124 +0,0 @@ -/* Copyright 2016 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. -*/ - -// Command gazelle is a BUILD file generator for Go projects. -// See "gazelle --help" for more details. -package main - -import ( - "flag" - "fmt" - "log" - "os" -) - -type command int - -const ( - updateCmd command = iota - fixCmd - updateReposCmd - helpCmd -) - -var commandFromName = map[string]command{ - "fix": fixCmd, - "help": helpCmd, - "update": updateCmd, - "update-repos": updateReposCmd, -} - -var nameFromCommand = []string{ - // keep in sync with definition above - "update", - "fix", - "update-repos", - "help", -} - -func (cmd command) String() string { - return nameFromCommand[cmd] -} - -func main() { - log.SetPrefix("gazelle: ") - log.SetFlags(0) // don't print timestamps - - if err := run(os.Args[1:]); err != nil && err != flag.ErrHelp { - if err == exitError { - os.Exit(1) - } else { - log.Fatal(err) - } - } -} - -func run(args []string) error { - cmd := updateCmd - if len(args) == 1 && (args[0] == "-h" || args[0] == "-help" || args[0] == "--help") { - cmd = helpCmd - } else if len(args) > 0 { - c, ok := commandFromName[args[0]] - if ok { - cmd = c - args = args[1:] - } - } - - switch cmd { - case fixCmd, updateCmd: - return runFixUpdate(cmd, args) - case helpCmd: - return help() - case updateReposCmd: - return updateRepos(args) - default: - log.Panicf("unknown command: %v", cmd) - } - return nil -} - -func help() error { - fmt.Fprint(os.Stderr, `usage: gazelle [args...] - -Gazelle is a BUILD file generator for Go projects. It can create new BUILD files -for a project that follows "go build" conventions, and it can update BUILD files -if they already exist. It can be invoked directly in a project workspace, or -it can be run on an external dependency during the build as part of the -go_repository rule. - -Gazelle may be run with one of the commands below. If no command is given, -Gazelle defaults to "update". - - update - Gazelle will create new BUILD files or update existing BUILD files - if needed. - fix - in addition to the changes made in update, Gazelle will make potentially - breaking changes. For example, it may delete obsolete rules or rename - existing rules. - update-repos - updates repository rules in the WORKSPACE file. Run with - -h for details. - help - show this message. - -For usage information for a specific command, run the command with the -h flag. -For example: - - gazelle update -h - -Gazelle is under active development, and its interface may change -without notice. - -`) - return flag.ErrHelp -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/langs.go b/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/langs.go deleted file mode 100644 index 0f8e1125578..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/langs.go +++ /dev/null @@ -1,27 +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 main - -import ( - "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.NewLanguage(), - golang.NewLanguage(), -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/metaresolver.go b/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/metaresolver.go deleted file mode 100644 index 028c4f206b5..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/metaresolver.go +++ /dev/null @@ -1,61 +0,0 @@ -/* 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 package. -func (mr *metaResolver) MappedKind(pkgRel string, kind config.MappedKind) { - mr.mappedKinds[pkgRel] = append(mr.mappedKinds[pkgRel], kind) -} - -// Resolver returns a resolver for the given rule and package, and a bool -// indicating whether one was found. Empty string may be passed for pkgRel, -// which results in consulting the builtin kinds only. -func (mr metaResolver) Resolver(r *rule.Rule, pkgRel string) resolve.Resolver { - for _, mappedKind := range mr.mappedKinds[pkgRel] { - if mappedKind.KindName == r.Kind() { - return mr.builtins[mappedKind.FromKind] - } - } - return mr.builtins[r.Kind()] -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/print.go b/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/print.go deleted file mode 100644 index bf99031124c..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/print.go +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright 2016 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 ( - "os" - - "github.com/bazelbuild/bazel-gazelle/config" - "github.com/bazelbuild/bazel-gazelle/rule" -) - -func printFile(c *config.Config, f *rule.File) error { - content := f.Format() - _, err := os.Stdout.Write(content) - return err -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/update-repos.go b/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/update-repos.go deleted file mode 100644 index 0de7d43d786..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/update-repos.go +++ /dev/null @@ -1,368 +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 main - -import ( - "errors" - "flag" - "fmt" - "os" - "path/filepath" - "sort" - "strings" - - "github.com/bazelbuild/bazel-gazelle/config" - "github.com/bazelbuild/bazel-gazelle/language" - "github.com/bazelbuild/bazel-gazelle/merger" - "github.com/bazelbuild/bazel-gazelle/repo" - "github.com/bazelbuild/bazel-gazelle/rule" -) - -type updateReposConfig struct { - repoFilePath string - importPaths []string - macroFileName string - macroDefName string - pruneRules bool - workspace *rule.File - repoFileMap map[string]*rule.File -} - -const updateReposName = "_update-repos" - -func getUpdateReposConfig(c *config.Config) *updateReposConfig { - return c.Exts[updateReposName].(*updateReposConfig) -} - -type updateReposConfigurer struct{} - -type macroFlag struct { - macroFileName *string - macroDefName *string -} - -func (f macroFlag) Set(value string) error { - args := strings.Split(value, "%") - if len(args) != 2 { - return fmt.Errorf("Failure parsing to_macro: %s, expected format is macroFile%%defName", value) - } - if strings.HasPrefix(args[0], "..") { - return fmt.Errorf("Failure parsing to_macro: %s, macro file path %s should not start with \"..\"", value, args[0]) - } - *f.macroFileName = args[0] - *f.macroDefName = args[1] - return nil -} - -func (f macroFlag) String() string { - return "" -} - -func (*updateReposConfigurer) RegisterFlags(fs *flag.FlagSet, cmd string, c *config.Config) { - uc := &updateReposConfig{} - c.Exts[updateReposName] = uc - fs.StringVar(&uc.repoFilePath, "from_file", "", "Gazelle will translate repositories listed in this file into repository rules in WORKSPACE or a .bzl macro function. Gopkg.lock and go.mod files are supported") - fs.Var(macroFlag{macroFileName: &uc.macroFileName, macroDefName: &uc.macroDefName}, "to_macro", "Tells Gazelle to write repository rules into a .bzl macro function rather than the WORKSPACE file. . The expected format is: macroFile%defName") - fs.BoolVar(&uc.pruneRules, "prune", false, "When enabled, Gazelle will remove rules that no longer have equivalent repos in the Gopkg.lock/go.mod file. Can only used with -from_file.") -} - -func (*updateReposConfigurer) CheckFlags(fs *flag.FlagSet, c *config.Config) error { - uc := getUpdateReposConfig(c) - switch { - case uc.repoFilePath != "": - if len(fs.Args()) != 0 { - return fmt.Errorf("got %d positional arguments with -from_file; wanted 0.\nTry -help for more information.", len(fs.Args())) - } - - default: - if len(fs.Args()) == 0 { - return fmt.Errorf("no repositories specified\nTry -help for more information.") - } - if uc.pruneRules { - return fmt.Errorf("the -prune option can only be used with -from_file") - } - uc.importPaths = fs.Args() - } - - var err error - workspacePath := filepath.Join(c.RepoRoot, "WORKSPACE") - uc.workspace, err = rule.LoadWorkspaceFile(workspacePath, "") - if err != nil { - return fmt.Errorf("loading WORKSPACE file: %v", err) - } - c.Repos, uc.repoFileMap, err = repo.ListRepositories(uc.workspace) - if err != nil { - return fmt.Errorf("loading WORKSPACE file: %v", err) - } - - return nil -} - -func (*updateReposConfigurer) KnownDirectives() []string { return nil } - -func (*updateReposConfigurer) Configure(c *config.Config, rel string, f *rule.File) {} - -func updateRepos(args []string) (err error) { - // Build configuration with all languages. - cexts := make([]config.Configurer, 0, len(languages)+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 - } - } - c, err := newUpdateReposConfiguration(args, cexts) - if err != nil { - return err - } - uc := getUpdateReposConfig(c) - - // TODO(jayconrod): move Go-specific RemoteCache logic to language/go. - var knownRepos []repo.Repo - for _, r := range c.Repos { - if r.Kind() == "go_repository" { - knownRepos = append(knownRepos, repo.Repo{ - Name: r.Name(), - GoPrefix: r.AttrString("importpath"), - Remote: r.AttrString("remote"), - VCS: r.AttrString("vcs"), - }) - } - } - rc, cleanup := repo.NewRemoteCache(knownRepos) - defer func() { - if cerr := cleanup(); err == nil && cerr != nil { - err = cerr - } - }() - - // Fix the workspace file with each language. - for _, lang := range languages { - lang.Fix(c, uc.workspace) - } - - // Generate rules from command language arguments or by importing a file. - var gen, empty []*rule.Rule - if uc.repoFilePath == "" { - gen, err = updateRepoImports(c, rc) - } else { - gen, empty, err = importRepos(c, rc) - } - if err != nil { - return err - } - - // Organize generated and empty rules by file. A rule should go into the file - // it came from (by name). New rules should go into WORKSPACE or the file - // specified with -to_macro. - var newGen []*rule.Rule - genForFiles := make(map[*rule.File][]*rule.Rule) - emptyForFiles := make(map[*rule.File][]*rule.Rule) - for _, r := range gen { - f := uc.repoFileMap[r.Name()] - if f != nil { - genForFiles[f] = append(genForFiles[f], r) - } else { - newGen = append(newGen, r) - } - } - for _, r := range empty { - f := uc.repoFileMap[r.Name()] - if f == nil { - panic(fmt.Sprintf("empty rule %q for deletion that was not found", r.Name())) - } - emptyForFiles[f] = append(emptyForFiles[f], r) - } - - var newGenFile *rule.File - var macroPath string - if uc.macroFileName != "" { - macroPath = filepath.Join(c.RepoRoot, filepath.Clean(uc.macroFileName)) - } - for f := range genForFiles { - if macroPath == "" && filepath.Base(f.Path) == "WORKSPACE" || - macroPath != "" && f.Path == macroPath && f.DefName == uc.macroDefName { - newGenFile = f - break - } - } - if newGenFile == nil { - if uc.macroFileName == "" { - newGenFile = uc.workspace - } else { - var err error - newGenFile, err = rule.LoadMacroFile(macroPath, "", uc.macroDefName) - if os.IsNotExist(err) { - newGenFile, err = rule.EmptyMacroFile(macroPath, "", uc.macroDefName) - if err != nil { - return fmt.Errorf("error creating %q: %v", macroPath, err) - } - } else if err != nil { - return fmt.Errorf("error loading %q: %v", macroPath, err) - } - } - } - genForFiles[newGenFile] = append(genForFiles[newGenFile], newGen...) - - // Merge rules and fix loads in each file. - seenFile := make(map[*rule.File]bool) - sortedFiles := make([]*rule.File, 0, len(genForFiles)) - for f := range genForFiles { - if !seenFile[f] { - seenFile[f] = true - sortedFiles = append(sortedFiles, f) - } - } - for f := range emptyForFiles { - if !seenFile[f] { - seenFile[f] = true - sortedFiles = append(sortedFiles, f) - } - } - sort.Slice(sortedFiles, func(i, j int) bool { - if cmp := strings.Compare(sortedFiles[i].Path, sortedFiles[j].Path); cmp != 0 { - return cmp < 0 - } - return sortedFiles[i].DefName < sortedFiles[j].DefName - }) - - updatedFiles := make(map[string]*rule.File) - for _, f := range sortedFiles { - merger.MergeFile(f, emptyForFiles[f], genForFiles[f], merger.PreResolve, kinds) - merger.FixLoads(f, loads) - if f == uc.workspace { - if err := merger.CheckGazelleLoaded(f); err != nil { - return err - } - } - f.Sync() - if uf, ok := updatedFiles[f.Path]; ok { - uf.SyncMacroFile(f) - } else { - updatedFiles[f.Path] = f - } - } - for _, f := range sortedFiles { - if uf := updatedFiles[f.Path]; uf != nil { - if err := uf.Save(uf.Path); err != nil { - return err - } - delete(updatedFiles, f.Path) - } - } - - return nil -} - -func newUpdateReposConfiguration(args []string, cexts []config.Configurer) (*config.Config, error) { - c := config.New() - fs := flag.NewFlagSet("gazelle", flag.ContinueOnError) - // Flag will call this on any parse error. Don't print usage unless - // -h or -help were passed explicitly. - fs.Usage = func() {} - for _, cext := range cexts { - cext.RegisterFlags(fs, "update-repos", c) - } - if err := fs.Parse(args); err != nil { - if err == flag.ErrHelp { - updateReposUsage(fs) - return nil, err - } - // flag already prints the error; don't print it again. - return nil, errors.New("Try -help for more information") - } - for _, cext := range cexts { - if err := cext.CheckFlags(fs, c); err != nil { - return nil, err - } - } - return c, nil -} - -func updateReposUsage(fs *flag.FlagSet) { - fmt.Fprint(os.Stderr, `usage: - -# Add/update repositories by import path -gazelle update-repos example.com/repo1 example.com/repo2 - -# Import repositories from lock file -gazelle update-repos -from_file=file - -The update-repos command updates repository rules in the WORKSPACE file. -update-repos can add or update repositories explicitly by import path. -update-repos can also import repository rules from a vendoring tool's lock -file (currently only deps' Gopkg.lock is supported). - -FLAGS: - -`) - fs.PrintDefaults() -} - -func updateRepoImports(c *config.Config, rc *repo.RemoteCache) (gen []*rule.Rule, err error) { - // TODO(jayconrod): let the user pick the language with a command line flag. - // For now, only use the first language that implements the interface. - uc := getUpdateReposConfig(c) - var updater language.RepoUpdater - for _, lang := range languages { - if u, ok := lang.(language.RepoUpdater); ok { - updater = u - break - } - } - if updater == nil { - return nil, fmt.Errorf("no languages can update repositories") - } - res := updater.UpdateRepos(language.UpdateReposArgs{ - Config: c, - Imports: uc.importPaths, - Cache: rc, - }) - return res.Gen, res.Error -} - -func importRepos(c *config.Config, rc *repo.RemoteCache) (gen, empty []*rule.Rule, err error) { - uc := getUpdateReposConfig(c) - importSupported := false - var importer language.RepoImporter - for _, lang := range languages { - if i, ok := lang.(language.RepoImporter); ok { - importSupported = true - if i.CanImport(uc.repoFilePath) { - importer = i - break - } - } - } - if importer == nil { - if importSupported { - return nil, nil, fmt.Errorf("unknown file format: %s", uc.repoFilePath) - } else { - return nil, nil, fmt.Errorf("no supported languages can import configuration files") - } - } - res := importer.ImportRepos(language.ImportReposArgs{ - Config: c, - Path: uc.repoFilePath, - Prune: uc.pruneRules, - Cache: rc, - }) - return res.Gen, res.Empty, res.Error -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/version.go b/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/version.go deleted file mode 100644 index a281dfb7790..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/cmd/gazelle/version.go +++ /dev/null @@ -1,65 +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 main - -import ( - "io/ioutil" - "log" - "path/filepath" - "regexp" - - "github.com/bazelbuild/bazel-gazelle/config" - "github.com/bazelbuild/bazel-gazelle/internal/version" - "github.com/bazelbuild/bazel-gazelle/repo" -) - -var minimumRulesGoVersion = version.Version{0, 19, 0} - -// checkRulesGoVersion checks whether a compatible version of rules_go is -// being used in the workspace. A message will be logged if an incompatible -// version is found. -// -// Note that we can't always determine the version of rules_go in use. Also, -// if we find an incompatible version, we shouldn't bail out since the -// incompatibility may not matter in the current workspace. -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 := repo.FindExternalRepo(repoRoot, config.RulesGoRepoName) - if err != nil { - return - } - defBzlPath := filepath.Join(rulesGoPath, "go", "def.bzl") - defBzlContent, err := ioutil.ReadFile(defBzlPath) - if err != nil { - return - } - versionRe := regexp.MustCompile(`(?m)^RULES_GO_VERSION = ['"]([0-9.]*)['"]`) - match := versionRe.FindSubmatch(defBzlContent) - if match == nil { - log.Printf("RULES_GO_VERSION not found in @%s//go:def.bzl.\n%s", config.RulesGoRepoName, message) - return - } - vstr := string(match[1]) - v, err := version.ParseVersion(vstr) - if err != nil { - log.Printf("RULES_GO_VERSION %q could not be parsed in @%s//go:def.bzl.\n%s", vstr, config.RulesGoRepoName, message) - } - if v.Compare(minimumRulesGoVersion) < 0 { - log.Printf("Found RULES_GO_VERSION %s. Minimum compatible version is %s.\n%s", v, minimumRulesGoVersion, message) - } -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/config/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/config/BUILD deleted file mode 100644 index 1e189b2370c..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/config/BUILD +++ /dev/null @@ -1,30 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "config.go", - "constants.go", - ], - importmap = "k8s.io/kubernetes/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/wspace:go_default_library", - "//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/config/config.go b/vendor/github.com/bazelbuild/bazel-gazelle/config/config.go deleted file mode 100644 index 27c407041db..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/config/config.go +++ /dev/null @@ -1,252 +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 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" - "log" - "path/filepath" - "strings" - - "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 -// command line arguments, directives, other hints in build files. -// -// A Config applies to a single directory. A Config is created for the -// repository root directory, then copied and modified for each subdirectory. -// -// Config itself contains only general information. Most configuration -// information is language-specific and is stored in Exts. This information -// is modified by extensions that implement Configurer. -type Config struct { - // RepoRoot is the absolute, canonical path to the root directory of the - // repository with all symlinks resolved. - RepoRoot string - - // RepoName is the name of the repository. - RepoName string - - // ReadBuildFilesDir is the absolute path to a directory where - // build files should be read from instead of RepoRoot. - ReadBuildFilesDir string - - // WriteBuildFilesDir is the absolute path to a directory where - // build files should be written to instead of RepoRoot. - WriteBuildFilesDir string - - // ValidBuildFileNames is a list of base names that are considered valid - // build files. Some repositories may have files named "BUILD" that are not - // used by Bazel and should be ignored. Must contain at least one string. - ValidBuildFileNames []string - - // ShouldFix determines whether Gazelle attempts to remove and replace - // 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 - - // Repos is a list of repository rules declared in the main WORKSPACE file - // or in macros called by the main WORKSPACE file. This may affect rule - // generation and dependency resolution. - Repos []*rule.Rule - - // 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 - // arguments, directives in build files, or other mechanisms. - 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, - Exts: make(map[string]interface{}), - } -} - -// Clone creates a copy of the configuration for use in a subdirectory. -// Note that the Exts map is copied, but its contents are not. -// Configurer.Configure should do this, if needed. -func (c *Config) Clone() *Config { - cc := *c - cc.Exts = make(map[string]interface{}) - 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 { - return true - } - } - return false -} - -// DefaultBuildFileName returns the base name used to create new build files. -func (c *Config) DefaultBuildFileName() string { - return c.ValidBuildFileNames[0] -} - -// Configurer is the interface for language or library-specific configuration -// extensions. Most (ideally all) modifications to Config should happen -// via this interface. -type Configurer interface { - // RegisterFlags registers command-line flags used by the extension. This - // method is called once with the root configuration when Gazelle - // starts. RegisterFlags may set an initial values in Config.Exts. When flags - // are set, they should modify these values. - RegisterFlags(fs *flag.FlagSet, cmd string, c *Config) - - // CheckFlags validates the configuration after command line flags are parsed. - // This is called once with the root configuration when Gazelle starts. - // CheckFlags may set default values in flags or make implied changes. - CheckFlags(fs *flag.FlagSet, c *Config) error - - // KnownDirectives returns a list of directive keys that this Configurer can - // interpret. Gazelle prints errors for directives that are not recoginized by - // any Configurer. - KnownDirectives() []string - - // Configure modifies the configuration using directives and other information - // extracted from a build file. Configure is called in each directory. - // - // c is the configuration for the current directory. It starts out as a copy - // of the configuration for the parent directory. - // - // rel is the slash-separated relative path from the repository root to - // the current directory. It is "" for the root directory itself. - // - // f is the build file for the current directory or nil if there is no - // existing build file. - Configure(c *Config, rel string, f *rule.File) -} - -// CommonConfigurer handles language-agnostic command-line flags and directives, -// 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)") -} - -func (cc *CommonConfigurer) CheckFlags(fs *flag.FlagSet, c *Config) error { - var err error - if cc.repoRoot == "" { - cc.repoRoot, err = wspace.Find(".") - if err != nil { - return fmt.Errorf("-repo_root not specified, and WORKSPACE cannot be found: %v", err) - } - } - c.RepoRoot, err = filepath.Abs(cc.repoRoot) - if err != nil { - return fmt.Errorf("%s: failed to find absolute path of repo root: %v", cc.repoRoot, err) - } - c.RepoRoot, err = filepath.EvalSymlinks(c.RepoRoot) - if err != nil { - return fmt.Errorf("%s: failed to resolve symlinks: %v", cc.repoRoot, err) - } - c.ValidBuildFileNames = strings.Split(cc.buildFileNames, ",") - if cc.readBuildFilesDir != "" { - c.ReadBuildFilesDir, err = filepath.Abs(cc.readBuildFilesDir) - if err != nil { - return fmt.Errorf("%s: failed to find absolute path of -read_build_files_dir: %v", cc.readBuildFilesDir, err) - } - } - if cc.writeBuildFilesDir != "" { - c.WriteBuildFilesDir, err = filepath.Abs(cc.writeBuildFilesDir) - if err != nil { - 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", "map_kind"} -} - -func (cc *CommonConfigurer) Configure(c *Config, rel string, f *rule.File) { - if f == nil { - return - } - for _, d := range f.Directives { - 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], - } - } - } -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/config/constants.go b/vendor/github.com/bazelbuild/bazel-gazelle/config/constants.go deleted file mode 100644 index 7bbddf82284..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/config/constants.go +++ /dev/null @@ -1,27 +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. - // 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" -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/flag/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/flag/BUILD deleted file mode 100644 index 21b2c7fb5f8..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/flag/BUILD +++ /dev/null @@ -1,23 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["flag.go"], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/bazel-gazelle/flag", - importpath = "github.com/bazelbuild/bazel-gazelle/flag", - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/flag/flag.go b/vendor/github.com/bazelbuild/bazel-gazelle/flag/flag.go deleted file mode 100644 index be5be2451e0..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/flag/flag.go +++ /dev/null @@ -1,92 +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 flag provides some general-purpose types which satisfy the -// flag.Value interface. -package flag - -import ( - stdflag "flag" - "fmt" - "strings" -) - -// 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 -} - -func (m *MultiFlag) String() string { - if m == nil || m.Values == nil { - return "" - } - return strings.Join(*m.Values, ",") -} - -// ExplicitFlag is a string flag that tracks whether it was set. -type ExplicitFlag struct { - IsSet *bool - Value *string -} - -var _ stdflag.Value = (*ExplicitFlag)(nil) - -func (f *ExplicitFlag) Set(value string) error { - *f.IsSet = true - *f.Value = value - return nil -} - -func (f *ExplicitFlag) String() string { - if f == nil || f.Value == nil { - return "" - } - 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 -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/internal/version/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/internal/version/BUILD deleted file mode 100644 index 31f68ae0830..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/internal/version/BUILD +++ /dev/null @@ -1,23 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["version.go"], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/bazel-gazelle/internal/version", - importpath = "github.com/bazelbuild/bazel-gazelle/internal/version", - visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/internal/version/version.go b/vendor/github.com/bazelbuild/bazel-gazelle/internal/version/version.go deleted file mode 100644 index 5c56fca72ee..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/internal/version/version.go +++ /dev/null @@ -1,72 +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 version - -import ( - "fmt" - "strconv" - "strings" -) - -// Version is a tuple of non-negative integers that represents the version of -// a software package. -type Version []int - -func (v Version) String() string { - cstrs := make([]string, len(v)) - for i, cn := range v { - cstrs[i] = strconv.Itoa(cn) - } - return strings.Join(cstrs, ".") -} - -// Compare returns an integer comparing two versions lexicographically. -func (x Version) Compare(y Version) int { - n := len(x) - if len(y) < n { - n = len(y) - } - for i := 0; i < n; i++ { - cmp := x[i] - y[i] - if cmp != 0 { - return cmp - } - } - return len(x) - len(y) -} - -// ParseVersion parses a version of the form "12.34.56-abcd". Non-negative -// integer components are separated by dots. An arbitrary suffix may appear -// after '-', which is ignored. -func ParseVersion(vs string) (Version, error) { - i := strings.IndexByte(vs, '-') - if i >= 0 { - vs = vs[:i] - } - cstrs := strings.Split(vs, ".") - v := make(Version, len(cstrs)) - for i, cstr := range cstrs { - cn, err := strconv.Atoi(cstr) - if err != nil { - return nil, fmt.Errorf("could not parse version string: %q is not an integer", cstr) - } - if cn < 0 { - return nil, fmt.Errorf("could not parse version string: %q is negative", cstr) - } - v[i] = cn - } - return v, nil -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/internal/wspace/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/internal/wspace/BUILD deleted file mode 100644 index 2e0fc1c49c3..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/internal/wspace/BUILD +++ /dev/null @@ -1,23 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["finder.go"], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/bazel-gazelle/internal/wspace", - importpath = "github.com/bazelbuild/bazel-gazelle/internal/wspace", - visibility = ["//vendor/github.com/bazelbuild/bazel-gazelle:__subpackages__"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/internal/wspace/finder.go b/vendor/github.com/bazelbuild/bazel-gazelle/internal/wspace/finder.go deleted file mode 100644 index 78935eb5d50..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/internal/wspace/finder.go +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2016 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 wspace provides functions to locate and modify a bazel WORKSPACE file. -package wspace - -import ( - "os" - "path/filepath" - "strings" -) - -const workspaceFile = "WORKSPACE" - -// Find searches from the given dir and up for the WORKSPACE file -// returning the directory containing it, or an error if none found in the tree. -func Find(dir string) (string, error) { - dir, err := filepath.Abs(dir) - if err != nil { - return "", err - } - - for { - _, err = os.Stat(filepath.Join(dir, workspaceFile)) - if err == nil { - return dir, nil - } - if !os.IsNotExist(err) { - return "", err - } - if strings.HasSuffix(dir, string(os.PathSeparator)) { // stop at root dir - return "", os.ErrNotExist - } - dir = filepath.Dir(dir) - } -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/label/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/label/BUILD deleted file mode 100644 index e1e93a110de..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/label/BUILD +++ /dev/null @@ -1,24 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["label.go"], - importmap = "k8s.io/kubernetes/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"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/label/label.go b/vendor/github.com/bazelbuild/bazel-gazelle/label/label.go deleted file mode 100644 index 0d8e6c0cb5f..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/label/label.go +++ /dev/null @@ -1,201 +0,0 @@ -/* Copyright 2016 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 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 ( - "fmt" - "log" - "path" - "regexp" - "strings" - - "github.com/bazelbuild/bazel-gazelle/pathtools" -) - -// 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 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 zero value of Label. It is not a valid label and may be -// returned when an error occurs. -var NoLabel = Label{} - -var ( - labelRepoRegexp = regexp.MustCompile(`^[A-Za-z][A-Za-z0-9_]*$`) - labelPkgRegexp = regexp.MustCompile(`^[A-Za-z0-9/._-]*$`) - labelNameRegexp = regexp.MustCompile(`^[A-Za-z0-9_/.+=,@~-]*$`) -) - -// Parse reads a label from a string. -// See https://docs.bazel.build/versions/master/build-ref.html#lexi. -func Parse(s string) (Label, error) { - origStr := s - - relative := true - var repo string - if strings.HasPrefix(s, "@") { - relative = false - endRepo := strings.Index(s, "//") - if endRepo < 0 { - return NoLabel, fmt.Errorf("label parse error: repository does not end with '//': %q", origStr) - } - repo = s[len("@"):endRepo] - if !labelRepoRegexp.MatchString(repo) { - return NoLabel, fmt.Errorf("label parse error: repository has invalid characters: %q", origStr) - } - s = s[endRepo:] - } - - var pkg string - if strings.HasPrefix(s, "//") { - relative = false - endPkg := strings.Index(s, ":") - if endPkg < 0 { - pkg = s[len("//"):] - s = "" - } else { - pkg = s[len("//"):endPkg] - s = s[endPkg:] - } - if !labelPkgRegexp.MatchString(pkg) { - return NoLabel, fmt.Errorf("label parse error: package has invalid characters: %q", origStr) - } - } - - if s == ":" { - return NoLabel, fmt.Errorf("label parse error: empty name: %q", origStr) - } - name := strings.TrimPrefix(s, ":") - if !labelNameRegexp.MatchString(name) { - return NoLabel, fmt.Errorf("label parse error: name has invalid characters: %q", origStr) - } - - if pkg == "" && name == "" { - return NoLabel, fmt.Errorf("label parse error: empty package and name: %q", origStr) - } - if name == "" { - name = path.Base(pkg) - } - - return Label{ - Repo: repo, - Pkg: pkg, - Name: name, - Relative: relative, - }, nil -} - -func (l Label) String() string { - if l.Relative { - return fmt.Sprintf(":%s", l.Name) - } - - var repo string - if l.Repo != "" { - repo = fmt.Sprintf("@%s", l.Repo) - } - - if path.Base(l.Pkg) == l.Name { - return fmt.Sprintf("%s//%s", repo, l.Pkg) - } - 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 - } - 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 - } - if l.Pkg == pkg { - return Label{Name: l.Name, Relative: true} - } - 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 && - l.Name == other.Name && - l.Relative == other.Relative -} - -// Contains returns whether other is contained by the package of l or a -// sub-package. Neither label may be relative. -func (l Label) Contains(other Label) bool { - if l.Relative { - log.Panicf("l must not be relative: %s", l) - } - if other.Relative { - log.Panicf("other must not be relative: %s", other) - } - result := l.Repo == other.Repo && pathtools.HasPrefix(other.Pkg, l.Pkg) - return result -} - -// ImportPathToBazelRepoName converts a Go import path into a bazel repo name -// following the guidelines in http://bazel.io/docs/be/functions.html#workspace -func ImportPathToBazelRepoName(importpath string) string { - importpath = strings.ToLower(importpath) - components := strings.Split(importpath, "/") - labels := strings.Split(components[0], ".") - var reversed []string - for i := range labels { - l := labels[len(labels)-i-1] - reversed = append(reversed, l) - } - repo := strings.Join(append(reversed, components[1:]...), "_") - return strings.NewReplacer("-", "_", ".", "_").Replace(repo) -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/language/BUILD deleted file mode 100644 index eb6254f7a78..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "lang.go", - "update.go", - ], - importmap = "k8s.io/kubernetes/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/repo:go_default_library", - "//vendor/github.com/bazelbuild/bazel-gazelle/resolve:go_default_library", - "//vendor/github.com/bazelbuild/bazel-gazelle/rule:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/language/go:all-srcs", - "//vendor/github.com/bazelbuild/bazel-gazelle/language/proto:all-srcs", - ], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/BUILD deleted file mode 100644 index cd46d0a11c2..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/BUILD +++ /dev/null @@ -1,54 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "config.go", - "constants.go", - "dep.go", - "fileinfo.go", - "fix.go", - "generate.go", - "godep.go", - "kinds.go", - "known_go_imports.go", - "known_proto_imports.go", - "lang.go", - "modules.go", - "package.go", - "resolve.go", - "std_package_list.go", - "update.go", - ], - importmap = "k8s.io/kubernetes/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", - "//vendor/github.com/pelletier/go-toml:go_default_library", - "//vendor/golang.org/x/sync/errgroup:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/config.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/config.go deleted file mode 100644 index 349b6ba2ff1..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/config.go +++ /dev/null @@ -1,447 +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 golang - -import ( - "flag" - "fmt" - "go/build" - "log" - "os" - "path" - "path/filepath" - "strings" - - "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" -) - -// goConfig contains configuration values related to Go rules. -type goConfig struct { - // genericTags is a set of tags that Gazelle considers to be true. Set with - // -build_tags or # gazelle:build_tags. Some tags, like gc, are always on. - genericTags map[string]bool - - // prefix is a prefix of an import path, used to generate importpath - // attributes. Set with -go_prefix or # gazelle:prefix. - prefix string - - // prefixRel is the package name of the directory where the prefix was set - // ("" for the root directory). - prefixRel string - - // prefixSet indicates whether the prefix was set explicitly. It is an error - // to infer an importpath for a rule without setting the prefix. - prefixSet bool - - // importMapPrefix is a prefix of a package path, used to generate importmap - // attributes. Set with # gazelle:importmap_prefix. - importMapPrefix string - - // importMapPrefixRel is the package name of the directory where importMapPrefix - // was set ("" for the root directory). - importMapPrefixRel string - - // 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 - - // goRepositoryMode is true if Gazelle was invoked by a go_repository rule. - // In this mode, we won't go out to the network to resolve external deps. - goRepositoryMode bool - - // By default, internal packages are only visible to its siblings. - // goVisibility adds a list of packages the internal packages should be - // visible to - goVisibility []string - - // moduleMode is true if the current directory is intended to be built - // as part of a module. Minimal module compatibility won't be supported - // if this is true in the root directory. External dependencies may be - // resolved differently (also depending on goRepositoryMode). - moduleMode bool - - // submodules is a list of modules which have the current module's path - // as a prefix of their own path. This affects visibility attributes - // in internal packages. - submodules []moduleRepo - - // buildExternalAttr, buildFileNamesAttr, buildFileGenerationAttr, - // buildTagsAttr, buildFileProtoModeAttr, and buildExtraArgsAttr are - // attributes for go_repository rules, set on the command line. - buildExternalAttr, buildFileNamesAttr, buildFileGenerationAttr, buildTagsAttr, buildFileProtoModeAttr, buildExtraArgsAttr string -} - -var ( - defaultGoProtoCompilers = []string{"@io_bazel_rules_go//proto:go_proto"} - defaultGoGrpcCompilers = []string{"@io_bazel_rules_go//proto:go_grpc"} -) - -func newGoConfig() *goConfig { - gc := &goConfig{ - goProtoCompilers: defaultGoProtoCompilers, - goGrpcCompilers: defaultGoGrpcCompilers, - } - gc.preprocessTags() - return gc -} - -func getGoConfig(c *config.Config) *goConfig { - return c.Exts[goName].(*goConfig) -} - -func (gc *goConfig) clone() *goConfig { - gcCopy := *gc - gcCopy.genericTags = make(map[string]bool) - for k, v := range gc.genericTags { - gcCopy.genericTags[k] = v - } - gcCopy.goProtoCompilers = gc.goProtoCompilers[:len(gc.goProtoCompilers):len(gc.goProtoCompilers)] - gcCopy.goGrpcCompilers = gc.goGrpcCompilers[:len(gc.goGrpcCompilers):len(gc.goGrpcCompilers)] - gcCopy.submodules = gc.submodules[:len(gc.submodules):len(gc.submodules)] - return &gcCopy -} - -// preprocessTags adds some tags which are on by default before they are -// used to match files. -func (gc *goConfig) preprocessTags() { - if gc.genericTags == nil { - gc.genericTags = make(map[string]bool) - } - gc.genericTags["gc"] = true -} - -// setBuildTags sets genericTags by parsing as a comma separated list. An -// error will be returned for tags that wouldn't be recognized by "go build". -// preprocessTags should be called before this. -func (gc *goConfig) setBuildTags(tags string) error { - if tags == "" { - return nil - } - for _, t := range strings.Split(tags, ",") { - if strings.HasPrefix(t, "!") { - return fmt.Errorf("build tags can't be negated: %s", t) - } - gc.genericTags[t] = true - } - 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 - -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 -) - -func (m dependencyMode) String() string { - if m == externalMode { - return "external" - } else { - return "vendored" - } -} - -type externalFlag struct { - depMode *dependencyMode -} - -func (f *externalFlag) Set(value string) error { - switch value { - case "external": - *f.depMode = externalMode - case "vendored": - *f.depMode = vendorMode - default: - return fmt.Errorf("unrecognized dependency mode: %q", value) - } - return nil -} - -func (f *externalFlag) String() string { - if f == nil || f.depMode == nil { - return "external" - } - return f.depMode.String() -} - -type tagsFlag func(string) error - -func (f tagsFlag) Set(value string) error { - return f(value) -} - -func (f tagsFlag) String() string { - return "" -} - -type moduleRepo struct { - repoName, modulePath string -} - -var validBuildExternalAttr = []string{"external", "vendored"} -var validBuildFileGenerationAttr = []string{"auto", "on", "off"} -var validBuildFileProtoModeAttr = []string{"default", "legacy", "disable", "disable_global", "package"} - -func (*goLang) KnownDirectives() []string { - return []string{ - "build_tags", - "go_grpc_compilers", - "go_proto_compilers", - "go_visibility", - "importmap_prefix", - "prefix", - } -} - -func (*goLang) RegisterFlags(fs *flag.FlagSet, cmd string, c *config.Config) { - gc := newGoConfig() - switch cmd { - case "fix", "update": - fs.Var( - tagsFlag(gc.setBuildTags), - "build_tags", - "comma-separated list of build tags. If not specified, Gazelle will not\n\tfilter sources with build constraints.") - fs.Var( - &gzflag.ExplicitFlag{Value: &gc.prefix, IsSet: &gc.prefixSet}, - "go_prefix", - "prefix of import paths in the current workspace") - fs.Var( - &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)") - fs.BoolVar( - &gc.goRepositoryMode, - "go_repository_mode", - false, - "set when gazelle is invoked by go_repository") - fs.BoolVar( - &gc.moduleMode, - "go_repository_module_mode", - false, - "set when gazelle is invoked by go_repository in module mode") - - case "update-repos": - fs.Var(&gzflag.AllowedStringFlag{Value: &gc.buildExternalAttr, Allowed: validBuildExternalAttr}, - "build_external", - "Sets the build_external attribute for the generated go_repository rule(s).") - fs.StringVar(&gc.buildExtraArgsAttr, - "build_extra_args", - "", - "Sets the build_extra_args attribute for the generated go_repository rule(s).") - fs.Var(&gzflag.AllowedStringFlag{Value: &gc.buildFileGenerationAttr, Allowed: validBuildFileGenerationAttr}, - "build_file_generation", - "Sets the build_file_generation attribute for the generated go_repository rule(s).") - fs.StringVar(&gc.buildFileNamesAttr, - "build_file_names", - "", - "Sets the build_file_name attribute for the generated go_repository rule(s).") - fs.Var(&gzflag.AllowedStringFlag{Value: &gc.buildFileProtoModeAttr, Allowed: validBuildFileProtoModeAttr}, - "build_file_proto_mode", - "Sets the build_file_proto_mode attribute for the generated go_repository rule(s).") - fs.StringVar(&gc.buildTagsAttr, - "build_tags", - "", - "Sets the build_tags attribute for the generated go_repository rule(s).") - } - c.Exts[goName] = gc -} - -func (*goLang) CheckFlags(fs *flag.FlagSet, c *config.Config) error { - // The base of the -go_prefix flag may be used to generate proto_library - // rule names when there are no .proto sources (empty rules to be deleted) - // or when the package name can't be determined. - // TODO(jayconrod): deprecate and remove this behavior. - gc := getGoConfig(c) - if pc := proto.GetProtoConfig(c); pc != nil { - pc.GoPrefix = gc.prefix - } - - // List modules that may refer to internal packages in this module. - for _, r := range c.Repos { - if r.Kind() != "go_repository" { - continue - } - modulePath := r.AttrString("importpath") - if !strings.HasPrefix(modulePath, gc.prefix+"/") { - continue - } - m := moduleRepo{ - repoName: r.Name(), - modulePath: modulePath, - } - gc.submodules = append(gc.submodules, m) - } - - return nil -} - -func (*goLang) Configure(c *config.Config, rel string, f *rule.File) { - var gc *goConfig - if raw, ok := c.Exts[goName]; !ok { - gc = newGoConfig() - } else { - gc = raw.(*goConfig).clone() - } - c.Exts[goName] = gc - - if !gc.moduleMode { - st, err := os.Stat(filepath.Join(c.RepoRoot, filepath.FromSlash(rel), "go.mod")) - if err == nil && !st.IsDir() { - gc.moduleMode = true - } - } - - if path.Base(rel) == "vendor" { - gc.importMapPrefix = inferImportPath(gc, rel) - gc.importMapPrefixRel = rel - gc.prefix = "" - gc.prefixRel = rel - } - - if f != nil { - setPrefix := func(prefix string) { - if err := checkPrefix(prefix); err != nil { - log.Print(err) - return - } - gc.prefix = prefix - gc.prefixSet = true - gc.prefixRel = rel - } - for _, d := range f.Directives { - switch d.Key { - case "build_tags": - if err := gc.setBuildTags(d.Value); err != nil { - log.Print(err) - continue - } - 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 "go_visibility": - gc.goVisibility = append(gc.goVisibility, strings.TrimSpace(d.Value)) - - case "importmap_prefix": - gc.importMapPrefix = d.Value - gc.importMapPrefixRel = rel - - case "prefix": - setPrefix(d.Value) - } - } - if !gc.prefixSet { - for _, r := range f.Rules { - switch r.Kind() { - case "go_prefix": - args := r.Args() - if len(args) != 1 { - continue - } - s, ok := args[0].(*bzl.StringExpr) - if !ok { - continue - } - setPrefix(s.Value) - - case "gazelle": - if prefix := r.AttrString("prefix"); prefix != "" { - setPrefix(prefix) - } - } - } - } - } -} - -// 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 -} - -// 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 -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/constants.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/constants.go deleted file mode 100644 index 14a343c2600..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/constants.go +++ /dev/null @@ -1,44 +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 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" -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/def.bzl b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/def.bzl deleted file mode 100644 index 77922ca3655..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/def.bzl +++ /dev/null @@ -1,26 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_context", "go_rule") - -def _std_package_list_impl(ctx): - go = go_context(ctx) - args = ctx.actions.args() - args.add_all([go.package_list, ctx.outputs.out]) - ctx.actions.run( - inputs = [go.package_list], - outputs = [ctx.outputs.out], - executable = ctx.executable._gen_std_package_list, - arguments = [args], - mnemonic = "GoStdPackageList", - ) - return [DefaultInfo(files = depset([ctx.outputs.out]))] - -std_package_list = go_rule( - _std_package_list_impl, - attrs = { - "out": attr.output(mandatory = True), - "_gen_std_package_list": attr.label( - default = "//language/go/gen_std_package_list", - cfg = "host", - executable = True, - ), - }, -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/dep.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/dep.go deleted file mode 100644 index 5e13fbc2e92..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/dep.go +++ /dev/null @@ -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 golang - -import ( - "io/ioutil" - "sort" - - "github.com/bazelbuild/bazel-gazelle/label" - "github.com/bazelbuild/bazel-gazelle/language" - "github.com/bazelbuild/bazel-gazelle/rule" - toml "github.com/pelletier/go-toml" -) - -type depLockFile struct { - Projects []depProject `toml:"projects"` -} - -type depProject struct { - Name string `toml:"name"` - Revision string `toml:"revision"` - Source string `toml:"source"` -} - -func importReposFromDep(args language.ImportReposArgs) language.ImportReposResult { - data, err := ioutil.ReadFile(args.Path) - if err != nil { - return language.ImportReposResult{Error: err} - } - var file depLockFile - if err := toml.Unmarshal(data, &file); err != nil { - return language.ImportReposResult{Error: err} - } - - gen := make([]*rule.Rule, len(file.Projects)) - for i, p := range file.Projects { - gen[i] = rule.NewRule("go_repository", label.ImportPathToBazelRepoName(p.Name)) - gen[i].SetAttr("importpath", p.Name) - gen[i].SetAttr("commit", p.Revision) - 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). - gen[i].SetAttr("remote", p.Source) - gen[i].SetAttr("vcs", "git") - } - } - sort.SliceStable(gen, func(i, j int) bool { - return gen[i].Name() < gen[j].Name() - }) - - return language.ImportReposResult{Gen: gen} -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/fileinfo.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/fileinfo.go deleted file mode 100644 index a409ebe39f1..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/fileinfo.go +++ /dev/null @@ -1,695 +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 golang - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "go/ast" - "go/parser" - "go/token" - "log" - "os" - "path" - "path/filepath" - "strconv" - "strings" - "unicode" - "unicode/utf8" - - "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 -// information comes from the file's name, from package and import declarations -// (in .go files), and from +build and cgo comments. -type fileInfo struct { - path string - name string - - // ext is the type of file, based on extension. - ext ext - - // packageName is the Go package name of a .go file, without the - // "_test" suffix if it was present. It is empty for non-Go files. - packageName string - - // importPath is the canonical import path for this file's package. - // This may be read from a package comment (in Go) or a go_package - // option (in proto). This field is empty for files that don't specify - // an import path. - importPath string - - // isTest is true if the file stem (the part before the extension) - // ends with "_test.go". This is never true for non-Go files. - isTest bool - - // imports is a list of packages imported by a file. It does not include - // "C" or anything from the standard library. - imports []string - - // isCgo is true for .go files that import "C". - isCgo bool - - // goos and goarch contain the OS and architecture suffixes in the filename, - // if they were present. - goos, goarch string - - // tags is a list of build tag lines. Each entry is the trimmed text of - // a line after a "+build" prefix. - tags []tagLine - - // copts and clinkopts contain flags that are part of CFLAGS, CPPFLAGS, - // CXXFLAGS, and LDFLAGS directives in cgo comments. - copts, clinkopts []taggedOpts - - // hasServices indicates whether a .proto file has service definitions. - hasServices bool -} - -// tagLine represents the space-separated disjunction of build tag groups -// in a line comment. -type tagLine []tagGroup - -// check returns true if at least one of the tag groups is satisfied. -func (l tagLine) check(c *config.Config, os, arch string) bool { - if len(l) == 0 { - return false - } - for _, g := range l { - if g.check(c, os, arch) { - return true - } - } - return false -} - -// tagGroup represents a comma-separated conjuction of build tags. -type tagGroup []string - -// check returns true if all of the tags are true. Tags that start with -// "!" are negated (but "!!") is not allowed. Go release tags (e.g., "go1.8") -// are ignored. If the group contains an os or arch tag, but the os or arch -// parameters are empty, check returns false even if the tag is negated. -func (g tagGroup) check(c *config.Config, os, arch string) bool { - goConf := getGoConfig(c) - for _, t := range g { - if strings.HasPrefix(t, "!!") { // bad syntax, reject always - return false - } - not := strings.HasPrefix(t, "!") - if not { - t = t[1:] - } - if isIgnoredTag(t) { - // Release tags are treated as "unknown" and are considered true, - // whether or not they are negated. - continue - } - var match bool - if _, ok := rule.KnownOSSet[t]; ok { - if os == "" { - return false - } - match = matchesOS(os, t) - } else if _, ok := rule.KnownArchSet[t]; ok { - if arch == "" { - return false - } - match = arch == t - } else { - match = goConf.genericTags[t] - } - if not { - match = !match - } - if !match { - return false - } - } - return true -} - -// taggedOpts a list of compile or link options which should only be applied -// if the given set of build tags are satisfied. These options have already -// been tokenized using the same algorithm that "go build" uses, then joined -// with OptSeparator. -type taggedOpts struct { - tags tagLine - opts string -} - -// optSeparator is a special character inserted between options that appeared -// together in a #cgo directive. This allows options to be split, modified, -// and escaped by other packages. -// -// It's important to keep options grouped together in the same string. For -// example, if we have "-framework IOKit" together in a #cgo directive, -// "-framework" shouldn't be treated as a separate string for the purposes of -// sorting and de-duplicating. -const optSeparator = "\x1D" - -// ext indicates how a file should be treated, based on extension. -type ext int - -const ( - // unknownExt is applied files that aren't buildable with Go. - unknownExt ext = iota - - // goExt is applied to .go files. - goExt - - // cExt is applied to C and C++ files. - cExt - - // hExt is applied to header files. If cgo code is present, these may be - // C or C++ headers. If not, they are treated as Go assembly headers. - hExt - - // sExt is applied to Go assembly files, ending with .s. - sExt - - // csExt is applied to other assembly files, ending with .S. These are built - // with the C compiler if cgo code is present. - csExt - - // protoExt is applied to .proto files. - protoExt -) - -// fileNameInfo returns information that can be inferred from the name of -// a file. It does not read data from the file. -func fileNameInfo(path_ string) fileInfo { - name := filepath.Base(path_) - var ext ext - switch path.Ext(name) { - case ".go": - ext = goExt - case ".c", ".cc", ".cpp", ".cxx", ".m", ".mm": - ext = cExt - case ".h", ".hh", ".hpp", ".hxx": - ext = hExt - case ".s": - ext = sExt - case ".S": - ext = csExt - case ".proto": - ext = protoExt - 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. - var isTest bool - var goos, goarch string - l := strings.Split(name[:len(name)-len(path.Ext(name))], "_") - if len(l) >= 2 && l[len(l)-1] == "test" { - isTest = ext == goExt - l = l[:len(l)-1] - } - switch { - case len(l) >= 3 && rule.KnownOSSet[l[len(l)-2]] && rule.KnownArchSet[l[len(l)-1]]: - goos = l[len(l)-2] - goarch = l[len(l)-1] - case len(l) >= 2 && rule.KnownOSSet[l[len(l)-1]]: - goos = l[len(l)-1] - case len(l) >= 2 && rule.KnownArchSet[l[len(l)-1]]: - goarch = l[len(l)-1] - } - - return fileInfo{ - path: path_, - name: name, - ext: ext, - isTest: isTest, - goos: goos, - goarch: goarch, - } -} - -// otherFileInfo returns information about a non-.go file. It will parse -// part of the file to determine build tags. If the file can't be read, an -// error will be logged, and partial information will be returned. -func otherFileInfo(path string) fileInfo { - info := fileNameInfo(path) - if info.ext == unknownExt { - return info - } - - tags, err := readTags(info.path) - if err != nil { - log.Printf("%s: error reading file: %v", info.path, err) - return info - } - info.tags = tags - return info -} - -// goFileInfo returns information about a .go file. It will parse part of the -// file to determine the package name, imports, and build constraints. -// If the file can't be read, an error will be logged, and partial information -// will be returned. -// This function is intended to match go/build.Context.Import. -// TODD(#53): extract canonical import path -func goFileInfo(path, rel string) fileInfo { - info := fileNameInfo(path) - fset := token.NewFileSet() - pf, err := parser.ParseFile(fset, info.path, nil, parser.ImportsOnly|parser.ParseComments) - if err != nil { - log.Printf("%s: error reading go file: %v", info.path, err) - return info - } - - info.packageName = pf.Name.Name - if info.isTest && strings.HasSuffix(info.packageName, "_test") { - info.packageName = info.packageName[:len(info.packageName)-len("_test")] - } - - for _, decl := range pf.Decls { - d, ok := decl.(*ast.GenDecl) - if !ok { - continue - } - for _, dspec := range d.Specs { - spec, ok := dspec.(*ast.ImportSpec) - if !ok { - continue - } - quoted := spec.Path.Value - path, err := strconv.Unquote(quoted) - if err != nil { - log.Printf("%s: error reading go file: %v", info.path, err) - continue - } - - if path == "C" { - if info.isTest { - log.Printf("%s: warning: use of cgo in test not supported", info.path) - } - info.isCgo = true - cg := spec.Doc - if cg == nil && len(d.Specs) == 1 { - cg = d.Doc - } - if cg != nil { - if err := saveCgo(&info, rel, cg); err != nil { - log.Printf("%s: error reading go file: %v", info.path, err) - } - } - continue - } - info.imports = append(info.imports, path) - } - } - - tags, err := readTags(info.path) - if err != nil { - log.Printf("%s: error reading go file: %v", info.path, err) - return info - } - info.tags = tags - - return info -} - -// saveCgo extracts CFLAGS, CPPFLAGS, CXXFLAGS, and LDFLAGS directives -// from a comment above a "C" import. This is intended to match logic in -// go/build.Context.saveCgo. -func saveCgo(info *fileInfo, rel string, cg *ast.CommentGroup) error { - text := cg.Text() - for _, line := range strings.Split(text, "\n") { - orig := line - - // Line is - // #cgo [GOOS/GOARCH...] LDFLAGS: stuff - // - line = strings.TrimSpace(line) - if len(line) < 5 || line[:4] != "#cgo" || (line[4] != ' ' && line[4] != '\t') { - continue - } - - // Split at colon. - line = strings.TrimSpace(line[4:]) - i := strings.Index(line, ":") - if i < 0 { - return fmt.Errorf("%s: invalid #cgo line: %s", info.path, orig) - } - line, optstr := strings.TrimSpace(line[:i]), strings.TrimSpace(line[i+1:]) - - // Parse tags and verb. - f := strings.Fields(line) - if len(f) < 1 { - return fmt.Errorf("%s: invalid #cgo line: %s", info.path, orig) - } - verb := f[len(f)-1] - tags := parseTagsInGroups(f[:len(f)-1]) - - // Parse options. - opts, err := splitQuoted(optstr) - if err != nil { - return fmt.Errorf("%s: invalid #cgo line: %s", info.path, orig) - } - var ok bool - for i, opt := range opts { - if opt, ok = expandSrcDir(opt, rel); !ok { - return fmt.Errorf("%s: malformed #cgo argument: %s", info.path, orig) - } - opts[i] = opt - } - joinedStr := strings.Join(opts, optSeparator) - - // Add tags to appropriate list. - switch verb { - case "CFLAGS", "CPPFLAGS", "CXXFLAGS": - info.copts = append(info.copts, taggedOpts{tags, joinedStr}) - case "LDFLAGS": - info.clinkopts = append(info.clinkopts, taggedOpts{tags, joinedStr}) - case "pkg-config": - return fmt.Errorf("%s: pkg-config not supported: %s", info.path, orig) - default: - return fmt.Errorf("%s: invalid #cgo verb: %s", info.path, orig) - } - } - return nil -} - -// splitQuoted splits the string s around each instance of one or more consecutive -// white space characters while taking into account quotes and escaping, and -// returns an array of substrings of s or an empty list if s contains only white space. -// Single quotes and double quotes are recognized to prevent splitting within the -// quoted region, and are removed from the resulting substrings. If a quote in s -// isn't closed err will be set and r will have the unclosed argument as the -// last element. The backslash is used for escaping. -// -// For example, the following string: -// -// a b:"c d" 'e''f' "g\"" -// -// Would be parsed as: -// -// []string{"a", "b:c d", "ef", `g"`} -// -// Copied from go/build.splitQuoted -func splitQuoted(s string) (r []string, err error) { - var args []string - arg := make([]rune, len(s)) - escaped := false - quoted := false - quote := '\x00' - i := 0 - for _, rune := range s { - switch { - case escaped: - escaped = false - case rune == '\\': - escaped = true - continue - case quote != '\x00': - if rune == quote { - quote = '\x00' - continue - } - case rune == '"' || rune == '\'': - quoted = true - quote = rune - continue - case unicode.IsSpace(rune): - if quoted || i > 0 { - quoted = false - args = append(args, string(arg[:i])) - i = 0 - } - continue - } - arg[i] = rune - i++ - } - if quoted || i > 0 { - args = append(args, string(arg[:i])) - } - if quote != 0 { - err = errors.New("unclosed quote") - } else if escaped { - err = errors.New("unfinished escaping") - } - return args, err -} - -// expandSrcDir expands any occurrence of ${SRCDIR}, making sure -// the result is safe for the shell. -// -// Copied from go/build.expandSrcDir -func expandSrcDir(str string, srcdir string) (string, bool) { - // "\" delimited paths cause safeCgoName to fail - // 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}") - if len(chunks) < 2 { - return str, safeCgoName(str, false) - } - ok := true - for _, chunk := range chunks { - ok = ok && (chunk == "" || safeCgoName(chunk, false)) - } - ok = ok && (srcdir == "" || safeCgoName(srcdir, true)) - res := strings.Join(chunks, srcdir) - return res, ok && res != "" -} - -// NOTE: $ is not safe for the shell, but it is allowed here because of linker options like -Wl,$ORIGIN. -// We never pass these arguments to a shell (just to programs we construct argv for), so this should be okay. -// See golang.org/issue/6038. -// The @ is for OS X. See golang.org/issue/13720. -// The % is for Jenkins. See golang.org/issue/16959. -const safeString = "+-.,/0123456789=ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz:$@%" -const safeSpaces = " " - -var safeBytes = []byte(safeSpaces + safeString) - -// Copied from go/build.safeCgoName -func safeCgoName(s string, spaces bool) bool { - if s == "" { - return false - } - safe := safeBytes - if !spaces { - safe = safe[len(safeSpaces):] - } - for i := 0; i < len(s); i++ { - if c := s[i]; c < utf8.RuneSelf && bytes.IndexByte(safe, c) < 0 { - return false - } - } - return true -} - -// readTags reads and extracts build tags from the block of comments -// and blank lines at the start of a file which is separated from the -// rest of the file by a blank line. Each string in the returned slice -// is the trimmed text of a line after a "+build" prefix. -// Based on go/build.Context.shouldBuild. -func readTags(path string) ([]tagLine, error) { - f, err := os.Open(path) - if err != nil { - return nil, err - } - defer f.Close() - scanner := bufio.NewScanner(f) - - // Pass 1: Identify leading run of // comments and blank lines, - // which must be followed by a blank line. - var lines []string - end := 0 - for scanner.Scan() { - line := strings.TrimSpace(scanner.Text()) - if line == "" { - end = len(lines) - continue - } - if strings.HasPrefix(line, "//") { - lines = append(lines, line[len("//"):]) - continue - } - break - } - if err := scanner.Err(); err != nil { - return nil, err - } - lines = lines[:end] - - // Pass 2: Process each line in the run. - var tagLines []tagLine - for _, line := range lines { - fields := strings.Fields(line) - if len(fields) > 0 && fields[0] == "+build" { - tagLines = append(tagLines, parseTagsInGroups(fields[1:])) - } - } - return tagLines, nil -} - -func parseTagsInGroups(groups []string) tagLine { - var l tagLine - for _, g := range groups { - l = append(l, tagGroup(strings.Split(g, ","))) - } - return l -} - -func isOSArchSpecific(info fileInfo, cgoTags tagLine) (osSpecific, archSpecific bool) { - if info.goos != "" { - osSpecific = true - } - if info.goarch != "" { - archSpecific = true - } - lines := info.tags - if len(cgoTags) > 0 { - lines = append(lines, cgoTags) - } - for _, line := range lines { - for _, group := range line { - for _, tag := range group { - if strings.HasPrefix(tag, "!") { - tag = tag[1:] - } - _, osOk := rule.KnownOSSet[tag] - if osOk { - osSpecific = true - } - _, archOk := rule.KnownArchSet[tag] - if archOk { - archSpecific = true - } - } - } - } - return osSpecific, archSpecific -} - -// matchesOS checks if a value is equal to either an OS value or to any of its -// aliases. -func matchesOS(os, value string) bool { - if os == value { - return true - } - for _, alias := range rule.OSAliases[os] { - if alias == value { - return true - } - } - return false -} - -// checkConstraints determines whether build constraints are satisfied on -// a given platform. -// -// The first few arguments describe the platform. genericTags is the set -// of build tags that are true on all platforms. os and arch are the platform -// GOOS and GOARCH strings. If os or arch is empty, checkConstraints will -// return false in the presence of OS and architecture constraints, even -// if they are negated. -// -// The remaining arguments describe the file being tested. All of these may -// be empty or nil. osSuffix and archSuffix are filename suffixes. fileTags -// is a list tags from +build comments found near the top of the file. cgoTags -// is an extra set of tags in a #cgo directive. -func checkConstraints(c *config.Config, os, arch, osSuffix, archSuffix string, fileTags []tagLine, cgoTags tagLine) bool { - if osSuffix != "" && !matchesOS(os, osSuffix) || archSuffix != "" && archSuffix != arch { - return false - } - for _, l := range fileTags { - if !l.check(c, os, arch) { - return false - } - } - if len(cgoTags) > 0 && !cgoTags.check(c, os, arch) { - return false - } - return true -} - -// isIgnoredTag returns whether the tag is "cgo" or is a release tag. -// Release tags match the pattern "go[0-9]\.[0-9]+". -// Gazelle won't consider whether an ignored tag is satisfied when evaluating -// build constraints for a file. -func isIgnoredTag(tag string) bool { - if tag == "cgo" || tag == "race" || tag == "msan" { - return true - } - if len(tag) < 5 || !strings.HasPrefix(tag, "go") { - return false - } - if tag[2] < '0' || tag[2] > '9' || tag[3] != '.' { - return false - } - for _, c := range tag[4:] { - if c < '0' || c > '9' { - return false - } - } - return true -} - -// protoFileInfo extracts metadata from a proto file. The proto extension -// already "parses" these and stores metadata in proto.FileInfo, so this is -// just processing relevant options. -func protoFileInfo(path_ string, protoInfo proto.FileInfo) fileInfo { - info := fileNameInfo(path_) - - // Look for "option go_package". If there's no / in the package option, then - // it's just a simple package name, not a full import path. - for _, opt := range protoInfo.Options { - if opt.Key != "go_package" { - continue - } - if strings.LastIndexByte(opt.Value, '/') == -1 { - info.packageName = opt.Value - } else { - if i := strings.LastIndexByte(opt.Value, ';'); i != -1 { - info.importPath = opt.Value[:i] - info.packageName = opt.Value[i+1:] - } else { - info.importPath = opt.Value - info.packageName = path.Base(opt.Value) - } - } - } - - // Set the Go package name from the proto package name if there was no - // option go_package. - if info.packageName == "" && protoInfo.PackageName != "" { - info.packageName = strings.Replace(protoInfo.PackageName, ".", "_", -1) - } - - info.imports = protoInfo.Imports - info.hasServices = protoInfo.HasServices - return info -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/fix.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/fix.go deleted file mode 100644 index 88d99963e1f..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/fix.go +++ /dev/null @@ -1,253 +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 golang - -import ( - "log" - - "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" -) - -func (_ *goLang) Fix(c *config.Config, f *rule.File) { - migrateLibraryEmbed(c, f) - migrateGrpcCompilers(c, f) - flattenSrcs(c, f) - squashCgoLibrary(c, f) - squashXtest(c, f) - removeLegacyProto(c, f) - removeLegacyGazelle(c, f) -} - -// migrateLibraryEmbed converts "library" attributes to "embed" attributes, -// preserving comments. This only applies to Go rules, and only if there is -// no keep comment on "library" and no existing "embed" attribute. -func migrateLibraryEmbed(c *config.Config, f *rule.File) { - for _, r := range f.Rules { - if !isGoRule(r.Kind()) { - continue - } - libExpr := r.Attr("library") - if libExpr == nil || rule.ShouldKeep(libExpr) || r.Attr("embed") != nil { - continue - } - r.DelAttr("library") - r.SetAttr("embed", &bzl.ListExpr{List: []bzl.Expr{libExpr}}) - } -} - -// migrateGrpcCompilers converts "go_grpc_library" rules into "go_proto_library" -// rules with a "compilers" attribute. -func migrateGrpcCompilers(c *config.Config, f *rule.File) { - for _, r := range f.Rules { - if r.Kind() != "go_grpc_library" || r.ShouldKeep() || r.Attr("compilers") != nil { - continue - } - r.SetKind("go_proto_library") - r.SetAttr("compilers", []string{grpcCompilerLabel}) - } -} - -// squashCgoLibrary removes cgo_library rules with the default name and -// merges their attributes with go_library with the default name. If no -// go_library rule exists, a new one will be created. -// -// Note that the library attribute is disregarded, so cgo_library and -// go_library attributes will be squashed even if the cgo_library was unlinked. -// MergeFile will remove unused values and attributes later. -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() == "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 - } - cgoLibrary = r - continue - } - 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) - } - goLibrary = r - continue - } - } - - if cgoLibrary == nil { - return - } - if !c.ShouldFix { - log.Printf("%s: cgo_library is deprecated. Run 'gazelle fix' to squash with go_library.", f.Path) - return - } - - if goLibrary == nil { - cgoLibrary.SetKind("go_library") - cgoLibrary.SetName(defaultLibName) - cgoLibrary.SetAttr("cgo", true) - return - } - - if err := rule.SquashRules(cgoLibrary, goLibrary, f.Path); err != nil { - log.Print(err) - return - } - goLibrary.DelAttr("embed") - goLibrary.SetAttr("cgo", true) - cgoLibrary.Delete() -} - -// squashXtest removes go_test rules with the default external name and merges -// their attributes with a go_test rule with the default internal name. If -// no internal go_test rule exists, a new one will be created (effectively -// renaming the old rule). -func squashXtest(c *config.Config, f *rule.File) { - // Search for internal and external tests. - var itest, xtest *rule.Rule - for _, r := range f.Rules { - if r.Kind() != "go_test" { - continue - } - if r.Name() == defaultTestName { - itest = r - } else if r.Name() == "go_default_xtest" { - xtest = r - } - } - - if xtest == nil || xtest.ShouldKeep() || (itest != nil && itest.ShouldKeep()) { - return - } - if !c.ShouldFix { - if itest == nil { - log.Printf("%s: go_default_xtest is no longer necessary. Run 'gazelle fix' to rename to go_default_test.", f.Path) - } else { - log.Printf("%s: go_default_xtest is no longer necessary. Run 'gazelle fix' to squash with go_default_test.", f.Path) - } - return - } - - // If there was no internal test, we can just rename the external test. - if itest == nil { - xtest.SetName(defaultTestName) - return - } - - // Attempt to squash. - if err := rule.SquashRules(xtest, itest, f.Path); err != nil { - log.Print(err) - return - } - xtest.Delete() -} - -// flattenSrcs transforms srcs attributes structured as concatenations of -// lists and selects (generated from PlatformStrings; see -// extractPlatformStringsExprs for matching details) into a sorted, -// de-duplicated list. Comments are accumulated and de-duplicated across -// duplicate expressions. -func flattenSrcs(c *config.Config, f *rule.File) { - for _, r := range f.Rules { - if !isGoRule(r.Kind()) { - continue - } - oldSrcs := r.Attr("srcs") - if oldSrcs == nil { - continue - } - flatSrcs := rule.FlattenExpr(oldSrcs) - if flatSrcs != oldSrcs { - r.SetAttr("srcs", flatSrcs) - } - } -} - -// removeLegacyProto removes uses of the old proto rules. It deletes loads -// from go_proto_library.bzl. It deletes proto filegroups. It removes -// go_proto_library attributes which are no longer recognized. New rules -// are generated in place of the deleted rules, but attributes and comments -// 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. - if pcMode := getProtoMode(c); pcMode != proto.DefaultMode { - return - } - - // Scan for definitions to delete. - var protoLoads []*rule.Load - for _, l := range f.Loads { - if l.Name() == "@io_bazel_rules_go//proto:go_proto_library.bzl" { - protoLoads = append(protoLoads, l) - } - } - var protoFilegroups, protoRules []*rule.Rule - for _, r := range f.Rules { - if r.Kind() == "filegroup" && r.Name() == legacyProtoFilegroupName { - protoFilegroups = append(protoFilegroups, r) - } - if r.Kind() == "go_proto_library" { - protoRules = append(protoRules, r) - } - } - if len(protoLoads)+len(protoFilegroups) == 0 { - return - } - if !c.ShouldFix { - log.Printf("%s: go_proto_library.bzl is deprecated. Run 'gazelle fix' to replace old rules.", f.Path) - return - } - - // Delete legacy proto loads and filegroups. Only delete go_proto_library - // rules if we deleted a load. - for _, l := range protoLoads { - l.Delete() - } - for _, r := range protoFilegroups { - r.Delete() - } - if len(protoLoads) > 0 { - for _, r := range protoRules { - r.Delete() - } - } -} - -// removeLegacyGazelle removes loads of the "gazelle" macro from -// @io_bazel_rules_go//go:def.bzl. The definition has moved to -// @bazel_gazelle//:def.bzl, and the old one will be deleted soon. -func removeLegacyGazelle(c *config.Config, f *rule.File) { - for _, l := range f.Loads { - if l.Name() == "@io_bazel_rules_go//go:def.bzl" && l.Has("gazelle") { - l.Remove("gazelle") - if l.IsEmpty() { - l.Delete() - } - } - } -} - -func isGoRule(kind string) bool { - return kind == "go_library" || - kind == "go_binary" || - kind == "go_test" || - kind == "go_proto_library" || - kind == "go_grpc_library" -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/generate.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/generate.go deleted file mode 100644 index c9b398ebf50..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/generate.go +++ /dev/null @@ -1,638 +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 golang - -import ( - "fmt" - "go/build" - "log" - "path" - "path/filepath" - "sort" - "strings" - "sync" - - "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(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) - pcMode := getProtoMode(c) - - // This is a collection of proto_library rule names that have a corresponding - // go_proto_library rule already generated. - goProtoRules := make(map[string]struct{}) - - var protoRuleNames []string - protoPackages := make(map[string]proto.Package) - protoFileInfo := make(map[string]proto.FileInfo) - for _, r := range args.OtherGen { - if r.Kind() == "go_proto_library" { - if proto := r.AttrString("proto"); proto != "" { - goProtoRules[proto] = struct{}{} - } - if protos := r.AttrStrings("protos"); protos != nil { - for _, proto := range protos { - goProtoRules[proto] = struct{}{} - } - } - - } - if r.Kind() != "proto_library" { - continue - } - pkg := r.PrivateAttr(proto.PackageKey).(proto.Package) - protoPackages[r.Name()] = pkg - for name, info := range pkg.Files { - protoFileInfo[name] = info - } - protoRuleNames = append(protoRuleNames, r.Name()) - } - sort.Strings(protoRuleNames) - var emptyProtoRuleNames []string - for _, r := range args.OtherEmpty { - if r.Kind() == "proto_library" { - emptyProtoRuleNames = append(emptyProtoRuleNames, r.Name()) - } - } - - // If proto rule generation is enabled, exclude .pb.go files that correspond - // to any .proto files present. - 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"] - return !ok - } - return true - } - filterFiles(®ularFiles, keep) - filterFiles(&genFiles, keep) - } - - // Split regular files into files which can determine the package name and - // import path and other files. - var goFiles, otherFiles []string - for _, f := range regularFiles { - if strings.HasSuffix(f, ".go") { - goFiles = append(goFiles, f) - } else { - otherFiles = append(otherFiles, f) - } - } - - // 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 args.Subdirs { - if sub == "testdata" { - hasTestdata = !gl.goPkgRels[path.Join(args.Rel, "testdata")] - break - } - } - - // Build a set of packages from files in this directory. - 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, args.Dir, goPackageMap) - if err != nil { - if _, ok := err.(*build.NoGoError); ok { - if len(protoPackages) == 1 { - for name, ppkg := range protoPackages { - if _, ok := goProtoRules[":"+name]; ok { - // if a go_proto_library rule already exists for this - // proto package, treat it as if the proto package - // doesn't exist. - pkg = emptyPackage(c, args.Dir, args.Rel) - break - } - pkg = &goPackage{ - name: goProtoPackageName(ppkg), - importPath: goProtoImportPath(gc, ppkg, args.Rel), - proto: protoTargetFromProtoPackage(name, ppkg), - } - protoName = name - break - } - } else { - pkg = emptyPackage(c, args.Dir, args.Rel) - } - } else { - log.Print(err) - } - } - - // Try to link the selected package with a proto package. - if pkg != nil { - if pkg.importPath == "" { - if err := pkg.inferImportPath(c); err != nil && pkg.firstGoFile() != "" { - inferImportPathErrorOnce.Do(func() { log.Print(err) }) - } - } - for _, name := range protoRuleNames { - ppkg := protoPackages[name] - if pkg.importPath == goProtoImportPath(gc, ppkg, args.Rel) { - protoName = name - pkg.proto = protoTargetFromProtoPackage(name, ppkg) - break - } - } - } - - // Generate rules for proto packages. These should come before the other - // Go rules. - 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 { - if _, ok := goProtoRules[":"+name]; ok { - // if a go_proto_library rule exists for this proto_library rule - // already, skip creating another go_proto_library for it, assuming - // that a different gazelle extension is responsible for - // go_proto_library rule generation. - continue - } - ppkg := protoPackages[name] - var rs []*rule.Rule - if name == protoName { - protoEmbed, rs = g.generateProto(pcMode, pkg.proto, pkg.importPath) - } else { - target := protoTargetFromProtoPackage(name, ppkg) - 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" - res.Empty = append(res.Empty, rule.NewRule("go_proto_library", goProtoName)) - } - 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 = "" - } - - // Complete the Go package and generate rules for that. - if pkg != nil { - // Add files with unknown packages. This happens when there are parse - // or I/O errors. We should keep the file in the srcs list and let the - // compiler deal with the error. - cgo := pkg.haveCgo() - for _, info := range goFilesWithUnknownPackage { - if err := pkg.addFile(c, info, cgo); err != nil { - log.Print(err) - } - } - - // Process the other static files. - for _, file := range otherFiles { - info := otherFileInfo(filepath.Join(args.Dir, file)) - if err := pkg.addFile(c, info, cgo); err != nil { - log.Print(err) - } - } - - // Process generated files. Note that generated files may have the same names - // as static files. Bazel will use the generated files, but we will look at - // the content of static files, assuming they will be the same. - regularFileSet := make(map[string]bool) - for _, f := range regularFiles { - regularFileSet[f] = true - } - // Some of the generated files may have been consumed by other rules - consumedFileSet := make(map[string]bool) - for _, r := range args.OtherGen { - for _, f := range r.AttrStrings("srcs") { - consumedFileSet[f] = true - } - if f := r.AttrString("src"); f != "" { - consumedFileSet[f] = true - } - } - for _, f := range genFiles { - if regularFileSet[f] || consumedFileSet[f] { - continue - } - info := fileNameInfo(filepath.Join(args.Dir, f)) - if err := pkg.addFile(c, info, cgo); err != nil { - log.Print(err) - } - } - - // Generate Go rules. - if protoName == "" { - // Empty proto rules for deletion. - _, rs := g.generateProto(pcMode, pkg.proto, pkg.importPath) - rules = append(rules, rs...) - } - lib := g.generateLib(pkg, protoEmbed) - var libName string - if !lib.IsEmpty(goKinds[lib.Kind()]) { - libName = lib.Name() - } - rules = append(rules, lib) - rules = append(rules, - g.generateBin(pkg, libName), - g.generateTest(pkg, libName)) - } - - for _, r := range rules { - if r.IsEmpty(goKinds[r.Kind()]) { - res.Empty = append(res.Empty, r) - } else { - res.Gen = append(res.Gen, r) - res.Imports = append(res.Imports, r.PrivateAttr(config.GazelleImportsKey)) - } - } - - if args.File != nil || len(res.Gen) > 0 { - gl.goPkgRels[args.Rel] = true - } else { - for _, sub := range args.Subdirs { - if gl.goPkgRels[path.Join(args.Rel, sub)] { - gl.goPkgRels[args.Rel] = true - break - } - } - } - - return res -} - -func filterFiles(files *[]string, pred func(string) bool) { - w := 0 - for r := 0; r < len(*files); r++ { - f := (*files)[r] - if pred(f) { - (*files)[w] = f - w++ - } - } - *files = (*files)[:w] -} - -func buildPackages(c *config.Config, dir, rel string, goFiles []string, hasTestdata bool) (packageMap map[string]*goPackage, goFilesWithUnknownPackage []fileInfo) { - // Process .go and .proto files first, since these determine the package name. - packageMap = make(map[string]*goPackage) - for _, f := range goFiles { - path := filepath.Join(dir, f) - info := goFileInfo(path, rel) - if info.packageName == "" { - goFilesWithUnknownPackage = append(goFilesWithUnknownPackage, info) - continue - } - if info.packageName == "documentation" { - // go/build ignores this package - continue - } - - if _, ok := packageMap[info.packageName]; !ok { - packageMap[info.packageName] = &goPackage{ - name: info.packageName, - dir: dir, - rel: rel, - hasTestdata: hasTestdata, - } - } - if err := packageMap[info.packageName].addFile(c, info, false); err != nil { - log.Print(err) - } - } - return packageMap, goFilesWithUnknownPackage -} - -var inferImportPathErrorOnce sync.Once - -// selectPackages selects one Go packages out of the buildable packages found -// in a directory. If multiple packages are found, it returns the package -// whose name matches the directory if such a package exists. -func selectPackage(c *config.Config, dir string, packageMap map[string]*goPackage) (*goPackage, error) { - buildablePackages := make(map[string]*goPackage) - for name, pkg := range packageMap { - if pkg.isBuildable(c) { - buildablePackages[name] = pkg - } - } - - if len(buildablePackages) == 0 { - return nil, &build.NoGoError{Dir: dir} - } - - if len(buildablePackages) == 1 { - for _, pkg := range buildablePackages { - return pkg, nil - } - } - - if pkg, ok := buildablePackages[defaultPackageName(c, dir)]; ok { - return pkg, nil - } - - err := &build.MultiplePackageError{Dir: dir} - for name, pkg := range buildablePackages { - // Add the first file for each package for the error message. - // Error() method expects these lists to be the same length. File - // lists must be non-empty. These lists are only created by - // buildPackage for packages with .go files present. - err.Packages = append(err.Packages, name) - err.Files = append(err.Files, pkg.firstGoFile()) - } - return nil, err -} - -func emptyPackage(c *config.Config, dir, rel string) *goPackage { - pkg := &goPackage{ - name: defaultPackageName(c, dir), - dir: dir, - rel: rel, - } - pkg.inferImportPath(c) - return pkg -} - -func defaultPackageName(c *config.Config, rel string) string { - gc := getGoConfig(c) - return pathtools.RelBaseName(rel, gc.prefix, "") -} - -type generator struct { - c *config.Config - rel string - shouldSetVisibility bool -} - -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 - // are likely hand-written. - return "", nil - } - - gc := getGoConfig(g.c) - filegroupName := legacyProtoFilegroupName - protoName := target.name - if protoName == "" { - importPath := inferImportPath(gc, g.rel) - protoName = proto.RuleName(importPath) - } - goProtoName := strings.TrimSuffix(protoName, "_proto") + "_go_proto" - visibility := g.commonVisibility(importPath) - - if mode == proto.LegacyMode { - filegroup := rule.NewRule("filegroup", filegroupName) - if target.sources.isEmpty() { - return "", []*rule.Rule{filegroup} - } - filegroup.SetAttr("srcs", target.sources.build()) - if g.shouldSetVisibility { - filegroup.SetAttr("visibility", visibility) - } - return "", []*rule.Rule{filegroup} - } - - if target.sources.isEmpty() { - return "", []*rule.Rule{ - rule.NewRule("filegroup", filegroupName), - rule.NewRule("go_proto_library", goProtoName), - } - } - - goProtoLibrary := rule.NewRule("go_proto_library", goProtoName) - goProtoLibrary.SetAttr("proto", ":"+protoName) - g.setImportAttrs(goProtoLibrary, importPath) - if target.hasServices { - goProtoLibrary.SetAttr("compilers", gc.goGrpcCompilers) - } else if gc.goProtoCompilersSet { - goProtoLibrary.SetAttr("compilers", gc.goProtoCompilers) - } - if g.shouldSetVisibility { - goProtoLibrary.SetAttr("visibility", visibility) - } - goProtoLibrary.SetPrivateAttr(config.GazelleImportsKey, target.imports.build()) - return goProtoName, []*rule.Rule{goProtoLibrary} -} - -func (g *generator) generateLib(pkg *goPackage, embed string) *rule.Rule { - goLibrary := rule.NewRule("go_library", defaultLibName) - if !pkg.library.sources.hasGo() && embed == "" { - return goLibrary // empty - } - var visibility []string - if pkg.isCommand() { - // Libraries made for a go_binary should not be exposed to the public. - visibility = []string{"//visibility:private"} - } else { - visibility = g.commonVisibility(pkg.importPath) - } - g.setCommonAttrs(goLibrary, pkg.rel, visibility, pkg.library, embed) - g.setImportAttrs(goLibrary, pkg.importPath) - return goLibrary -} - -func (g *generator) generateBin(pkg *goPackage, library string) *rule.Rule { - name := pathtools.RelBaseName(pkg.rel, getGoConfig(g.c).prefix, g.c.RepoRoot) - goBinary := rule.NewRule("go_binary", name) - if !pkg.isCommand() || pkg.binary.sources.isEmpty() && library == "" { - return goBinary // empty - } - visibility := g.commonVisibility(pkg.importPath) - 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", defaultTestName) - if !pkg.test.sources.hasGo() { - return goTest // empty - } - g.setCommonAttrs(goTest, pkg.rel, nil, pkg.test, library) - if pkg.hasTestdata { - goTest.SetAttr("data", rule.GlobValue{Patterns: []string{"testdata/**"}}) - } - return goTest -} - -func (g *generator) setCommonAttrs(r *rule.Rule, pkgRel string, visibility []string, target goTarget, embed string) { - if !target.sources.isEmpty() { - r.SetAttr("srcs", target.sources.buildFlat()) - } - if target.cgo { - r.SetAttr("cgo", true) - } - if !target.clinkopts.isEmpty() { - r.SetAttr("clinkopts", g.options(target.clinkopts.build(), pkgRel)) - } - if !target.copts.isEmpty() { - r.SetAttr("copts", g.options(target.copts.build(), pkgRel)) - } - if g.shouldSetVisibility && len(visibility) > 0 { - r.SetAttr("visibility", visibility) - } - if embed != "" { - r.SetAttr("embed", []string{":" + embed}) - } - r.SetPrivateAttr(config.GazelleImportsKey, target.imports.build()) -} - -func (g *generator) setImportAttrs(r *rule.Rule, importPath string) { - gc := getGoConfig(g.c) - r.SetAttr("importpath", importPath) - - // Set importpath_aliases if we need minimal module compatibility. - // If a package is part of a module with a v2+ semantic import version - // suffix, packages that are not part of modules may import it without - // the suffix. - if gc.goRepositoryMode && gc.moduleMode && pathtools.HasPrefix(importPath, gc.prefix) && gc.prefixRel == "" { - if mmcImportPath := pathWithoutSemver(importPath); mmcImportPath != "" { - r.SetAttr("importpath_aliases", []string{mmcImportPath}) - } - } - - if gc.importMapPrefix != "" { - fromPrefixRel := pathtools.TrimPrefix(g.rel, gc.importMapPrefixRel) - importMap := path.Join(gc.importMapPrefix, fromPrefixRel) - if importMap != importPath { - r.SetAttr("importmap", importMap) - } - } -} - -func (g *generator) commonVisibility(importPath string) []string { - // If the Bazel package name (rel) contains "internal", add visibility for - // subpackages of the parent. - // If the import path contains "internal" but rel does not, this is - // probably an internal submodule. Add visibility for all subpackages. - relIndex := pathtools.Index(g.rel, "internal") - importIndex := pathtools.Index(importPath, "internal") - visibility := getGoConfig(g.c).goVisibility - if relIndex >= 0 { - parent := strings.TrimSuffix(g.rel[:relIndex], "/") - visibility = append(visibility, fmt.Sprintf("//%s:__subpackages__", parent)) - } else if importIndex >= 0 { - visibility = append(visibility, "//:__subpackages__") - } else { - return []string{"//visibility:public"} - } - - // Add visibility for any submodules that have the internal parent as - // a prefix of their module path. - if importIndex >= 0 { - gc := getGoConfig(g.c) - internalRoot := strings.TrimSuffix(importPath[:importIndex], "/") - for _, m := range gc.submodules { - if strings.HasPrefix(m.modulePath, internalRoot) { - visibility = append(visibility, fmt.Sprintf("@%s//:__subpackages__", m.repoName)) - } - } - } - - return visibility -} - -var ( - // shortOptPrefixes are strings that come at the beginning of an option - // argument that includes a path, e.g., -Ifoo/bar. - shortOptPrefixes = []string{"-I", "-L", "-F"} - - // longOptPrefixes are separate arguments that come before a path argument, - // e.g., -iquote foo/bar. - longOptPrefixes = []string{"-I", "-L", "-F", "-iquote", "-isystem"} -) - -// options transforms package-relative paths in cgo options into repository- -// root-relative paths that Bazel can understand. For example, if a cgo file -// in //foo declares an include flag in its copts: "-Ibar", this method -// will transform that flag into "-Ifoo/bar". -func (g *generator) options(opts rule.PlatformStrings, pkgRel string) rule.PlatformStrings { - fixPath := func(opt string) string { - if strings.HasPrefix(opt, "/") { - return opt - } - return path.Clean(path.Join(pkgRel, opt)) - } - - fixGroups := func(groups []string) ([]string, error) { - fixedGroups := make([]string, len(groups)) - for i, group := range groups { - opts := strings.Split(group, optSeparator) - fixedOpts := make([]string, len(opts)) - isPath := false - for j, opt := range opts { - if isPath { - opt = fixPath(opt) - isPath = false - goto next - } - - for _, short := range shortOptPrefixes { - if strings.HasPrefix(opt, short) && len(opt) > len(short) { - opt = short + fixPath(opt[len(short):]) - goto next - } - } - - for _, long := range longOptPrefixes { - if opt == long { - isPath = true - goto next - } - } - - next: - fixedOpts[j] = escapeOption(opt) - } - fixedGroups[i] = strings.Join(fixedOpts, " ") - } - - return fixedGroups, nil - } - - opts, errs := opts.MapSlice(fixGroups) - if errs != nil { - log.Panicf("unexpected error when transforming options with pkg %q: %v", pkgRel, errs) - } - return opts -} - -func escapeOption(opt string) string { - return strings.NewReplacer( - `\`, `\\`, - `'`, `\'`, - `"`, `\"`, - ` `, `\ `, - "\t", "\\\t", - "\n", "\\\n", - "\r", "\\\r", - ).Replace(opt) -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/godep.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/godep.go deleted file mode 100644 index 83337b7b3e6..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/godep.go +++ /dev/null @@ -1,88 +0,0 @@ -/* 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 golang - -import ( - "encoding/json" - "fmt" - "io/ioutil" - - "github.com/bazelbuild/bazel-gazelle/label" - "github.com/bazelbuild/bazel-gazelle/language" - "github.com/bazelbuild/bazel-gazelle/rule" - "golang.org/x/sync/errgroup" -) - -type goDepLockFile struct { - ImportPath string - GoVersion string - GodepVersion string - Packages []string - Deps []goDepProject -} - -type goDepProject struct { - ImportPath string - Rev string -} - -func importReposFromGodep(args language.ImportReposArgs) language.ImportReposResult { - data, err := ioutil.ReadFile(args.Path) - if err != nil { - return language.ImportReposResult{Error: err} - } - - file := goDepLockFile{} - if err := json.Unmarshal(data, &file); err != nil { - return language.ImportReposResult{Error: err} - } - - var eg errgroup.Group - roots := make([]string, len(file.Deps)) - for i := range file.Deps { - i := i - eg.Go(func() error { - p := file.Deps[i] - repoRoot, _, err := args.Cache.Root(p.ImportPath) - if err != nil { - return err - } - roots[i] = repoRoot - return nil - }) - } - if err := eg.Wait(); err != nil { - return language.ImportReposResult{Error: err} - } - - gen := make([]*rule.Rule, 0, len(file.Deps)) - repoToRev := make(map[string]string) - for i, p := range file.Deps { - repoRoot := roots[i] - if rev, ok := repoToRev[repoRoot]; !ok { - r := rule.NewRule("go_repository", label.ImportPathToBazelRepoName(repoRoot)) - r.SetAttr("importpath", repoRoot) - r.SetAttr("commit", p.Rev) - repoToRev[repoRoot] = p.Rev - gen = append(gen, r) - } else { - if p.Rev != rev { - return language.ImportReposResult{Error: fmt.Errorf("repo %s imported at multiple revisions: %s, %s", repoRoot, p.Rev, rev)} - } - } - } - return language.ImportReposResult{Gen: gen} -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/kinds.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/kinds.go deleted file mode 100644 index fa89023727f..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/kinds.go +++ /dev/null @@ -1,153 +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 golang - -import "github.com/bazelbuild/bazel-gazelle/rule" - -var goKinds = map[string]rule.KindInfo{ - "filegroup": { - NonEmptyAttrs: map[string]bool{"srcs": true}, - MergeableAttrs: map[string]bool{"srcs": true}, - }, - "go_binary": { - MatchAny: true, - NonEmptyAttrs: map[string]bool{ - "deps": true, - "embed": true, - "srcs": true, - }, - SubstituteAttrs: map[string]bool{"embed": true}, - MergeableAttrs: map[string]bool{ - "cgo": true, - "clinkopts": true, - "copts": true, - "embed": true, - "srcs": true, - }, - ResolveAttrs: map[string]bool{"deps": true}, - }, - "go_library": { - MatchAttrs: []string{"importpath"}, - NonEmptyAttrs: map[string]bool{ - "deps": true, - "embed": true, - "srcs": true, - }, - SubstituteAttrs: map[string]bool{ - "embed": true, - }, - MergeableAttrs: map[string]bool{ - "cgo": true, - "clinkopts": true, - "copts": true, - "embed": true, - "importmap": true, - "importpath": true, - "srcs": true, - }, - ResolveAttrs: map[string]bool{"deps": true}, - }, - "go_proto_library": { - MatchAttrs: []string{"importpath"}, - NonEmptyAttrs: map[string]bool{ - "deps": true, - "embed": true, - "proto": true, - "srcs": true, - }, - SubstituteAttrs: map[string]bool{"proto": true}, - MergeableAttrs: map[string]bool{ - "srcs": true, - "importpath": true, - "importmap": true, - "cgo": true, - "clinkopts": true, - "copts": true, - "embed": true, - "proto": true, - "compilers": true, - }, - ResolveAttrs: map[string]bool{"deps": true}, - }, - "go_repository": { - MatchAttrs: []string{"importpath"}, - NonEmptyAttrs: map[string]bool{ - "importpath": true, - }, - MergeableAttrs: map[string]bool{ - "commit": true, - "importpath": true, - "remote": true, - "replace": true, - "sha256": true, - "strip_prefix": true, - "sum": true, - "tag": true, - "type": true, - "urls": true, - "vcs": true, - "version": true, - }, - }, - "go_test": { - NonEmptyAttrs: map[string]bool{ - "deps": true, - "embed": true, - "srcs": true, - }, - MergeableAttrs: map[string]bool{ - "cgo": true, - "clinkopts": true, - "copts": true, - "embed": true, - "srcs": true, - }, - ResolveAttrs: map[string]bool{"deps": true}, - }, -} - -var goLoads = []rule.LoadInfo{ - { - Name: "@io_bazel_rules_go//go:def.bzl", - Symbols: []string{ - "cgo_library", - "go_binary", - "go_library", - "go_prefix", - "go_repository", - "go_test", - }, - }, { - Name: "@io_bazel_rules_go//proto:def.bzl", - Symbols: []string{ - "go_grpc_library", - "go_proto_library", - }, - }, { - Name: "@bazel_gazelle//:deps.bzl", - Symbols: []string{ - "go_repository", - }, - After: []string{ - "go_rules_dependencies", - "go_register_toolchains", - "gazelle_dependencies", - }, - }, -} - -func (_ *goLang) Kinds() map[string]rule.KindInfo { return goKinds } -func (_ *goLang) Loads() []rule.LoadInfo { return goLoads } diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/known_go_imports.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/known_go_imports.go deleted file mode 100644 index 5ee9815da12..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/known_go_imports.go +++ /dev/null @@ -1,201 +0,0 @@ -// 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/v1/common": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google.golang.org/genproto/googleapis/ads/googleads/v1/enums": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google.golang.org/genproto/googleapis/ads/googleads/v1/errors": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google.golang.org/genproto/googleapis/ads/googleads/v1/resources": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google.golang.org/genproto/googleapis/ads/googleads/v1/services": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google.golang.org/genproto/googleapis/ads/googleads/v2/common": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google.golang.org/genproto/googleapis/ads/googleads/v2/enums": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google.golang.org/genproto/googleapis/ads/googleads/v2/errors": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google.golang.org/genproto/googleapis/ads/googleads/v2/resources": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google.golang.org/genproto/googleapis/ads/googleads/v2/services": label.New("go_googleapis", "google/ads/googleads/v2/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/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": label.New("go_googleapis", "google/api", "api_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/v1": label.New("go_googleapis", "google/cloud/asset/v1", "asset_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/asset/v1p2beta1": label.New("go_googleapis", "google/cloud/asset/v1p2beta1", "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/v1": label.New("go_googleapis", "google/cloud/automl/v1", "automl_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/bigquery/v2": label.New("go_googleapis", "google/cloud/bigquery/v2", "bigquery_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/binaryauthorization/v1beta1": label.New("go_googleapis", "google/cloud/binaryauthorization/v1beta1", "binaryauthorization_go_proto"), - "google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_go_proto"), - "google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_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/document/v1beta1": label.New("go_googleapis", "google/cloud/document/v1beta1", "document_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/irm/v1alpha2": label.New("go_googleapis", "google/cloud/irm/v1alpha2", "irm_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/phishingprotection/v1beta1": label.New("go_googleapis", "google/cloud/phishingprotection/v1beta1", "phishingprotection_go_proto"), - "google.golang.org/genproto/googleapis/cloud/recaptchaenterprise/v1beta1": label.New("go_googleapis", "google/cloud/recaptchaenterprise/v1beta1", "recaptchaenterprise_go_proto"), - "google.golang.org/genproto/googleapis/cloud/recommender/v1beta1": label.New("go_googleapis", "google/cloud/recommender/v1beta1", "recommender_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/v1": label.New("go_googleapis", "google/cloud/scheduler/v1", "scheduler_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/v1": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_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/talent/v4beta1": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google.golang.org/genproto/googleapis/cloud/tasks/v2": label.New("go_googleapis", "google/cloud/tasks/v2", "tasks_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/translate/v3": label.New("go_googleapis", "google/cloud/translate/v3", "translate_go_proto"), - "google.golang.org/genproto/googleapis/cloud/translate/v3beta1": label.New("go_googleapis", "google/cloud/translate/v3beta1", "translate_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/videointelligence/v1p3beta1": label.New("go_googleapis", "google/cloud/videointelligence/v1p3beta1", "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/vision/v1p4beta1": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_go_proto"), - "google.golang.org/genproto/googleapis/cloud/webrisk/v1beta1": label.New("go_googleapis", "google/cloud/webrisk/v1beta1", "webrisk_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/websecurityscanner/v1beta": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "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/v1": label.New("go_googleapis", "google/devtools/containeranalysis/v1", "containeranalysis_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/firebase/fcm/connection/v1alpha1": label.New("go_googleapis", "google/firebase/fcm/connection/v1alpha1", "connection_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/geo/type/viewport": label.New("go_googleapis", "google/geo/type", "viewport_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/calendarperiod": label.New("go_googleapis", "google/type", "calendarperiod_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/expr": label.New("go_googleapis", "google/type", "expr_go_proto"), - "google.golang.org/genproto/googleapis/type/fraction": label.New("go_googleapis", "google/type", "fraction_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/quaternion": label.New("go_googleapis", "google/type", "quaternion_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"), - "google.golang.org/genproto/googleapis/grafeas/v1": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/known_proto_imports.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/known_proto_imports.go deleted file mode 100644 index ecb17802656..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/known_proto_imports.go +++ /dev/null @@ -1,1614 +0,0 @@ -// 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/v1/common/ad_asset.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/ad_type_infos.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/asset_types.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/bidding.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/click_location.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/criteria.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/criterion_category_availability.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/custom_parameter.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/dates.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/extensions.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/feed_common.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/final_app_url.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/frequency_cap.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/keyword_plan_common.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/matching_function.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/metrics.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/policy.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/real_time_bidding_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/segments.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/simulation.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/tag_snippet.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/targeting_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/text_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/url_collection.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/user_lists.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/common/value.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_go_proto"), - "google/ads/googleads/v1/enums/access_reason.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/account_budget_proposal_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/account_budget_proposal_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/account_budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_customizer_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_group_ad_rotation_mode.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_group_ad_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_group_criterion_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_group_criterion_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_group_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_network_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_serving_optimization_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_strength.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/ad_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/advertising_channel_sub_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/advertising_channel_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/affiliate_location_feed_relationship_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/affiliate_location_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/age_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/app_campaign_app_store.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/app_campaign_bidding_strategy_goal_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/app_payment_model_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/app_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/app_store.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/app_url_operating_system_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/asset_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/attribution_model.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/bid_modifier_source.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/bidding_source.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/bidding_strategy_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/bidding_strategy_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/billing_setup_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/brand_safety_suitability.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/budget_delivery_method.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/budget_period.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/budget_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/call_conversion_reporting_state.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/call_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/callout_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/campaign_criterion_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/campaign_draft_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/campaign_experiment_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/campaign_experiment_traffic_split_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/campaign_experiment_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/campaign_serving_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/campaign_shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/campaign_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/change_status_operation.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/change_status_resource_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/click_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/content_label_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/conversion_action_category.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/conversion_action_counting_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/conversion_action_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/conversion_action_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/conversion_adjustment_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/conversion_attribution_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/conversion_lag_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/conversion_or_adjustment_lag_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/criterion_category_channel_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/criterion_category_locale_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/criterion_system_serving_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/custom_interest_member_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/custom_interest_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/custom_interest_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/custom_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/customer_match_upload_key_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/customer_pay_per_conversion_eligibility_failure_reason.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/data_driven_model_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/day_of_week.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/device.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/display_ad_format_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/display_upload_product_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/dsa_page_feed_criterion_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/education_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/extension_setting_device.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/extension_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/external_conversion_source.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_attribute_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_item_quality_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_item_quality_disapproval_reason.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_item_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_item_target_device.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_item_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_item_validation_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_mapping_criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_mapping_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_origin.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/feed_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/flight_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/frequency_cap_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/frequency_cap_level.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/frequency_cap_time_unit.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/gender_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/geo_target_constant_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/geo_targeting_restriction.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/geo_targeting_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/google_ads_field_category.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/google_ads_field_data_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/hotel_date_selection_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/hotel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/hotel_rate_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/income_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/interaction_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/interaction_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/job_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/keyword_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/keyword_plan_competition_level.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/keyword_plan_forecast_interval.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/keyword_plan_network.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/label_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/legacy_app_install_ad_app_store.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/listing_custom_attribute_index.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/listing_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/local_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/location_extension_targeting_criterion_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/location_group_radius_units.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/location_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/manager_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/matching_function_context_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/matching_function_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/media_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/merchant_center_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/message_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/mime_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/minute_of_hour.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/mobile_device_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/month_of_year.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/mutate_job_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/negative_geo_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/operating_system_version_operator_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/page_one_promoted_strategy_goal.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/parental_status_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/payment_mode.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/placeholder_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/placement_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/policy_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/policy_review_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/policy_topic_entry_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/policy_topic_evidence_destination_mismatch_url_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/policy_topic_evidence_destination_not_working_device.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/positive_geo_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/preferred_content_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/price_extension_price_qualifier.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/price_extension_price_unit.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/price_extension_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/price_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/product_bidding_category_level.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/product_bidding_category_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/product_channel.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/product_channel_exclusivity.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/product_condition.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/product_type_level.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/promotion_extension_discount_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/promotion_extension_occasion.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/promotion_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/proximity_radius_units.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/quality_score_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/real_estate_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/recommendation_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/search_engine_results_page_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/search_term_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/search_term_targeting_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/served_asset_field_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/shared_set_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/simulation_modification_method.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/simulation_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/sitelink_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/slot.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/spending_limit_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/structured_snippet_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/system_managed_entity_source.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/target_cpa_opt_in_recommendation_goal.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/target_impression_share_location.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/targeting_dimension.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/time_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/tracking_code_page_format.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/tracking_code_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/travel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_interest_taxonomy_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_access_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_closing_reason.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_combined_rule_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_crm_data_source_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_date_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_logical_rule_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_membership_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_number_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_prepopulation_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_rule_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_size_range.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_string_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/user_list_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/vanity_pharma_display_url_mode.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/vanity_pharma_text.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/webpage_condition_operand.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/enums/webpage_condition_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_go_proto"), - "google/ads/googleads/v1/errors/account_budget_proposal_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/ad_customizer_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/ad_group_ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/ad_group_bid_modifier_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/ad_group_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/ad_group_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/ad_parameter_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/ad_sharing_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/adx_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/asset_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/authentication_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/authorization_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/bidding_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/bidding_strategy_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/billing_setup_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/campaign_budget_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/campaign_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/campaign_draft_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/campaign_experiment_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/campaign_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/campaign_shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/change_status_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/collection_size_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/context_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/conversion_action_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/conversion_adjustment_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/conversion_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/country_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/custom_interest_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/customer_client_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/customer_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/customer_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/customer_manager_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/database_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/date_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/date_range_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/distinct_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/enum_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/errors.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/extension_feed_item_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/extension_setting_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/feed_attribute_reference_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/feed_item_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/feed_item_target_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/feed_item_validation_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/feed_mapping_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/field_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/field_mask_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/function_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/function_parsing_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/geo_target_constant_suggestion_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/header_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/id_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/image_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/internal_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/keyword_plan_ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/keyword_plan_campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/keyword_plan_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/keyword_plan_idea_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/keyword_plan_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/keyword_plan_negative_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/label_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/language_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/list_operation_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/manager_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/media_bundle_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/media_file_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/media_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/multiplier_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/mutate_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/mutate_job_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/new_resource_creation_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/not_empty_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/not_whitelisted_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/null_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/operation_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/operator_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/partial_failure_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/policy_finding_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/policy_validation_parameter_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/policy_violation_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/query_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/quota_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/range_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/recommendation_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/region_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/request_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/resource_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/resource_count_limit_exceeded_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/setting_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/shared_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/size_limit_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/string_format_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/string_length_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/url_field_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/user_list_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/errors/youtube_video_registration_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_go_proto"), - "google/ads/googleads/v1/resources/account_budget.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/account_budget_proposal.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_ad.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_ad_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_criterion_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_criterion_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_feed.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_group_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_parameter.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/ad_schedule_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/age_range_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/asset.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/bidding_strategy.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/billing_setup.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_budget.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_criterion_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_draft.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_experiment.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_feed.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/campaign_shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/carrier_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/change_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/click_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/conversion_action.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/custom_interest.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/customer.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/customer_client.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/customer_client_link.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/customer_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/customer_feed.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/customer_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/customer_manager_link.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/customer_negative_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/detail_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/display_keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/domain_category.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/dynamic_search_ads_search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/expanded_landing_page_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/extension_feed_item.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/feed.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/feed_item.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/feed_item_target.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/feed_mapping.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/feed_placeholder_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/gender_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/geo_target_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/geographic_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/google_ads_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/group_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/hotel_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/hotel_performance_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/keyword_plan.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/keyword_plan_ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/keyword_plan_campaign.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/keyword_plan_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/keyword_plan_negative_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/landing_page_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/language_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/location_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/managed_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/media_file.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/merchant_center_link.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/mobile_app_category_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/mobile_device_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/mutate_job.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/operating_system_version_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/paid_organic_search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/parental_status_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/payments_account.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/product_bidding_category_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/product_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/recommendation.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/remarketing_action.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/shared_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/shopping_performance_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/topic_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/topic_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/user_interest.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/user_list.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/resources/video.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_go_proto"), - "google/ads/googleads/v1/services/account_budget_proposal_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/account_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_ad_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_ad_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_criterion_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_criterion_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_group_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_parameter_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/ad_schedule_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/age_range_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/asset_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/bidding_strategy_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/billing_setup_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_criterion_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_draft_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_experiment_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/campaign_shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/carrier_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/change_status_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/click_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/conversion_action_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/conversion_adjustment_upload_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/conversion_upload_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/custom_interest_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/customer_client_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/customer_client_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/customer_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/customer_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/customer_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/customer_manager_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/customer_negative_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/customer_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/detail_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/display_keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/domain_category_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/dynamic_search_ads_search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/expanded_landing_page_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/extension_feed_item_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/feed_item_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/feed_item_target_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/feed_mapping_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/feed_placeholder_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/gender_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/geo_target_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/geographic_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/google_ads_field_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/google_ads_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/group_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/hotel_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/hotel_performance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/keyword_plan_ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/keyword_plan_campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/keyword_plan_idea_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/keyword_plan_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/keyword_plan_negative_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/keyword_plan_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/landing_page_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/language_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/location_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/managed_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/media_file_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/merchant_center_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/mobile_app_category_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/mobile_device_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/mutate_job_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/operating_system_version_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/paid_organic_search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/parental_status_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/payments_account_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/product_bidding_category_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/product_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/recommendation_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/remarketing_action_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/shared_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/shopping_performance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/topic_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/topic_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/user_interest_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/user_list_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v1/services/video_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_go_proto"), - "google/ads/googleads/v2/common/ad_asset.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/ad_type_infos.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/asset_types.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/bidding.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/click_location.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/criteria.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/criterion_category_availability.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/custom_parameter.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/dates.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/explorer_auto_optimizer_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/extensions.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/feed_common.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/final_app_url.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/frequency_cap.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/keyword_plan_common.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/matching_function.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/metrics.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/policy.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/real_time_bidding_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/segments.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/simulation.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/tag_snippet.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/targeting_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/text_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/url_collection.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/user_lists.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/common/value.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_go_proto"), - "google/ads/googleads/v2/enums/access_reason.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/access_role.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/account_budget_proposal_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/account_budget_proposal_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/account_budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_customizer_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_group_ad_rotation_mode.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_group_ad_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_group_criterion_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_group_criterion_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_group_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_network_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_serving_optimization_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_strength.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/ad_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/advertising_channel_sub_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/advertising_channel_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/affiliate_location_feed_relationship_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/affiliate_location_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/age_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/app_campaign_app_store.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/app_campaign_bidding_strategy_goal_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/app_payment_model_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/app_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/app_store.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/app_url_operating_system_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/asset_field_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/asset_performance_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/asset_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/attribution_model.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/bid_modifier_source.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/bidding_source.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/bidding_strategy_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/bidding_strategy_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/billing_setup_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/brand_safety_suitability.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/budget_delivery_method.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/budget_period.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/budget_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/call_conversion_reporting_state.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/call_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/callout_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/campaign_criterion_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/campaign_draft_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/campaign_experiment_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/campaign_experiment_traffic_split_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/campaign_experiment_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/campaign_serving_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/campaign_shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/campaign_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/change_status_operation.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/change_status_resource_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/click_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/content_label_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/conversion_action_category.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/conversion_action_counting_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/conversion_action_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/conversion_action_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/conversion_adjustment_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/conversion_attribution_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/conversion_lag_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/conversion_or_adjustment_lag_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/criterion_category_channel_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/criterion_category_locale_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/criterion_system_serving_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/custom_interest_member_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/custom_interest_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/custom_interest_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/custom_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/customer_match_upload_key_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/customer_pay_per_conversion_eligibility_failure_reason.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/data_driven_model_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/day_of_week.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/device.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/display_ad_format_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/display_upload_product_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/distance_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/dsa_page_feed_criterion_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/education_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/extension_setting_device.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/extension_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/external_conversion_source.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_attribute_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_item_quality_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_item_quality_disapproval_reason.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_item_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_item_target_device.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_item_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_item_validation_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_mapping_criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_mapping_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_origin.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/feed_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/flight_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/frequency_cap_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/frequency_cap_level.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/frequency_cap_time_unit.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/gender_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/geo_target_constant_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/geo_targeting_restriction.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/geo_targeting_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/google_ads_field_category.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/google_ads_field_data_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/hotel_date_selection_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/hotel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/hotel_price_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/hotel_rate_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/income_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/interaction_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/interaction_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/invoice_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/job_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/keyword_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/keyword_plan_competition_level.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/keyword_plan_forecast_interval.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/keyword_plan_network.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/label_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/legacy_app_install_ad_app_store.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/listing_custom_attribute_index.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/listing_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/local_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/location_extension_targeting_criterion_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/location_group_radius_units.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/location_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/manager_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/matching_function_context_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/matching_function_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/media_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/merchant_center_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/message_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/mime_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/minute_of_hour.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/mobile_device_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/month_of_year.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/mutate_job_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/negative_geo_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/operating_system_version_operator_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/page_one_promoted_strategy_goal.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/parental_status_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/payment_mode.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/placeholder_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/placement_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/policy_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/policy_review_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/policy_topic_entry_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/policy_topic_evidence_destination_mismatch_url_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/policy_topic_evidence_destination_not_working_device.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/positive_geo_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/preferred_content_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/price_extension_price_qualifier.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/price_extension_price_unit.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/price_extension_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/price_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/product_bidding_category_level.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/product_bidding_category_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/product_channel.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/product_channel_exclusivity.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/product_condition.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/product_type_level.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/promotion_extension_discount_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/promotion_extension_occasion.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/promotion_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/proximity_radius_units.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/quality_score_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/reach_plan_ad_length.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/reach_plan_age_range.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/real_estate_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/recommendation_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/search_engine_results_page_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/search_term_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/search_term_targeting_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/served_asset_field_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/shared_set_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/simulation_modification_method.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/simulation_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/sitelink_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/slot.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/spending_limit_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/structured_snippet_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/system_managed_entity_source.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/target_cpa_opt_in_recommendation_goal.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/target_impression_share_location.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/targeting_dimension.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/time_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/tracking_code_page_format.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/tracking_code_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/travel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_interest_taxonomy_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_access_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_closing_reason.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_combined_rule_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_crm_data_source_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_date_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_logical_rule_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_membership_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_number_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_prepopulation_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_rule_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_size_range.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_string_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/user_list_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/vanity_pharma_display_url_mode.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/vanity_pharma_text.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/webpage_condition_operand.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/enums/webpage_condition_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_go_proto"), - "google/ads/googleads/v2/errors/access_invitation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/account_budget_proposal_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/ad_customizer_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/ad_group_ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/ad_group_bid_modifier_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/ad_group_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/ad_group_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/ad_parameter_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/ad_sharing_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/adx_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/asset_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/authentication_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/authorization_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/bidding_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/bidding_strategy_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/billing_setup_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/campaign_budget_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/campaign_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/campaign_draft_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/campaign_experiment_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/campaign_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/campaign_shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/change_status_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/collection_size_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/context_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/conversion_action_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/conversion_adjustment_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/conversion_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/country_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/currency_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/custom_interest_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/customer_client_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/customer_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/customer_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/customer_manager_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/database_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/date_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/date_range_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/distinct_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/enum_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/errors.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/extension_feed_item_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/extension_setting_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/feed_attribute_reference_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/feed_item_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/feed_item_target_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/feed_item_validation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/feed_mapping_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/field_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/field_mask_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/function_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/function_parsing_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/geo_target_constant_suggestion_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/header_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/id_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/image_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/internal_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/invoice_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/keyword_plan_ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/keyword_plan_campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/keyword_plan_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/keyword_plan_idea_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/keyword_plan_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/keyword_plan_negative_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/label_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/language_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/list_operation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/manager_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/media_bundle_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/media_file_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/media_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/multiplier_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/mutate_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/mutate_job_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/new_resource_creation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/not_empty_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/not_whitelisted_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/null_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/operation_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/operator_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/partial_failure_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/policy_finding_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/policy_validation_parameter_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/policy_violation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/query_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/quota_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/range_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/reach_plan_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/recommendation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/region_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/request_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/resource_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/resource_count_limit_exceeded_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/setting_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/shared_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/size_limit_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/string_format_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/string_length_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/url_field_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/user_list_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/errors/youtube_video_registration_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_go_proto"), - "google/ads/googleads/v2/resources/account_budget.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/account_budget_proposal.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_ad.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_ad_asset_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_ad_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_criterion_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_criterion_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_feed.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_group_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_parameter.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/ad_schedule_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/age_range_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/asset.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/bidding_strategy.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/billing_setup.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_budget.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_criterion_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_draft.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_experiment.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_feed.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/campaign_shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/carrier_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/change_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/click_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/conversion_action.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/custom_interest.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/customer.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/customer_client.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/customer_client_link.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/customer_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/customer_feed.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/customer_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/customer_manager_link.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/customer_negative_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/detail_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/display_keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/distance_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/domain_category.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/dynamic_search_ads_search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/expanded_landing_page_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/extension_feed_item.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/feed.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/feed_item.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/feed_item_target.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/feed_mapping.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/feed_placeholder_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/gender_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/geo_target_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/geographic_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/google_ads_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/group_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/hotel_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/hotel_performance_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/invoice.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/keyword_plan.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/keyword_plan_ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/keyword_plan_campaign.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/keyword_plan_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/keyword_plan_negative_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/landing_page_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/language_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/location_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/managed_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/media_file.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/merchant_center_link.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/mobile_app_category_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/mobile_device_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/mutate_job.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/operating_system_version_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/paid_organic_search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/parental_status_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/payments_account.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/product_bidding_category_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/product_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/recommendation.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/remarketing_action.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/shared_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/shopping_performance_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/topic_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/topic_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/user_interest.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/user_list.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/user_location_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/resources/video.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_go_proto"), - "google/ads/googleads/v2/services/account_budget_proposal_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/account_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_ad_asset_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_ad_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_ad_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_criterion_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_criterion_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_group_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_parameter_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_schedule_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/ad_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/age_range_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/asset_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/bidding_strategy_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/billing_setup_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_criterion_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_draft_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_experiment_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/campaign_shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/carrier_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/change_status_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/click_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/conversion_action_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/conversion_adjustment_upload_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/conversion_upload_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/custom_interest_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/customer_client_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/customer_client_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/customer_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/customer_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/customer_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/customer_manager_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/customer_negative_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/customer_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/detail_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/display_keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/distance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/domain_category_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/dynamic_search_ads_search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/expanded_landing_page_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/extension_feed_item_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/feed_item_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/feed_item_target_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/feed_mapping_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/feed_placeholder_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/gender_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/geo_target_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/geographic_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/google_ads_field_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/google_ads_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/group_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/hotel_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/hotel_performance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/invoice_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/keyword_plan_ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/keyword_plan_campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/keyword_plan_idea_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/keyword_plan_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/keyword_plan_negative_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/keyword_plan_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/landing_page_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/language_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/location_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/managed_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/media_file_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/merchant_center_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/mobile_app_category_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/mobile_device_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/mutate_job_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/operating_system_version_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/paid_organic_search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/parental_status_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/payments_account_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/product_bidding_category_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/product_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/reach_plan_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/recommendation_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/remarketing_action_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/shared_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/shopping_performance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/topic_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/topic_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/user_interest_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/user_list_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/user_location_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_go_proto"), - "google/ads/googleads/v2/services/video_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/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/client.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/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/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/field_behavior.proto": label.New("go_googleapis", "google/api", "annotations_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/resource.proto": label.New("go_googleapis", "google/api", "annotations_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/v1/asset_service.proto": label.New("go_googleapis", "google/cloud/asset/v1", "asset_go_proto"), - "google/cloud/asset/v1/assets.proto": label.New("go_googleapis", "google/cloud/asset/v1", "asset_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/asset/v1p2beta1/asset_service.proto": label.New("go_googleapis", "google/cloud/asset/v1p2beta1", "asset_go_proto"), - "google/cloud/asset/v1p2beta1/assets.proto": label.New("go_googleapis", "google/cloud/asset/v1p2beta1", "asset_go_proto"), - "google/cloud/audit/audit_log.proto": label.New("go_googleapis", "google/cloud/audit", "audit_go_proto"), - "google/cloud/automl/v1/annotation_payload.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_go_proto"), - "google/cloud/automl/v1/data_items.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_go_proto"), - "google/cloud/automl/v1/dataset.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_go_proto"), - "google/cloud/automl/v1/io.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_go_proto"), - "google/cloud/automl/v1/model.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_go_proto"), - "google/cloud/automl/v1/model_evaluation.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_go_proto"), - "google/cloud/automl/v1/operations.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_go_proto"), - "google/cloud/automl/v1/prediction_service.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_go_proto"), - "google/cloud/automl/v1/service.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_go_proto"), - "google/cloud/automl/v1/translation.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_go_proto"), - "google/cloud/automl/v1beta1/annotation_payload.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"), - "google/cloud/automl/v1beta1/annotation_spec.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/column_spec.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/data_stats.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"), - "google/cloud/automl/v1beta1/data_types.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/detection.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"), - "google/cloud/automl/v1beta1/geometry.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/ranges.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"), - "google/cloud/automl/v1beta1/regression.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/table_spec.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"), - "google/cloud/automl/v1beta1/tables.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"), - "google/cloud/automl/v1beta1/temporal.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/text_extraction.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"), - "google/cloud/automl/v1beta1/text_segment.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"), - "google/cloud/automl/v1beta1/text_sentiment.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/automl/v1beta1/video.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_go_proto"), - "google/cloud/bigquery/datatransfer/v1/datasource.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/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/arrow.proto": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_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/bigquery/v2/encryption_config.proto": label.New("go_googleapis", "google/cloud/bigquery/v2", "bigquery_go_proto"), - "google/cloud/bigquery/v2/model.proto": label.New("go_googleapis", "google/cloud/bigquery/v2", "bigquery_go_proto"), - "google/cloud/bigquery/v2/model_reference.proto": label.New("go_googleapis", "google/cloud/bigquery/v2", "bigquery_go_proto"), - "google/cloud/bigquery/v2/standard_sql.proto": label.New("go_googleapis", "google/cloud/bigquery/v2", "bigquery_go_proto"), - "google/cloud/billing/v1/cloud_billing.proto": label.New("go_googleapis", "google/cloud/billing/v1", "billing_go_proto"), - "google/cloud/binaryauthorization/v1beta1/resources.proto": label.New("go_googleapis", "google/cloud/binaryauthorization/v1beta1", "binaryauthorization_go_proto"), - "google/cloud/binaryauthorization/v1beta1/service.proto": label.New("go_googleapis", "google/cloud/binaryauthorization/v1beta1", "binaryauthorization_go_proto"), - "google/cloud/datacatalog/v1beta1/datacatalog.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_go_proto"), - "google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_go_proto"), - "google/cloud/datacatalog/v1beta1/schema.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_go_proto"), - "google/cloud/datacatalog/v1beta1/search.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_go_proto"), - "google/cloud/datacatalog/v1beta1/table_spec.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_go_proto"), - "google/cloud/datacatalog/v1beta1/tags.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_go_proto"), - "google/cloud/datacatalog/v1beta1/timestamps.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_go_proto"), - "google/cloud/datalabeling/v1beta1/annotation.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_go_proto"), - "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_go_proto"), - "google/cloud/datalabeling/v1beta1/data_labeling_service.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_go_proto"), - "google/cloud/datalabeling/v1beta1/data_payloads.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_go_proto"), - "google/cloud/datalabeling/v1beta1/dataset.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_go_proto"), - "google/cloud/datalabeling/v1beta1/evaluation.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_go_proto"), - "google/cloud/datalabeling/v1beta1/evaluation_job.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_go_proto"), - "google/cloud/datalabeling/v1beta1/human_annotation_config.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_go_proto"), - "google/cloud/datalabeling/v1beta1/instruction.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_go_proto"), - "google/cloud/datalabeling/v1beta1/operations.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_go_proto"), - "google/cloud/dataproc/v1/autoscaling_policies.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/v1/operations.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_go_proto"), - "google/cloud/dataproc/v1/shared.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/autoscaling_policies.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/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/audio_config.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/gcs.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/validation_result.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/document/v1beta1/document.proto": label.New("go_googleapis", "google/cloud/document/v1beta1", "document_go_proto"), - "google/cloud/document/v1beta1/document_understanding.proto": label.New("go_googleapis", "google/cloud/document/v1beta1", "document_go_proto"), - "google/cloud/document/v1beta1/geometry.proto": label.New("go_googleapis", "google/cloud/document/v1beta1", "document_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/irm/v1alpha2/incidents.proto": label.New("go_googleapis", "google/cloud/irm/v1alpha2", "irm_go_proto"), - "google/cloud/irm/v1alpha2/incidents_service.proto": label.New("go_googleapis", "google/cloud/irm/v1alpha2", "irm_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/phishingprotection/v1beta1/phishingprotection.proto": label.New("go_googleapis", "google/cloud/phishingprotection/v1beta1", "phishingprotection_go_proto"), - "google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto": label.New("go_googleapis", "google/cloud/recaptchaenterprise/v1beta1", "recaptchaenterprise_go_proto"), - "google/cloud/recommender/v1beta1/recommendation.proto": label.New("go_googleapis", "google/cloud/recommender/v1beta1", "recommender_go_proto"), - "google/cloud/recommender/v1beta1/recommender_service.proto": label.New("go_googleapis", "google/cloud/recommender/v1beta1", "recommender_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/v1/cloudscheduler.proto": label.New("go_googleapis", "google/cloud/scheduler/v1", "scheduler_go_proto"), - "google/cloud/scheduler/v1/job.proto": label.New("go_googleapis", "google/cloud/scheduler/v1", "scheduler_go_proto"), - "google/cloud/scheduler/v1/target.proto": label.New("go_googleapis", "google/cloud/scheduler/v1", "scheduler_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/v1/asset.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_go_proto"), - "google/cloud/securitycenter/v1/finding.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_go_proto"), - "google/cloud/securitycenter/v1/organization_settings.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_go_proto"), - "google/cloud/securitycenter/v1/run_asset_discovery_response.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_go_proto"), - "google/cloud/securitycenter/v1/security_marks.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_go_proto"), - "google/cloud/securitycenter/v1/securitycenter_service.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_go_proto"), - "google/cloud/securitycenter/v1/source.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_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/talent/v4beta1/application.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/application_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/batch.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/common.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/company.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/company_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/completion_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/event.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/event_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/filters.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/histogram.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/job.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/job_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/profile.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/profile_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/tenant.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/talent/v4beta1/tenant_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_go_proto"), - "google/cloud/tasks/v2/cloudtasks.proto": label.New("go_googleapis", "google/cloud/tasks/v2", "tasks_go_proto"), - "google/cloud/tasks/v2/queue.proto": label.New("go_googleapis", "google/cloud/tasks/v2", "tasks_go_proto"), - "google/cloud/tasks/v2/target.proto": label.New("go_googleapis", "google/cloud/tasks/v2", "tasks_go_proto"), - "google/cloud/tasks/v2/task.proto": label.New("go_googleapis", "google/cloud/tasks/v2", "tasks_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/translate/v3/translation_service.proto": label.New("go_googleapis", "google/cloud/translate/v3", "translate_go_proto"), - "google/cloud/translate/v3beta1/translation_service.proto": label.New("go_googleapis", "google/cloud/translate/v3beta1", "translate_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/videointelligence/v1p3beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1p3beta1", "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/vision/v1p4beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_go_proto"), - "google/cloud/vision/v1p4beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_go_proto"), - "google/cloud/vision/v1p4beta1/product_search.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_go_proto"), - "google/cloud/vision/v1p4beta1/product_search_service.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_go_proto"), - "google/cloud/vision/v1p4beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_go_proto"), - "google/cloud/vision/v1p4beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_go_proto"), - "google/cloud/webrisk/v1beta1/webrisk.proto": label.New("go_googleapis", "google/cloud/webrisk/v1beta1", "webrisk_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/cloud/websecurityscanner/v1beta/crawled_url.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_go_proto"), - "google/cloud/websecurityscanner/v1beta/finding.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_go_proto"), - "google/cloud/websecurityscanner/v1beta/finding_addon.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_go_proto"), - "google/cloud/websecurityscanner/v1beta/finding_type_stats.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_go_proto"), - "google/cloud/websecurityscanner/v1beta/scan_config.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_go_proto"), - "google/cloud/websecurityscanner/v1beta/scan_config_error.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_go_proto"), - "google/cloud/websecurityscanner/v1beta/scan_run.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_go_proto"), - "google/cloud/websecurityscanner/v1beta/scan_run_error_trace.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_go_proto"), - "google/cloud/websecurityscanner/v1beta/scan_run_warning_trace.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_go_proto"), - "google/cloud/websecurityscanner/v1beta/web_security_scanner.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "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/v1/containeranalysis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1", "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/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/download_metadata.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_processing_error.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/resultstore/v2/upload_metadata.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/firebase/fcm/connection/v1alpha1/connection_api.proto": label.New("go_googleapis", "google/firebase/fcm/connection/v1alpha1", "connection_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/geo/type/viewport.proto": label.New("go_googleapis", "google/geo/type", "viewport_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/options.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/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/calendar_period.proto": label.New("go_googleapis", "google/type", "calendarperiod_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/expr.proto": label.New("go_googleapis", "google/type", "expr_go_proto"), - "google/type/fraction.proto": label.New("go_googleapis", "google/type", "fraction_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/quaternion.proto": label.New("go_googleapis", "google/type", "quaternion_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"), - "grafeas/v1/attestation.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), - "grafeas/v1/build.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), - "grafeas/v1/common.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), - "grafeas/v1/cvss.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), - "grafeas/v1/deployment.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), - "grafeas/v1/discovery.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), - "grafeas/v1/grafeas.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), - "grafeas/v1/image.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), - "grafeas/v1/package.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), - "grafeas/v1/provenance.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), - "grafeas/v1/vulnerability.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_go_proto"), -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/lang.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/lang.go deleted file mode 100644 index 27d50cae294..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/lang.go +++ /dev/null @@ -1,70 +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 golang provides support for Go and Go proto rules. It generates -// go_library, go_binary, go_test, and go_proto_library rules. -// -// Configuration -// -// Go rules support the flags -build_tags, -go_prefix, and -external. -// They also support the directives # gazelle:build_tags, # gazelle:prefix, -// and # gazelle:importmap_prefix. See -// https://github.com/bazelbuild/bazel-gazelle/blob/master/README.rst#directives -// for information on these. -// -// Rule generation -// -// Currently, Gazelle generates rules for one Go package per directory. In -// general, we aim to support Go code which is compatible with "go build". If -// there are no buildable packages, Gazelle will delete existing rules with -// default names. If there are multiple packages, Gazelle will pick one that -// matches the directory name or will print an error if no such package is -// found. -// -// Gazelle names library and test rules somewhat oddly: go_default_library, and -// go_default_test. This is for historic reasons: before the importpath -// attribute was mandatory, import paths were inferred from label names. Even if -// we never support multiple packages in the future (we should), we should -// migrate away from this because it's surprising. Libraries should generally -// be named after their directories. -// -// Dependency resolution -// -// Go libraries are indexed by their importpath attribute. Gazelle attempts to -// resolve libraries by import path using the index, filtered using the -// vendoring algorithm. If an import doesn't match any known library, Gazelle -// guesses a name for it, locally (if the import path is under the current -// prefix), or in an external repository or vendor directory (depending -// on external mode). -// -// 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/language" - -const goName = "go" - -type goLang struct { - // goPkgDirs is a set of relative paths to directories containing buildable - // Go code, including in subdirectories. - goPkgRels map[string]bool -} - -func (_ *goLang) Name() string { return goName } - -func NewLanguage() language.Language { - return &goLang{goPkgRels: make(map[string]bool)} -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/modules.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/modules.go deleted file mode 100644 index c195b0eecd8..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/modules.go +++ /dev/null @@ -1,214 +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 golang - -import ( - "bytes" - "encoding/json" - "go/build" - "io" - "io/ioutil" - "log" - "os" - "os/exec" - "path/filepath" - "runtime" - "sort" - "strings" - - "github.com/bazelbuild/bazel-gazelle/label" - "github.com/bazelbuild/bazel-gazelle/language" - "github.com/bazelbuild/bazel-gazelle/rule" -) - -func importReposFromModules(args language.ImportReposArgs) language.ImportReposResult { - // Copy go.mod to temporary directory. We may run commands that modify it, - // and we want to leave the original alone. - tempDir, err := copyGoModToTemp(args.Path) - if err != nil { - return language.ImportReposResult{Error: err} - } - defer os.RemoveAll(tempDir) - - // List all modules except for the main module, including implicit indirect - // dependencies. - type module struct { - Path, Version, Sum string - Main bool - Replace *struct { - Path, Version string - } - } - // path@version can be used as a unique identifier for looking up sums - pathToModule := map[string]*module{} - data, err := goListModules(tempDir) - if err != nil { - return language.ImportReposResult{Error: err} - } - dec := json.NewDecoder(bytes.NewReader(data)) - for dec.More() { - mod := new(module) - if err := dec.Decode(mod); err != nil { - return language.ImportReposResult{Error: err} - } - if mod.Main { - continue - } - if mod.Replace != nil { - if filepath.IsAbs(mod.Replace.Path) || build.IsLocalImport(mod.Replace.Path) { - log.Printf("go_repository does not support file path replacements for %s -> %s", mod.Path, - mod.Replace.Path) - continue - } - pathToModule[mod.Replace.Path+"@"+mod.Replace.Version] = mod - } else { - pathToModule[mod.Path+"@"+mod.Version] = mod - } - } - // Load sums from go.sum. Ideally, they're all there. - goSumPath := filepath.Join(filepath.Dir(args.Path), "go.sum") - data, _ = ioutil.ReadFile(goSumPath) - lines := bytes.Split(data, []byte("\n")) - for _, line := range lines { - line = bytes.TrimSpace(line) - fields := bytes.Fields(line) - if len(fields) != 3 { - continue - } - path, version, sum := string(fields[0]), string(fields[1]), string(fields[2]) - if strings.HasSuffix(version, "/go.mod") { - continue - } - if mod, ok := pathToModule[path+"@"+version]; ok { - mod.Sum = sum - } - } - // If sums are missing, run go mod download to get them. - var missingSumArgs []string - for pathVer, mod := range pathToModule { - if mod.Sum == "" { - missingSumArgs = append(missingSumArgs, pathVer) - } - } - if len(missingSumArgs) > 0 { - data, err := goModDownload(tempDir, missingSumArgs) - if err != nil { - return language.ImportReposResult{Error: err} - } - dec = json.NewDecoder(bytes.NewReader(data)) - for dec.More() { - var dl module - if err := dec.Decode(&dl); err != nil { - return language.ImportReposResult{Error: err} - } - if mod, ok := pathToModule[dl.Path+"@"+dl.Version]; ok { - mod.Sum = dl.Sum - } - } - } - - // Translate to repository rules. - gen := make([]*rule.Rule, 0, len(pathToModule)) - for pathVer, mod := range pathToModule { - if mod.Sum == "" { - log.Printf("could not determine sum for module %s", pathVer) - continue - } - r := rule.NewRule("go_repository", label.ImportPathToBazelRepoName(mod.Path)) - r.SetAttr("importpath", mod.Path) - r.SetAttr("sum", mod.Sum) - if mod.Replace == nil { - r.SetAttr("version", mod.Version) - } else { - r.SetAttr("replace", mod.Replace.Path) - r.SetAttr("version", mod.Replace.Version) - } - gen = append(gen, r) - } - sort.Slice(gen, func(i, j int) bool { - return gen[i].Name() < gen[j].Name() - }) - return language.ImportReposResult{Gen: gen} -} - -// goListModules invokes "go list" in a directory containing a go.mod file. -var goListModules = func(dir string) ([]byte, error) { - goTool := findGoTool() - cmd := exec.Command(goTool, "list", "-m", "-json", "all") - cmd.Stderr = os.Stderr - cmd.Dir = dir - return cmd.Output() -} - -// goModDownload invokes "go mod download" in a directory containing a -// go.mod file. -var goModDownload = func(dir string, args []string) ([]byte, error) { - goTool := findGoTool() - cmd := exec.Command(goTool, "mod", "download", "-json") - cmd.Args = append(cmd.Args, args...) - cmd.Stderr = os.Stderr - cmd.Dir = dir - return cmd.Output() -} - -// 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 -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/package.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/package.go deleted file mode 100644 index 4de0c2fdb63..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/package.go +++ /dev/null @@ -1,507 +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 golang - -import ( - "fmt" - "log" - "path" - "regexp" - "sort" - "strings" - - "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 -// used to generate Go rules. -type goPackage struct { - name, dir, rel string - library, binary, test goTarget - proto protoTarget - hasTestdata bool - importPath string -} - -// goTarget contains information used to generate an individual Go rule -// (library, binary, or test). -type goTarget struct { - sources, imports, copts, clinkopts platformStringsBuilder - cgo bool -} - -// protoTarget contains information used to generate a go_proto_library rule. -type protoTarget struct { - name string - sources platformStringsBuilder - imports platformStringsBuilder - hasServices bool -} - -// platformStringsBuilder is used to construct rule.PlatformStrings. Bazel -// has some requirements for deps list (a dependency cannot appear in more -// than one select expression; dependencies cannot be duplicated), so we need -// to build these carefully. -type platformStringsBuilder struct { - strs map[string]platformStringInfo -} - -// platformStringInfo contains information about a single string (source, -// import, or option). -type platformStringInfo struct { - set platformStringSet - oss map[string]bool - archs map[string]bool - platforms map[rule.Platform]bool -} - -type platformStringSet int - -const ( - genericSet platformStringSet = iota - osSet - archSet - platformSet -) - -// addFile adds the file described by "info" to a target in the package "p" if -// the file is buildable. -// -// "cgo" tells whether any ".go" file in the package contains cgo code. This -// affects whether C files are added to targets. -// -// An error is returned if a file is buildable but invalid (for example, a -// test .go file containing cgo code). Files that are not buildable will not -// be added to any target (for example, .txt files). -func (pkg *goPackage) addFile(c *config.Config, info fileInfo, cgo bool) error { - switch { - case info.ext == unknownExt || !cgo && (info.ext == cExt || info.ext == csExt): - return nil - case info.ext == protoExt: - 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. - pkg.proto.addFile(c, info) - } - case info.isTest: - if info.isCgo { - return fmt.Errorf("%s: use of cgo in test not supported", info.path) - } - pkg.test.addFile(c, info) - default: - pkg.library.addFile(c, info) - } - - return nil -} - -// isCommand returns true if the package name is "main". -func (pkg *goPackage) isCommand() bool { - return pkg.name == "main" -} - -// isBuildable returns true if anything in the package is buildable. -// This is true if the package has Go code that satisfies build constraints -// on any platform or has proto files not in legacy mode. -func (pkg *goPackage) isBuildable(c *config.Config) bool { - return pkg.firstGoFile() != "" || !pkg.proto.sources.isEmpty() -} - -// firstGoFile returns the name of a .go file if the package contains at least -// one .go file, or "" otherwise. -func (pkg *goPackage) firstGoFile() string { - goSrcs := []platformStringsBuilder{ - pkg.library.sources, - pkg.binary.sources, - pkg.test.sources, - } - for _, sb := range goSrcs { - if sb.strs != nil { - for s := range sb.strs { - if strings.HasSuffix(s, ".go") { - return s - } - } - } - } - return "" -} - -func (pkg *goPackage) haveCgo() bool { - return pkg.library.cgo || pkg.binary.cgo || pkg.test.cgo -} - -func (pkg *goPackage) inferImportPath(c *config.Config) error { - if pkg.importPath != "" { - log.Panic("importPath already set") - } - gc := getGoConfig(c) - if !gc.prefixSet { - return fmt.Errorf("%s: go prefix is not set, so importpath can't be determined for rules. Set a prefix with a '# gazelle:prefix' comment or with -go_prefix on the command line", pkg.dir) - } - pkg.importPath = inferImportPath(gc, pkg.rel) - - if pkg.rel == gc.prefixRel { - pkg.importPath = gc.prefix - } else { - fromPrefixRel := strings.TrimPrefix(pkg.rel, gc.prefixRel+"/") - pkg.importPath = path.Join(gc.prefix, fromPrefixRel) - } - return nil -} - -func inferImportPath(gc *goConfig, rel string) string { - if rel == gc.prefixRel { - return gc.prefix - } else { - fromPrefixRel := strings.TrimPrefix(rel, gc.prefixRel+"/") - return path.Join(gc.prefix, fromPrefixRel) - } -} - -func goProtoPackageName(pkg proto.Package) string { - if value, ok := pkg.Options["go_package"]; ok { - if strings.LastIndexByte(value, '/') == -1 { - return value - } else { - if i := strings.LastIndexByte(value, ';'); i != -1 { - return value[i+1:] - } else { - return path.Base(value) - } - } - } - return strings.Replace(pkg.Name, ".", "_", -1) -} - -func goProtoImportPath(gc *goConfig, pkg proto.Package, rel string) string { - if value, ok := pkg.Options["go_package"]; ok { - if strings.LastIndexByte(value, '/') == -1 { - return inferImportPath(gc, rel) - } else if i := strings.LastIndexByte(value, ';'); i != -1 { - return value[:i] - } else { - return value - } - } - return inferImportPath(gc, rel) -} - -func (t *goTarget) addFile(c *config.Config, info fileInfo) { - t.cgo = t.cgo || info.isCgo - add := getPlatformStringsAddFunction(c, info, nil) - add(&t.sources, info.name) - add(&t.imports, info.imports...) - for _, copts := range info.copts { - optAdd := add - if len(copts.tags) > 0 { - optAdd = getPlatformStringsAddFunction(c, info, copts.tags) - } - optAdd(&t.copts, copts.opts) - } - for _, clinkopts := range info.clinkopts { - optAdd := add - if len(clinkopts.tags) > 0 { - optAdd = getPlatformStringsAddFunction(c, info, clinkopts.tags) - } - optAdd(&t.clinkopts, clinkopts.opts) - } -} - -func protoTargetFromProtoPackage(name string, pkg proto.Package) protoTarget { - target := protoTarget{name: name} - for f := range pkg.Files { - target.sources.addGenericString(f) - } - for i := range pkg.Imports { - target.imports.addGenericString(i) - } - target.hasServices = pkg.HasServices - return target -} - -func (t *protoTarget) addFile(c *config.Config, info fileInfo) { - t.sources.addGenericString(info.name) - for _, imp := range info.imports { - t.imports.addGenericString(imp) - } - t.hasServices = t.hasServices || info.hasServices -} - -// getPlatformStringsAddFunction returns a function used to add strings to -// a *platformStringsBuilder under the same set of constraints. This is a -// performance optimization to avoid evaluating constraints repeatedly. -func getPlatformStringsAddFunction(c *config.Config, info fileInfo, cgoTags tagLine) func(sb *platformStringsBuilder, ss ...string) { - isOSSpecific, isArchSpecific := isOSArchSpecific(info, cgoTags) - - switch { - case !isOSSpecific && !isArchSpecific: - if checkConstraints(c, "", "", info.goos, info.goarch, info.tags, cgoTags) { - return func(sb *platformStringsBuilder, ss ...string) { - for _, s := range ss { - sb.addGenericString(s) - } - } - } - - case isOSSpecific && !isArchSpecific: - var osMatch []string - for _, os := range rule.KnownOSs { - if checkConstraints(c, os, "", info.goos, info.goarch, info.tags, cgoTags) { - osMatch = append(osMatch, os) - } - } - if len(osMatch) > 0 { - return func(sb *platformStringsBuilder, ss ...string) { - for _, s := range ss { - sb.addOSString(s, osMatch) - } - } - } - - case !isOSSpecific && isArchSpecific: - var archMatch []string - for _, arch := range rule.KnownArchs { - if checkConstraints(c, "", arch, info.goos, info.goarch, info.tags, cgoTags) { - archMatch = append(archMatch, arch) - } - } - if len(archMatch) > 0 { - return func(sb *platformStringsBuilder, ss ...string) { - for _, s := range ss { - sb.addArchString(s, archMatch) - } - } - } - - default: - var platformMatch []rule.Platform - for _, platform := range rule.KnownPlatforms { - if checkConstraints(c, platform.OS, platform.Arch, info.goos, info.goarch, info.tags, cgoTags) { - platformMatch = append(platformMatch, platform) - } - } - if len(platformMatch) > 0 { - return func(sb *platformStringsBuilder, ss ...string) { - for _, s := range ss { - sb.addPlatformString(s, platformMatch) - } - } - } - } - - return func(_ *platformStringsBuilder, _ ...string) {} -} - -func (sb *platformStringsBuilder) isEmpty() bool { - return sb.strs == nil -} - -func (sb *platformStringsBuilder) hasGo() bool { - for s := range sb.strs { - if strings.HasSuffix(s, ".go") { - return true - } - } - return false -} - -func (sb *platformStringsBuilder) addGenericString(s string) { - if sb.strs == nil { - sb.strs = make(map[string]platformStringInfo) - } - sb.strs[s] = platformStringInfo{set: genericSet} -} - -func (sb *platformStringsBuilder) addOSString(s string, oss []string) { - if sb.strs == nil { - sb.strs = make(map[string]platformStringInfo) - } - si, ok := sb.strs[s] - if !ok { - si.set = osSet - si.oss = make(map[string]bool) - } - switch si.set { - case genericSet: - return - case osSet: - for _, os := range oss { - si.oss[os] = true - } - default: - si.convertToPlatforms() - for _, os := range oss { - for _, arch := range rule.KnownOSArchs[os] { - si.platforms[rule.Platform{OS: os, Arch: arch}] = true - } - } - } - sb.strs[s] = si -} - -func (sb *platformStringsBuilder) addArchString(s string, archs []string) { - if sb.strs == nil { - sb.strs = make(map[string]platformStringInfo) - } - si, ok := sb.strs[s] - if !ok { - si.set = archSet - si.archs = make(map[string]bool) - } - switch si.set { - case genericSet: - return - case archSet: - for _, arch := range archs { - si.archs[arch] = true - } - default: - si.convertToPlatforms() - for _, arch := range archs { - for _, os := range rule.KnownArchOSs[arch] { - si.platforms[rule.Platform{OS: os, Arch: arch}] = true - } - } - } - sb.strs[s] = si -} - -func (sb *platformStringsBuilder) addPlatformString(s string, platforms []rule.Platform) { - if sb.strs == nil { - sb.strs = make(map[string]platformStringInfo) - } - si, ok := sb.strs[s] - if !ok { - si.set = platformSet - si.platforms = make(map[rule.Platform]bool) - } - switch si.set { - case genericSet: - return - default: - si.convertToPlatforms() - for _, p := range platforms { - si.platforms[p] = true - } - } - sb.strs[s] = si -} - -func (sb *platformStringsBuilder) build() rule.PlatformStrings { - var ps rule.PlatformStrings - for s, si := range sb.strs { - switch si.set { - case genericSet: - ps.Generic = append(ps.Generic, s) - case osSet: - if ps.OS == nil { - ps.OS = make(map[string][]string) - } - for os := range si.oss { - ps.OS[os] = append(ps.OS[os], s) - } - case archSet: - if ps.Arch == nil { - ps.Arch = make(map[string][]string) - } - for arch := range si.archs { - ps.Arch[arch] = append(ps.Arch[arch], s) - } - case platformSet: - if ps.Platform == nil { - ps.Platform = make(map[rule.Platform][]string) - } - for p := range si.platforms { - ps.Platform[p] = append(ps.Platform[p], s) - } - } - } - sort.Strings(ps.Generic) - if ps.OS != nil { - for _, ss := range ps.OS { - sort.Strings(ss) - } - } - if ps.Arch != nil { - for _, ss := range ps.Arch { - sort.Strings(ss) - } - } - if ps.Platform != nil { - for _, ss := range ps.Platform { - sort.Strings(ss) - } - } - return ps -} - -func (sb *platformStringsBuilder) buildFlat() []string { - strs := make([]string, 0, len(sb.strs)) - for s := range sb.strs { - strs = append(strs, s) - } - sort.Strings(strs) - return strs -} - -func (si *platformStringInfo) convertToPlatforms() { - switch si.set { - case genericSet: - log.Panic("cannot convert generic string to platforms") - case platformSet: - return - case osSet: - si.set = platformSet - si.platforms = make(map[rule.Platform]bool) - for os := range si.oss { - for _, arch := range rule.KnownOSArchs[os] { - si.platforms[rule.Platform{OS: os, Arch: arch}] = true - } - } - si.oss = nil - case archSet: - si.set = platformSet - si.platforms = make(map[rule.Platform]bool) - for arch := range si.archs { - for _, os := range rule.KnownArchOSs[arch] { - si.platforms[rule.Platform{OS: os, Arch: arch}] = true - } - } - si.archs = nil - } -} - -var semverRex = regexp.MustCompile(`^.*?(/v\d+)(?:/.*)?$`) - -// pathWithoutSemver removes a semantic version suffix from path. -// For example, if path is "example.com/foo/v2/bar", pathWithoutSemver -// will return "example.com/foo/bar". If there is no semantic version suffix, -// "" will be returned. -func pathWithoutSemver(path string) string { - m := semverRex.FindStringSubmatchIndex(path) - if m == nil { - return "" - } - v := path[m[2]+2 : m[3]] - if v[0] == '0' || v == "1" { - return "" - } - return path[:m[2]] + path[m[3]:] -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/resolve.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/resolve.go deleted file mode 100644 index e4e5f486c03..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/resolve.go +++ /dev/null @@ -1,373 +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 golang - -import ( - "errors" - "fmt" - "go/build" - "log" - "path" - "regexp" - "strings" - - "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 { - if !isGoLibrary(r.Kind()) { - return nil - } - if importPath := r.AttrString("importpath"); importPath == "" { - return []resolve.ImportSpec{} - } else { - return []resolve.ImportSpec{{goName, importPath}} - } -} - -func (_ *goLang) Embeds(r *rule.Rule, from label.Label) []label.Label { - embedStrings := r.AttrStrings("embed") - if isGoProtoLibrary(r.Kind()) { - embedStrings = append(embedStrings, r.AttrString("proto")) - } - embedLabels := make([]label.Label, 0, len(embedStrings)) - for _, s := range embedStrings { - l, err := label.Parse(s) - if err != nil { - continue - } - l = l.Abs(from.Repo, from.Pkg) - embedLabels = append(embedLabels, l) - } - return embedLabels -} - -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 - } - imports := importsRaw.(rule.PlatformStrings) - r.DelAttr("deps") - resolve := ResolveGo - if r.Kind() == "go_proto_library" { - resolve = resolveProto - } - deps, errs := imports.Map(func(imp string) (string, error) { - l, err := resolve(c, ix, rc, imp, from) - if err == skipImportError { - return "", nil - } else if err != nil { - return "", err - } - for _, embed := range gl.Embeds(r, from) { - if embed.Equal(l) { - return "", nil - } - } - l = l.Rel(from.Repo, from.Pkg) - return l.String(), nil - }) - for _, err := range errs { - log.Print(err) - } - if !deps.IsEmpty() { - 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) - } - } -} - -var ( - skipImportError = errors.New("std or self import") - notFoundError = errors.New("rule not found") -) - -// ResolveGo resolves a Go import path to a Bazel label, possibly using the -// given rule index and remote cache. Some special cases may be applied to -// known proto import paths, depending on the current proto mode. -// -// This may be used directly by other language extensions related to Go -// (gomock). Gazelle calls Language.Resolve instead. -func ResolveGo(c *config.Config, ix *resolve.RuleIndex, rc *repo.RemoteCache, imp string, from label.Label) (label.Label, error) { - gc := getGoConfig(c) - pcMode := getProtoMode(c) - if build.IsLocalImport(imp) { - cleanRel := path.Clean(path.Join(from.Pkg, imp)) - if build.IsLocalImport(cleanRel) { - return label.NoLabel, fmt.Errorf("relative import path %q from %q points outside of repository", imp, from.Pkg) - } - imp = path.Join(gc.prefix, cleanRel) - } - - if IsStandard(imp) { - return label.NoLabel, skipImportError - } - - 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 - // its rules in disable_global mode (to avoid cyclic dependency), so the - // "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 - } - } - - if l, err := resolveWithIndexGo(ix, imp, from); err == nil || err == skipImportError { - return l, err - } else if err != notFoundError { - return label.NoLabel, err - } - - // 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 { - return resolveExternal(gc.moduleMode, rc, imp) - } else { - return resolveVendored(rc, imp) - } -} - -// IsStandard returns whether a package is in the standard library. -func IsStandard(imp string) bool { - return stdPackages[imp] -} - -func resolveWithIndexGo(ix *resolve.RuleIndex, imp string, from label.Label) (label.Label, error) { - matches := ix.FindRulesByImport(resolve.ImportSpec{Lang: "go", Imp: imp}, "go") - var bestMatch resolve.FindResult - var bestMatchIsVendored bool - var bestMatchVendorRoot string - var matchError error - - for _, m := range matches { - // Apply vendoring logic for Go libraries. A library in a vendor directory - // is only visible in the parent tree. Vendored libraries supercede - // non-vendored libraries, and libraries closer to from.Pkg supercede - // those further up the tree. - isVendored := false - vendorRoot := "" - parts := strings.Split(m.Label.Pkg, "/") - for i := len(parts) - 1; i >= 0; i-- { - if parts[i] == "vendor" { - isVendored = true - vendorRoot = strings.Join(parts[:i], "/") - break - } - } - if isVendored { - } - if isVendored && !label.New(m.Label.Repo, vendorRoot, "").Contains(from) { - // vendor directory not visible - continue - } - if bestMatch.Label.Equal(label.NoLabel) || isVendored && (!bestMatchIsVendored || len(vendorRoot) > len(bestMatchVendorRoot)) { - // Current match is better - bestMatch = m - bestMatchIsVendored = isVendored - bestMatchVendorRoot = vendorRoot - matchError = nil - } else if (!isVendored && bestMatchIsVendored) || (isVendored && len(vendorRoot) < len(bestMatchVendorRoot)) { - // Current match is worse - } else { - // Match is ambiguous - // TODO: consider listing all the ambiguous rules here. - matchError = fmt.Errorf("rule %s imports %q which matches multiple rules: %s and %s. # gazelle:resolve may be used to disambiguate", from, imp, bestMatch.Label, m.Label) - } - } - if matchError != nil { - return label.NoLabel, matchError - } - if bestMatch.Label.Equal(label.NoLabel) { - return label.NoLabel, notFoundError - } - if bestMatch.IsSelfImport(from) { - return label.NoLabel, skipImportError - } - return bestMatch.Label, nil -} - -var modMajorRex = regexp.MustCompile(`/v\d+(?:/|$)`) - -func resolveExternal(moduleMode bool, rc *repo.RemoteCache, imp string) (label.Label, error) { - // If we're in module mode, use "go list" to find the module path and - // repository name. Otherwise, use special cases (for github.com, golang.org) - // or send a GET with ?go-get=1 to find the root. If the path contains - // a major version suffix (e.g., /v2), treat it as a module anyway though. - // - // Eventually module mode will be the only mode. But for now, it's expensive - // and not the common case, especially when known repositories aren't - // listed in WORKSPACE (which is currently the case within go_repository). - if !moduleMode { - moduleMode = pathWithoutSemver(imp) != "" - } - - var prefix, repo string - var err error - if moduleMode { - prefix, repo, err = rc.Mod(imp) - } else { - prefix, repo, err = rc.Root(imp) - } - if err != nil { - return label.NoLabel, err - } - - var pkg string - if pathtools.HasPrefix(imp, prefix) { - pkg = pathtools.TrimPrefix(imp, prefix) - } else if impWithoutSemver := pathWithoutSemver(imp); pathtools.HasPrefix(impWithoutSemver, prefix) { - // We may have used minimal module compatibility to resolve a path - // without a semantic import version suffix to a repository that has one. - pkg = pathtools.TrimPrefix(impWithoutSemver, prefix) - } - - return label.New(repo, pkg, 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 *repo.RemoteCache, imp string, from label.Label) (label.Label, error) { - pcMode := getProtoMode(c) - - if wellKnownProtos[imp] { - return label.NoLabel, skipImportError - } - - 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 { - return l, nil - } - } - - if l, err := resolveWithIndexProto(ix, imp, from); err == nil || err == skipImportError { - return l, err - } else if err != notFoundError { - return label.NoLabel, err - } - - // As a fallback, guess the label based on the proto file name. We assume - // all proto files in a directory belong to the same package, and the - // package name matches the directory base name. We also assume that protos - // in the vendor directory must refer to something else in vendor. - rel := path.Dir(imp) - if rel == "." { - rel = "" - } - if from.Pkg == "vendor" || strings.HasPrefix(from.Pkg, "vendor/") { - rel = path.Join("vendor", rel) - } - return label.New("", rel, defaultLibName), nil -} - -// wellKnownProtos is the set of proto sets for which we don't need to add -// an explicit dependency in go_proto_library. -// TODO(jayconrod): generate from -// @io_bazel_rules_go//proto/wkt:WELL_KNOWN_TYPE_PACKAGES -var wellKnownProtos = map[string]bool{ - "google/protobuf/any.proto": true, - "google/protobuf/api.proto": true, - "google/protobuf/compiler/plugin.proto": true, - "google/protobuf/descriptor.proto": true, - "google/protobuf/duration.proto": true, - "google/protobuf/empty.proto": true, - "google/protobuf/field_mask.proto": true, - "google/protobuf/source_context.proto": true, - "google/protobuf/struct.proto": true, - "google/protobuf/timestamp.proto": true, - "google/protobuf/type.proto": true, - "google/protobuf/wrappers.proto": true, -} - -func resolveWithIndexProto(ix *resolve.RuleIndex, imp string, from label.Label) (label.Label, error) { - matches := ix.FindRulesByImport(resolve.ImportSpec{Lang: "proto", Imp: imp}, "go") - if len(matches) == 0 { - return label.NoLabel, notFoundError - } - if len(matches) > 1 { - return label.NoLabel, fmt.Errorf("multiple rules (%s and %s) may be imported with %q from %s", matches[0].Label, matches[1].Label, imp, from) - } - if matches[0].IsSelfImport(from) { - return label.NoLabel, skipImportError - } - return matches[0].Label, nil -} - -func isGoLibrary(kind string) bool { - return kind == "go_library" || isGoProtoLibrary(kind) -} - -func isGoProtoLibrary(kind string) bool { - return kind == "go_proto_library" || kind == "go_grpc_library" -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/std_package_list.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/std_package_list.go deleted file mode 100644 index cf908872486..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/std_package_list.go +++ /dev/null @@ -1,678 +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. -*/ - -// Generated by gen_std_package_list.go -// DO NOT EDIT - -package golang - -var stdPackages = map[string]bool{ - "archive/tar": true, - "archive/tar/testdata": true, - "archive/zip": true, - "archive/zip/testdata": true, - "bufio": true, - "builtin": true, - "bytes": true, - "cmd": true, - "cmd/addr2line": true, - "cmd/api": true, - "cmd/api/testdata/src/issue21181/dep": true, - "cmd/api/testdata/src/issue21181/indirect": true, - "cmd/api/testdata/src/issue21181/p": true, - "cmd/api/testdata/src/issue29837/p": true, - "cmd/api/testdata/src/pkg/p1": true, - "cmd/api/testdata/src/pkg/p2": true, - "cmd/api/testdata/src/pkg/p3": true, - "cmd/asm": true, - "cmd/asm/internal/arch": true, - "cmd/asm/internal/asm": true, - "cmd/asm/internal/asm/testdata": true, - "cmd/asm/internal/asm/testdata/avx512enc": true, - "cmd/asm/internal/flags": true, - "cmd/asm/internal/lex": true, - "cmd/buildid": true, - "cmd/cgo": true, - "cmd/compile": true, - "cmd/compile/internal/amd64": true, - "cmd/compile/internal/arm": true, - "cmd/compile/internal/arm64": true, - "cmd/compile/internal/gc": true, - "cmd/compile/internal/gc/builtin": true, - "cmd/compile/internal/gc/testdata": true, - "cmd/compile/internal/gc/testdata/gen": true, - "cmd/compile/internal/gc/testdata/reproducible": true, - "cmd/compile/internal/mips": true, - "cmd/compile/internal/mips64": true, - "cmd/compile/internal/ppc64": true, - "cmd/compile/internal/s390x": true, - "cmd/compile/internal/ssa": true, - "cmd/compile/internal/ssa/gen": true, - "cmd/compile/internal/ssa/testdata": true, - "cmd/compile/internal/syntax": true, - "cmd/compile/internal/syntax/testdata": true, - "cmd/compile/internal/test": true, - "cmd/compile/internal/types": true, - "cmd/compile/internal/wasm": true, - "cmd/compile/internal/x86": true, - "cmd/cover": true, - "cmd/cover/testdata": true, - "cmd/cover/testdata/html": true, - "cmd/dist": true, - "cmd/doc": true, - "cmd/doc/testdata": true, - "cmd/doc/testdata/nested": true, - "cmd/doc/testdata/nested/nested": true, - "cmd/fix": true, - "cmd/go": true, - "cmd/go/internal/auth": true, - "cmd/go/internal/base": true, - "cmd/go/internal/bug": true, - "cmd/go/internal/cache": true, - "cmd/go/internal/cfg": true, - "cmd/go/internal/clean": true, - "cmd/go/internal/cmdflag": true, - "cmd/go/internal/dirhash": true, - "cmd/go/internal/doc": true, - "cmd/go/internal/envcmd": true, - "cmd/go/internal/fix": true, - "cmd/go/internal/fmtcmd": true, - "cmd/go/internal/generate": true, - "cmd/go/internal/get": true, - "cmd/go/internal/help": true, - "cmd/go/internal/imports": true, - "cmd/go/internal/imports/testdata/android": true, - "cmd/go/internal/imports/testdata/illumos": true, - "cmd/go/internal/imports/testdata/star": true, - "cmd/go/internal/list": true, - "cmd/go/internal/load": true, - "cmd/go/internal/lockedfile": true, - "cmd/go/internal/lockedfile/internal/filelock": true, - "cmd/go/internal/modcmd": true, - "cmd/go/internal/modconv": true, - "cmd/go/internal/modconv/testdata": true, - "cmd/go/internal/modfetch": true, - "cmd/go/internal/modfetch/codehost": true, - "cmd/go/internal/modfile": true, - "cmd/go/internal/modfile/testdata": true, - "cmd/go/internal/modget": true, - "cmd/go/internal/modinfo": true, - "cmd/go/internal/modload": true, - "cmd/go/internal/module": true, - "cmd/go/internal/mvs": true, - "cmd/go/internal/note": true, - "cmd/go/internal/par": true, - "cmd/go/internal/renameio": true, - "cmd/go/internal/robustio": true, - "cmd/go/internal/run": true, - "cmd/go/internal/search": true, - "cmd/go/internal/semver": true, - "cmd/go/internal/str": true, - "cmd/go/internal/sumweb": true, - "cmd/go/internal/test": true, - "cmd/go/internal/tlog": true, - "cmd/go/internal/tool": true, - "cmd/go/internal/txtar": true, - "cmd/go/internal/version": true, - "cmd/go/internal/vet": true, - "cmd/go/internal/web": true, - "cmd/go/internal/work": true, - "cmd/go/testdata": true, - "cmd/go/testdata/badmod": true, - "cmd/go/testdata/failssh": true, - "cmd/go/testdata/generate": true, - "cmd/go/testdata/importcom": true, - "cmd/go/testdata/importcom/src/bad": true, - "cmd/go/testdata/importcom/src/conflict": true, - "cmd/go/testdata/importcom/src/works/x": true, - "cmd/go/testdata/importcom/src/wrongplace": true, - "cmd/go/testdata/importcycle/src/selfimport": true, - "cmd/go/testdata/local": true, - "cmd/go/testdata/local/easysub": true, - "cmd/go/testdata/local/sub": true, - "cmd/go/testdata/local/sub/sub": true, - "cmd/go/testdata/mod": true, - "cmd/go/testdata/modlegacy/src/new": true, - "cmd/go/testdata/modlegacy/src/new/p1": true, - "cmd/go/testdata/modlegacy/src/new/p2": true, - "cmd/go/testdata/modlegacy/src/new/sub": true, - "cmd/go/testdata/modlegacy/src/new/sub/inner": true, - "cmd/go/testdata/modlegacy/src/new/sub/inner/x": true, - "cmd/go/testdata/modlegacy/src/new/sub/x/v1/y": true, - "cmd/go/testdata/modlegacy/src/old/p1": true, - "cmd/go/testdata/modlegacy/src/old/p2": true, - "cmd/go/testdata/norunexample": true, - "cmd/go/testdata/rundir": true, - "cmd/go/testdata/rundir/sub": true, - "cmd/go/testdata/script": true, - "cmd/go/testdata/shadow/root1/src/foo": true, - "cmd/go/testdata/shadow/root1/src/math": true, - "cmd/go/testdata/shadow/root2/src/foo": true, - "cmd/go/testdata/src": true, - "cmd/go/testdata/src/badc": true, - "cmd/go/testdata/src/badpkg": true, - "cmd/go/testdata/src/bench": true, - "cmd/go/testdata/src/benchfatal": true, - "cmd/go/testdata/src/canonical/a": true, - "cmd/go/testdata/src/canonical/a/vendor/c": true, - "cmd/go/testdata/src/canonical/b": true, - "cmd/go/testdata/src/canonical/d": true, - "cmd/go/testdata/src/cgoasm": true, - "cmd/go/testdata/src/cgocover": true, - "cmd/go/testdata/src/cgocover2": true, - "cmd/go/testdata/src/cgocover3": true, - "cmd/go/testdata/src/cgocover4": true, - "cmd/go/testdata/src/cgotest": true, - "cmd/go/testdata/src/coverasm": true, - "cmd/go/testdata/src/coverbad": true, - "cmd/go/testdata/src/coverdep": true, - "cmd/go/testdata/src/coverdep/p1": true, - "cmd/go/testdata/src/coverdep2/p1": true, - "cmd/go/testdata/src/coverdep2/p2": true, - "cmd/go/testdata/src/coverdot1": true, - "cmd/go/testdata/src/coverdot2": true, - "cmd/go/testdata/src/dupload": true, - "cmd/go/testdata/src/dupload/p": true, - "cmd/go/testdata/src/dupload/p2": true, - "cmd/go/testdata/src/dupload/vendor/p": true, - "cmd/go/testdata/src/empty/pkg": true, - "cmd/go/testdata/src/empty/pkgtest": true, - "cmd/go/testdata/src/empty/pkgtestxtest": true, - "cmd/go/testdata/src/empty/pkgxtest": true, - "cmd/go/testdata/src/empty/test": true, - "cmd/go/testdata/src/empty/testxtest": true, - "cmd/go/testdata/src/empty/xtest": true, - "cmd/go/testdata/src/exclude": true, - "cmd/go/testdata/src/exclude/empty": true, - "cmd/go/testdata/src/exclude/ignore": true, - "cmd/go/testdata/src/gencycle": true, - "cmd/go/testdata/src/go-cmd-test": true, - "cmd/go/testdata/src/hello": true, - "cmd/go/testdata/src/importmain/ismain": true, - "cmd/go/testdata/src/importmain/test": true, - "cmd/go/testdata/src/main_test": true, - "cmd/go/testdata/src/multimain": true, - "cmd/go/testdata/src/my.pkg": true, - "cmd/go/testdata/src/my.pkg/main": true, - "cmd/go/testdata/src/not_main": true, - "cmd/go/testdata/src/notest": true, - "cmd/go/testdata/src/run": true, - "cmd/go/testdata/src/run/internal": true, - "cmd/go/testdata/src/run/subdir/internal/private": true, - "cmd/go/testdata/src/skipper": true, - "cmd/go/testdata/src/sleepy1": true, - "cmd/go/testdata/src/sleepy2": true, - "cmd/go/testdata/src/sleepybad": true, - "cmd/go/testdata/src/syntaxerror": true, - "cmd/go/testdata/src/testcache": true, - "cmd/go/testdata/src/testcycle/p1": true, - "cmd/go/testdata/src/testcycle/p2": true, - "cmd/go/testdata/src/testcycle/p3": true, - "cmd/go/testdata/src/testcycle/q1": true, - "cmd/go/testdata/src/testdep/p1": true, - "cmd/go/testdata/src/testdep/p2": true, - "cmd/go/testdata/src/testdep/p3": true, - "cmd/go/testdata/src/testlist": true, - "cmd/go/testdata/src/testnorun": true, - "cmd/go/testdata/src/testrace": true, - "cmd/go/testdata/src/testregexp": true, - "cmd/go/testdata/src/vend": true, - "cmd/go/testdata/src/vend/dir1": true, - "cmd/go/testdata/src/vend/hello": true, - "cmd/go/testdata/src/vend/subdir": true, - "cmd/go/testdata/src/vend/vendor/p": true, - "cmd/go/testdata/src/vend/vendor/q": true, - "cmd/go/testdata/src/vend/vendor/strings": true, - "cmd/go/testdata/src/vend/vendor/vend/dir1/dir2": true, - "cmd/go/testdata/src/vend/x": true, - "cmd/go/testdata/src/vend/x/invalid": true, - "cmd/go/testdata/src/vend/x/vendor/p": true, - "cmd/go/testdata/src/vend/x/vendor/p/p": true, - "cmd/go/testdata/src/vend/x/vendor/r": true, - "cmd/go/testdata/src/vetcycle": true, - "cmd/go/testdata/src/vetfail/p1": true, - "cmd/go/testdata/src/vetfail/p2": true, - "cmd/go/testdata/src/vetpkg": true, - "cmd/go/testdata/src/xtestonly": true, - "cmd/go/testdata/testcover/pkg1": true, - "cmd/go/testdata/testcover/pkg2": true, - "cmd/go/testdata/testcover/pkg3": true, - "cmd/go/testdata/testcover/pkg4": true, - "cmd/go/testdata/testimport": true, - "cmd/go/testdata/testimport/p1": true, - "cmd/go/testdata/testimport/p2": true, - "cmd/go/testdata/testinternal": true, - "cmd/go/testdata/testinternal2": true, - "cmd/go/testdata/testinternal2/x/y/z/internal/w": true, - "cmd/go/testdata/testinternal3": true, - "cmd/go/testdata/testinternal4/src/p": true, - "cmd/go/testdata/testinternal4/src/q/internal/x": true, - "cmd/go/testdata/testinternal4/src/q/j": true, - "cmd/go/testdata/testonly": true, - "cmd/go/testdata/testonly2": true, - "cmd/go/testdata/testterminal18153": true, - "cmd/go/testdata/testvendor/src/p": true, - "cmd/go/testdata/testvendor/src/q/vendor/x": true, - "cmd/go/testdata/testvendor/src/q/y": true, - "cmd/go/testdata/testvendor/src/q/z": true, - "cmd/go/testdata/testvendor2/src/p": true, - "cmd/go/testdata/testvendor2/vendor/x": true, - "cmd/gofmt": true, - "cmd/gofmt/testdata": true, - "cmd/internal/bio": true, - "cmd/internal/browser": true, - "cmd/internal/buildid": true, - "cmd/internal/buildid/testdata": true, - "cmd/internal/dwarf": true, - "cmd/internal/edit": true, - "cmd/internal/gcprog": true, - "cmd/internal/goobj": true, - "cmd/internal/goobj/testdata": true, - "cmd/internal/goobj/testdata/mycgo": true, - "cmd/internal/obj": true, - "cmd/internal/obj/arm": true, - "cmd/internal/obj/arm64": true, - "cmd/internal/obj/mips": true, - "cmd/internal/obj/ppc64": true, - "cmd/internal/obj/s390x": true, - "cmd/internal/obj/wasm": true, - "cmd/internal/obj/x86": true, - "cmd/internal/objabi": true, - "cmd/internal/objfile": true, - "cmd/internal/src": true, - "cmd/internal/sys": true, - "cmd/internal/test2json": true, - "cmd/internal/test2json/testdata": true, - "cmd/link": true, - "cmd/link/internal/amd64": true, - "cmd/link/internal/arm": true, - "cmd/link/internal/arm64": true, - "cmd/link/internal/ld": true, - "cmd/link/internal/ld/testdata/httptest/main": true, - "cmd/link/internal/ld/testdata/issue10978": true, - "cmd/link/internal/ld/testdata/issue25459/a": true, - "cmd/link/internal/ld/testdata/issue25459/main": true, - "cmd/link/internal/ld/testdata/issue26237/b.dir": true, - "cmd/link/internal/ld/testdata/issue26237/main": true, - "cmd/link/internal/ld/testdata/issue32233/lib": true, - "cmd/link/internal/ld/testdata/issue32233/main": true, - "cmd/link/internal/loadelf": true, - "cmd/link/internal/loadmacho": true, - "cmd/link/internal/loadpe": true, - "cmd/link/internal/loadxcoff": true, - "cmd/link/internal/mips": true, - "cmd/link/internal/mips64": true, - "cmd/link/internal/objfile": true, - "cmd/link/internal/ppc64": true, - "cmd/link/internal/s390x": true, - "cmd/link/internal/sym": true, - "cmd/link/internal/wasm": true, - "cmd/link/internal/x86": true, - "cmd/link/testdata": true, - "cmd/nm": true, - "cmd/objdump": true, - "cmd/objdump/testdata": true, - "cmd/pack": true, - "cmd/pprof": true, - "cmd/test2json": true, - "cmd/trace": true, - "cmd/vendor": true, - "cmd/vendor/github.com/google/pprof": true, - "cmd/vendor/github.com/google/pprof/driver": true, - "cmd/vendor/github.com/google/pprof/internal/binutils": true, - "cmd/vendor/github.com/google/pprof/internal/driver": true, - "cmd/vendor/github.com/google/pprof/internal/elfexec": true, - "cmd/vendor/github.com/google/pprof/internal/graph": true, - "cmd/vendor/github.com/google/pprof/internal/measurement": true, - "cmd/vendor/github.com/google/pprof/internal/plugin": true, - "cmd/vendor/github.com/google/pprof/internal/report": true, - "cmd/vendor/github.com/google/pprof/internal/symbolizer": true, - "cmd/vendor/github.com/google/pprof/internal/symbolz": true, - "cmd/vendor/github.com/google/pprof/internal/transport": true, - "cmd/vendor/github.com/google/pprof/profile": true, - "cmd/vendor/github.com/google/pprof/third_party/d3": true, - "cmd/vendor/github.com/google/pprof/third_party/d3flamegraph": true, - "cmd/vendor/github.com/google/pprof/third_party/svgpan": true, - "cmd/vendor/github.com/ianlancetaylor/demangle": true, - "cmd/vendor/golang.org/x/arch": true, - "cmd/vendor/golang.org/x/arch/arm/armasm": true, - "cmd/vendor/golang.org/x/arch/arm64/arm64asm": true, - "cmd/vendor/golang.org/x/arch/ppc64/ppc64asm": true, - "cmd/vendor/golang.org/x/arch/x86/x86asm": true, - "cmd/vendor/golang.org/x/crypto": true, - "cmd/vendor/golang.org/x/crypto/ssh/terminal": true, - "cmd/vendor/golang.org/x/sys": true, - "cmd/vendor/golang.org/x/sys/unix": true, - "cmd/vendor/golang.org/x/sys/windows": true, - "cmd/vendor/golang.org/x/tools": true, - "cmd/vendor/golang.org/x/tools/go/analysis": true, - "cmd/vendor/golang.org/x/tools/go/analysis/internal/analysisflags": true, - "cmd/vendor/golang.org/x/tools/go/analysis/internal/facts": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/asmdecl": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/assign": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/atomic": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/bools": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/buildtag": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/cgocall": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/composite": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/copylock": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/ctrlflow": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/errorsas": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/httpresponse": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/inspect": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/internal/analysisutil": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/loopclosure": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/lostcancel": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/nilfunc": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/printf": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/shift": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/stdmethods": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/structtag": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/tests": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/unmarshal": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/unreachable": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/unsafeptr": true, - "cmd/vendor/golang.org/x/tools/go/analysis/passes/unusedresult": true, - "cmd/vendor/golang.org/x/tools/go/analysis/unitchecker": true, - "cmd/vendor/golang.org/x/tools/go/ast/astutil": true, - "cmd/vendor/golang.org/x/tools/go/ast/inspector": true, - "cmd/vendor/golang.org/x/tools/go/cfg": true, - "cmd/vendor/golang.org/x/tools/go/types/objectpath": true, - "cmd/vendor/golang.org/x/tools/go/types/typeutil": true, - "cmd/vet": true, - "cmd/vet/testdata/asm": true, - "cmd/vet/testdata/assign": true, - "cmd/vet/testdata/atomic": true, - "cmd/vet/testdata/bool": true, - "cmd/vet/testdata/buildtag": true, - "cmd/vet/testdata/cgo": true, - "cmd/vet/testdata/composite": true, - "cmd/vet/testdata/copylock": true, - "cmd/vet/testdata/deadcode": true, - "cmd/vet/testdata/httpresponse": true, - "cmd/vet/testdata/lostcancel": true, - "cmd/vet/testdata/method": true, - "cmd/vet/testdata/nilfunc": true, - "cmd/vet/testdata/print": true, - "cmd/vet/testdata/rangeloop": true, - "cmd/vet/testdata/shift": true, - "cmd/vet/testdata/structtag": true, - "cmd/vet/testdata/tagtest": true, - "cmd/vet/testdata/testingpkg": true, - "cmd/vet/testdata/unmarshal": true, - "cmd/vet/testdata/unsafeptr": true, - "cmd/vet/testdata/unused": true, - "compress/bzip2": true, - "compress/bzip2/testdata": true, - "compress/flate": true, - "compress/flate/testdata": true, - "compress/gzip": true, - "compress/gzip/testdata": true, - "compress/lzw": true, - "compress/testdata": true, - "compress/zlib": true, - "container/heap": true, - "container/list": true, - "container/ring": true, - "context": true, - "crypto": true, - "crypto/aes": true, - "crypto/cipher": true, - "crypto/des": true, - "crypto/dsa": true, - "crypto/ecdsa": true, - "crypto/ecdsa/testdata": true, - "crypto/ed25519": true, - "crypto/ed25519/internal/edwards25519": true, - "crypto/ed25519/testdata": true, - "crypto/elliptic": true, - "crypto/hmac": true, - "crypto/internal/randutil": true, - "crypto/internal/subtle": true, - "crypto/md5": true, - "crypto/rand": true, - "crypto/rc4": true, - "crypto/rsa": true, - "crypto/rsa/testdata": true, - "crypto/sha1": true, - "crypto/sha256": true, - "crypto/sha512": true, - "crypto/subtle": true, - "crypto/tls": true, - "crypto/tls/testdata": true, - "crypto/x509": true, - "crypto/x509/pkix": true, - "crypto/x509/testdata": true, - "database/sql": true, - "database/sql/driver": true, - "debug/dwarf": true, - "debug/dwarf/testdata": true, - "debug/elf": true, - "debug/elf/testdata": true, - "debug/gosym": true, - "debug/gosym/testdata": true, - "debug/macho": true, - "debug/macho/testdata": true, - "debug/pe": true, - "debug/pe/testdata": true, - "debug/plan9obj": true, - "debug/plan9obj/testdata": true, - "encoding": true, - "encoding/ascii85": true, - "encoding/asn1": true, - "encoding/base32": true, - "encoding/base64": true, - "encoding/binary": true, - "encoding/csv": true, - "encoding/gob": true, - "encoding/hex": true, - "encoding/json": true, - "encoding/json/testdata": true, - "encoding/pem": true, - "encoding/xml": true, - "errors": true, - "expvar": true, - "flag": true, - "fmt": true, - "go/ast": true, - "go/build": true, - "go/build/testdata/doc": true, - "go/build/testdata/empty": true, - "go/build/testdata/multi": true, - "go/build/testdata/other": true, - "go/build/testdata/other/file": true, - "go/build/testdata/withvendor/src/a/b": true, - "go/build/testdata/withvendor/src/a/vendor/c/d": true, - "go/constant": true, - "go/doc": true, - "go/doc/testdata": true, - "go/format": true, - "go/importer": true, - "go/internal/gccgoimporter": true, - "go/internal/gccgoimporter/testdata": true, - "go/internal/gcimporter": true, - "go/internal/gcimporter/testdata": true, - "go/internal/gcimporter/testdata/versions": true, - "go/internal/srcimporter": true, - "go/internal/srcimporter/testdata/issue20855": true, - "go/internal/srcimporter/testdata/issue23092": true, - "go/internal/srcimporter/testdata/issue24392": true, - "go/parser": true, - "go/parser/testdata": true, - "go/printer": true, - "go/printer/testdata": true, - "go/scanner": true, - "go/token": true, - "go/types": true, - "go/types/testdata": true, - "hash": true, - "hash/adler32": true, - "hash/crc32": true, - "hash/crc64": true, - "hash/fnv": true, - "html": true, - "html/template": true, - "image": true, - "image/color": true, - "image/color/palette": true, - "image/draw": true, - "image/gif": true, - "image/internal/imageutil": true, - "image/jpeg": true, - "image/png": true, - "image/png/testdata": true, - "image/png/testdata/pngsuite": true, - "image/testdata": true, - "index/suffixarray": true, - "internal/bytealg": true, - "internal/cfg": true, - "internal/cpu": true, - "internal/fmtsort": true, - "internal/goroot": true, - "internal/goversion": true, - "internal/lazyregexp": true, - "internal/lazytemplate": true, - "internal/nettrace": true, - "internal/oserror": true, - "internal/poll": true, - "internal/race": true, - "internal/reflectlite": true, - "internal/singleflight": true, - "internal/syscall/unix": true, - "internal/syscall/windows": true, - "internal/syscall/windows/registry": true, - "internal/syscall/windows/sysdll": true, - "internal/testenv": true, - "internal/testlog": true, - "internal/trace": true, - "internal/trace/testdata": true, - "internal/xcoff": true, - "internal/xcoff/testdata": true, - "io": true, - "io/ioutil": true, - "io/ioutil/testdata": true, - "log": true, - "log/syslog": true, - "math": true, - "math/big": true, - "math/bits": true, - "math/cmplx": true, - "math/rand": true, - "mime": true, - "mime/multipart": true, - "mime/multipart/testdata": true, - "mime/quotedprintable": true, - "mime/testdata": true, - "net": true, - "net/http": true, - "net/http/cgi": true, - "net/http/cgi/testdata": true, - "net/http/cookiejar": true, - "net/http/fcgi": true, - "net/http/httptest": true, - "net/http/httptrace": true, - "net/http/httputil": true, - "net/http/internal": true, - "net/http/pprof": true, - "net/http/testdata": true, - "net/internal/socktest": true, - "net/mail": true, - "net/rpc": true, - "net/rpc/jsonrpc": true, - "net/smtp": true, - "net/testdata": true, - "net/textproto": true, - "net/url": true, - "os": true, - "os/exec": true, - "os/signal": true, - "os/signal/internal/pty": true, - "os/user": true, - "path": true, - "path/filepath": true, - "plugin": true, - "reflect": true, - "regexp": true, - "regexp/syntax": true, - "regexp/testdata": true, - "runtime": true, - "runtime/cgo": true, - "runtime/debug": true, - "runtime/internal/atomic": true, - "runtime/internal/math": true, - "runtime/internal/sys": true, - "runtime/msan": true, - "runtime/pprof": true, - "runtime/pprof/internal/profile": true, - "runtime/pprof/testdata": true, - "runtime/pprof/testdata/mappingtest": true, - "runtime/race": true, - "runtime/race/testdata": true, - "runtime/testdata/testprog": true, - "runtime/testdata/testprogcgo": true, - "runtime/testdata/testprogcgo/windows": true, - "runtime/testdata/testprognet": true, - "runtime/trace": true, - "sort": true, - "strconv": true, - "strconv/testdata": true, - "strings": true, - "sync": true, - "sync/atomic": true, - "syscall": true, - "syscall/js": true, - "testdata": true, - "testing": true, - "testing/internal/testdeps": true, - "testing/iotest": true, - "testing/quick": true, - "text/scanner": true, - "text/tabwriter": true, - "text/template": true, - "text/template/parse": true, - "text/template/testdata": true, - "time": true, - "unicode": true, - "unicode/utf16": true, - "unicode/utf8": true, - "unsafe": true, - "vendor": true, - "vendor/golang.org/x/crypto": true, - "vendor/golang.org/x/crypto/chacha20poly1305": true, - "vendor/golang.org/x/crypto/cryptobyte": true, - "vendor/golang.org/x/crypto/cryptobyte/asn1": true, - "vendor/golang.org/x/crypto/curve25519": true, - "vendor/golang.org/x/crypto/hkdf": true, - "vendor/golang.org/x/crypto/internal/chacha20": true, - "vendor/golang.org/x/crypto/internal/subtle": true, - "vendor/golang.org/x/crypto/poly1305": true, - "vendor/golang.org/x/net": true, - "vendor/golang.org/x/net/dns/dnsmessage": true, - "vendor/golang.org/x/net/http/httpguts": true, - "vendor/golang.org/x/net/http/httpproxy": true, - "vendor/golang.org/x/net/http2/hpack": true, - "vendor/golang.org/x/net/idna": true, - "vendor/golang.org/x/net/lif": true, - "vendor/golang.org/x/net/nettest": true, - "vendor/golang.org/x/net/route": true, - "vendor/golang.org/x/sys": true, - "vendor/golang.org/x/sys/cpu": true, - "vendor/golang.org/x/text": true, - "vendor/golang.org/x/text/secure/bidirule": true, - "vendor/golang.org/x/text/transform": true, - "vendor/golang.org/x/text/unicode/bidi": true, - "vendor/golang.org/x/text/unicode/norm": true, -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/update.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/go/update.go deleted file mode 100644 index 6a33078d6a6..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/go/update.go +++ /dev/null @@ -1,109 +0,0 @@ -/* 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 golang - -import ( - "path/filepath" - "strings" - - "github.com/bazelbuild/bazel-gazelle/language" - "github.com/bazelbuild/bazel-gazelle/rule" - "golang.org/x/sync/errgroup" -) - -// UpdateRepos generates go_repository rules corresponding to modules in -// args.Imports. Each module argument may specify a version with an '@' suffix -// (in the same format as 'go get'). If no version is specified, @latest -// is requested. -func (*goLang) UpdateRepos(args language.UpdateReposArgs) language.UpdateReposResult { - gen := make([]*rule.Rule, len(args.Imports)) - var eg errgroup.Group - for i := range args.Imports { - i := i - eg.Go(func() error { - arg := args.Imports[i] - modPath, query := arg, "latest" - if i := strings.IndexByte(arg, '@'); i >= 0 { - modPath, query = arg[:i], arg[i+1:] - } - name, version, sum, err := args.Cache.ModVersion(modPath, query) - if err != nil { - return err - } - gen[i] = rule.NewRule("go_repository", name) - gen[i].SetAttr("importpath", modPath) - gen[i].SetAttr("version", version) - gen[i].SetAttr("sum", sum) - setBuildAttrs(getGoConfig(args.Config), gen[i]) - return nil - }) - } - if err := eg.Wait(); err != nil { - return language.UpdateReposResult{Error: err} - } - return language.UpdateReposResult{Gen: gen} -} - -var repoImportFuncs = map[string]func(args language.ImportReposArgs) language.ImportReposResult{ - "Gopkg.lock": importReposFromDep, - "go.mod": importReposFromModules, - "Godeps.json": importReposFromGodep, -} - -func (*goLang) CanImport(path string) bool { - return repoImportFuncs[filepath.Base(path)] != nil -} - -func (*goLang) ImportRepos(args language.ImportReposArgs) language.ImportReposResult { - res := repoImportFuncs[filepath.Base(args.Path)](args) - for _, r := range res.Gen { - setBuildAttrs(getGoConfig(args.Config), r) - } - if args.Prune { - genNamesSet := make(map[string]bool) - for _, r := range res.Gen { - genNamesSet[r.Name()] = true - } - for _, r := range args.Config.Repos { - if name := r.Name(); r.Kind() == "go_repository" && !genNamesSet[name] { - res.Empty = append(res.Empty, rule.NewRule("go_repository", name)) - } - } - } - return res -} - -func setBuildAttrs(gc *goConfig, r *rule.Rule) { - if gc.buildExternalAttr != "" { - r.SetAttr("build_external", gc.buildExternalAttr) - } - if gc.buildFileNamesAttr != "" { - r.SetAttr("build_file_name", gc.buildFileNamesAttr) - } - if gc.buildFileGenerationAttr != "" { - r.SetAttr("build_file_generation", gc.buildFileGenerationAttr) - } - if gc.buildTagsAttr != "" { - r.SetAttr("build_tags", gc.buildTagsAttr) - } - if gc.buildFileProtoModeAttr != "" { - r.SetAttr("build_file_proto_mode", gc.buildFileProtoModeAttr) - } - if gc.buildExtraArgsAttr != "" { - extraArgs := strings.Split(gc.buildExtraArgsAttr, ",") - r.SetAttr("build_extra_args", extraArgs) - } -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/lang.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/lang.go deleted file mode 100644 index 5081dc1c55e..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/lang.go +++ /dev/null @@ -1,151 +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 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{} -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/BUILD deleted file mode 100644 index e80ce75e9e5..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/BUILD +++ /dev/null @@ -1,42 +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/kubernetes/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", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/config.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/config.go deleted file mode 100644 index 97c9b22803b..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/config.go +++ /dev/null @@ -1,284 +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 proto - -import ( - "flag" - "fmt" - "log" - "path" - "strings" - - "github.com/bazelbuild/bazel-gazelle/config" - "github.com/bazelbuild/bazel-gazelle/rule" -) - -// ProtoConfig contains configuration values related to protos. -// -// This type is public because other languages need to generate rules based -// on protos, so this configuration may be relevant to them. -type ProtoConfig struct { - // Mode determines how rules are generated for protos. - Mode Mode - - // ModeExplicit indicates whether the proto mode was set explicitly. - ModeExplicit bool - - // GoPrefix is the current Go prefix (the Go extension may set this in the - // root directory only). Used to generate proto rule names in the root - // directory when there are no proto files or the proto package name - // can't be determined. - // TODO(jayconrod): deprecate and remove Go-specific behavior. - GoPrefix string - - // 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 { - pc := c.Exts[protoName] - if pc == nil { - return nil - } - return pc.(*ProtoConfig) -} - -// Mode determines how proto rules are generated. -type Mode int - -const ( - // DefaultMode generates proto_library rules. Other languages should generate - // library rules based on these (e.g., go_proto_library) and should ignore - // checked-in generated files (e.g., .pb.go files) when there is a .proto - // file with a similar name. - DefaultMode Mode = iota - - // DisableMode ignores .proto files and generates empty proto_library rules. - // Checked-in generated files (e.g., .pb.go files) should be treated as - // normal sources. - DisableMode - - // DisableGlobalMode is similar to DisableMode, but it also prevents - // the use of special cases in dependency resolution for well known types - // and Google APIs. - DisableGlobalMode - - // LegacyMode generates filegroups for .proto files if .pb.go files are - // present in the same directory. - LegacyMode - - // PackageMode generates a proto_library for each set of .proto files with - // the same package name in each directory. - PackageMode -) - -func ModeFromString(s string) (Mode, error) { - switch s { - case "default": - return DefaultMode, nil - case "disable": - return DisableMode, nil - case "disable_global": - return DisableGlobalMode, nil - case "legacy": - return LegacyMode, nil - case "package": - return PackageMode, nil - default: - return 0, fmt.Errorf("unrecognized proto mode: %q", s) - } -} - -func (m Mode) String() string { - switch m { - case DefaultMode: - return "default" - case DisableMode: - return "disable" - case DisableGlobalMode: - return "disable_global" - case LegacyMode: - return "legacy" - case PackageMode: - return "package" - default: - log.Panicf("unknown mode %d", m) - return "" - } -} - -func (m Mode) ShouldGenerateRules() bool { - switch m { - case DisableMode, DisableGlobalMode, LegacyMode: - return false - default: - return true - } -} - -func (m Mode) ShouldIncludePregeneratedFiles() bool { - switch m { - case DisableMode, DisableGlobalMode, LegacyMode: - return true - default: - return false - } -} - -func (m Mode) ShouldUseKnownImports() bool { - return m != DisableGlobalMode -} - -type modeFlag struct { - mode *Mode -} - -func (f *modeFlag) Set(value string) error { - if mode, err := ModeFromString(value); err != nil { - return err - } else { - *f.mode = mode - return nil - } -} - -func (f *modeFlag) String() string { - var mode Mode - if f != nil && f.mode != nil { - mode = *f.mode - } - return mode.String() -} - -func (_ *protoLang) RegisterFlags(fs *flag.FlagSet, cmd string, c *config.Config) { - pc := &ProtoConfig{} - c.Exts[protoName] = pc - - // Note: the -proto flag does not set the ModeExplicit flag. We want to - // be able to switch to DisableMode in vendor directories, even when - // 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 { - return nil -} - -func (_ *protoLang) KnownDirectives() []string { - return []string{"proto", "proto_group", "proto_strip_import_prefix", "proto_import_prefix"} -} - -func (_ *protoLang) Configure(c *config.Config, rel string, f *rule.File) { - pc := &ProtoConfig{} - *pc = *GetProtoConfig(c) - c.Exts[protoName] = pc - if f != nil { - for _, d := range f.Directives { - switch d.Key { - case "proto": - mode, err := ModeFromString(d.Value) - if err != nil { - log.Print(err) - continue - } - pc.Mode = mode - 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 - } - } - } - inferProtoMode(c, rel, f) -} - -// inferProtoMode sets ProtoConfig.Mode based on the directory name and the -// contents of f. If the proto mode is set explicitly, this function does not -// change it. If this is a vendor directory, or go_proto_library is loaded from -// another file, proto rule generation is disabled. -// -// TODO(jayconrod): this logic is archaic, now that rules are generated by -// separate language extensions. Proto rule generation should be independent -// from Go. -func inferProtoMode(c *config.Config, rel string, f *rule.File) { - pc := GetProtoConfig(c) - if pc.Mode != DefaultMode || pc.ModeExplicit { - return - } - if pc.GoPrefix == wellKnownTypesGoPrefix { - pc.Mode = LegacyMode - return - } - if path.Base(rel) == "vendor" { - pc.Mode = DisableMode - return - } - if f == nil { - return - } - mode := DefaultMode -outer: - for _, l := range f.Loads { - name := l.Name() - if name == "@io_bazel_rules_go//proto:def.bzl" { - break - } - if name == "@io_bazel_rules_go//proto:go_proto_library.bzl" { - mode = LegacyMode - break - } - for _, sym := range l.Symbols() { - if sym == "go_proto_library" { - mode = DisableMode - break outer - } - } - } - if mode == DefaultMode || pc.Mode == mode || c.ShouldFix && mode == LegacyMode { - return - } - 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 -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/constants.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/constants.go deleted file mode 100644 index be6bb4c8d60..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/constants.go +++ /dev/null @@ -1,27 +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 proto - -const ( - // PackageInfoKey is the name of a private attribute set on generated - // proto_library rules. This attribute contains a Package record which - // describes the library and its sources. - PackageKey = "_package" - - // wellKnownTypesGoPrefix is the import path for the Go repository containing - // pre-generated code for the Well Known Types. - wellKnownTypesGoPrefix = "github.com/golang/protobuf" -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/fileinfo.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/fileinfo.go deleted file mode 100644 index 640fdb6c087..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/fileinfo.go +++ /dev/null @@ -1,138 +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 proto - -import ( - "bytes" - "io/ioutil" - "log" - "path/filepath" - "regexp" - "sort" - "strconv" - "strings" -) - -// FileInfo contains metadata extracted from a .proto file. -type FileInfo struct { - Path, Name string - - PackageName string - - Options []Option - Imports []string - - HasServices bool -} - -// Option represents a top-level option statement in a .proto file. Only -// string options are supported for now. -type Option struct { - Key, Value string -} - -var protoRe = buildProtoRegexp() - -func protoFileInfo(dir, name string) FileInfo { - info := FileInfo{ - Path: filepath.Join(dir, name), - Name: name, - } - content, err := ioutil.ReadFile(info.Path) - if err != nil { - log.Printf("%s: error reading proto file: %v", info.Path, err) - return info - } - - for _, match := range protoRe.FindAllSubmatch(content, -1) { - switch { - case match[importSubexpIndex] != nil: - imp := unquoteProtoString(match[importSubexpIndex]) - info.Imports = append(info.Imports, imp) - - case match[packageSubexpIndex] != nil: - pkg := string(match[packageSubexpIndex]) - if info.PackageName == "" { - info.PackageName = pkg - } - - case match[optkeySubexpIndex] != nil: - key := string(match[optkeySubexpIndex]) - value := unquoteProtoString(match[optvalSubexpIndex]) - info.Options = append(info.Options, Option{key, value}) - - case match[serviceSubexpIndex] != nil: - info.HasServices = true - - default: - // Comment matched. Nothing to extract. - } - } - sort.Strings(info.Imports) - - return info -} - -const ( - importSubexpIndex = 1 - packageSubexpIndex = 2 - optkeySubexpIndex = 3 - optvalSubexpIndex = 4 - serviceSubexpIndex = 5 -) - -// Based on https://developers.google.com/protocol-buffers/docs/reference/proto3-spec -func buildProtoRegexp() *regexp.Regexp { - hexEscape := `\\[xX][0-9a-fA-f]{2}` - octEscape := `\\[0-7]{3}` - charEscape := `\\[abfnrtv'"\\]` - charValue := strings.Join([]string{hexEscape, octEscape, charEscape, "[^\x00\\'\\\"\\\\]"}, "|") - strLit := `'(?:` + charValue + `|")*'|"(?:` + charValue + `|')*"` - ident := `[A-Za-z][A-Za-z0-9_]*` - fullIdent := ident + `(?:\.` + ident + `)*` - importStmt := `\bimport\s*(?:public|weak)?\s*(?P` + strLit + `)\s*;` - packageStmt := `\bpackage\s*(?P` + fullIdent + `)\s*;` - optionStmt := `\boption\s*(?P` + fullIdent + `)\s*=\s*(?P` + strLit + `)\s*;` - serviceStmt := `(?Pservice)` - comment := `//[^\n]*` - protoReSrc := strings.Join([]string{importStmt, packageStmt, optionStmt, serviceStmt, comment}, "|") - return regexp.MustCompile(protoReSrc) -} - -func unquoteProtoString(q []byte) string { - // Adjust quotes so that Unquote is happy. We need a double quoted string - // without unescaped double quote characters inside. - noQuotes := bytes.Split(q[1:len(q)-1], []byte{'"'}) - if len(noQuotes) != 1 { - for i := 0; i < len(noQuotes)-1; i++ { - if len(noQuotes[i]) == 0 || noQuotes[i][len(noQuotes[i])-1] != '\\' { - noQuotes[i] = append(noQuotes[i], '\\') - } - } - q = append([]byte{'"'}, bytes.Join(noQuotes, []byte{'"'})...) - q = append(q, '"') - } - if q[0] == '\'' { - q[0] = '"' - q[len(q)-1] = '"' - } - - s, err := strconv.Unquote(string(q)) - if err != nil { - log.Panicf("unquoting string literal %s from proto: %v", q, err) - } - return s -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/fix.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/fix.go deleted file mode 100644 index c8e67bf8fb5..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/fix.go +++ /dev/null @@ -1,24 +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 proto - -import ( - "github.com/bazelbuild/bazel-gazelle/config" - "github.com/bazelbuild/bazel-gazelle/rule" -) - -func (_ *protoLang) Fix(c *config.Config, f *rule.File) { -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/generate.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/generate.go deleted file mode 100644 index e9c1b00c3bc..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/generate.go +++ /dev/null @@ -1,265 +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 proto - -import ( - "fmt" - "log" - "sort" - "strings" - - "github.com/bazelbuild/bazel-gazelle/config" - "github.com/bazelbuild/bazel-gazelle/language" - "github.com/bazelbuild/bazel-gazelle/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 language.GenerateResult{} - } - - var regularProtoFiles []string - for _, name := range args.RegularFiles { - if strings.HasSuffix(name, ".proto") { - regularProtoFiles = append(regularProtoFiles, name) - } - } - var genProtoFiles []string - for _, name := range args.GenFiles { - if strings.HasSuffix(name, ".proto") { - genProtoFiles = append(genProtoFiles, name) - } - } - 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, args.Rel, pkg, shouldSetVisibility) - if r.IsEmpty(protoKinds[r.Kind()]) { - res.Empty = append(res.Empty, r) - } else { - res.Gen = append(res.Gen, r) - } - } - sort.SliceStable(res.Gen, func(i, j int) bool { - return res.Gen[i].Name() < res.Gen[j].Name() - }) - 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. -// For each string, RuleName will look for a non-empty suffix of identifier -// characters and then append "_proto" to that. -func RuleName(names ...string) string { - base := "root" - for _, name := range names { - notIdent := func(c rune) bool { - return !('A' <= c && c <= 'Z' || - 'a' <= c && c <= 'z' || - '0' <= c && c <= '9' || - c == '_') - } - if i := strings.LastIndexFunc(name, notIdent); i >= 0 { - name = name[i+1:] - } - if name != "" { - base = name - break - } - } - return base + "_proto" -} - -// buildPackage extracts metadata from the .proto files in a directory and -// constructs possibly several packages, then selects a package to generate -// a proto_library rule for. -func buildPackages(pc *ProtoConfig, dir, rel string, protoFiles, genFiles []string) []*Package { - packageMap := make(map[string]*Package) - for _, name := range protoFiles { - info := protoFileInfo(dir, name) - key := info.PackageName - if pc.groupOption != "" { - for _, opt := range info.Options { - if opt.Key == pc.groupOption { - key = opt.Value - break - } - } - } - if packageMap[key] == nil { - packageMap[key] = newPackage(info.PackageName) - } - packageMap[key].addFile(info) - } - - switch pc.Mode { - case DefaultMode: - pkg, err := selectPackage(dir, rel, packageMap) - if err != nil { - log.Print(err) - } - if pkg == nil { - return nil // empty rule created in generateEmpty - } - for _, name := range genFiles { - pkg.addGenFile(dir, name) - } - return []*Package{pkg} - - case PackageMode: - pkgs := make([]*Package, 0, len(packageMap)) - for _, pkg := range packageMap { - pkgs = append(pkgs, pkg) - } - return pkgs - - default: - return nil - } -} - -// selectPackage chooses a package to generate rules for. -func selectPackage(dir, rel string, packageMap map[string]*Package) (*Package, error) { - if len(packageMap) == 0 { - return nil, nil - } - if len(packageMap) == 1 { - for _, pkg := range packageMap { - return pkg, nil - } - } - defaultPackageName := strings.Replace(rel, "/", "_", -1) - for _, pkg := range packageMap { - if pkgName := goPackageName(pkg); pkgName != "" && pkgName == defaultPackageName { - return pkg, nil - } - } - return nil, fmt.Errorf("%s: directory contains multiple proto packages. Gazelle can only generate a proto_library for one package.", dir) -} - -// goPackageName guesses the identifier in package declarations at the top of -// the .pb.go files that will be generated for this package. "" is returned -// if the package name cannot be determined. -// -// TODO(jayconrod): remove all Go-specific functionality. This is here -// temporarily for compatibility. -func goPackageName(pkg *Package) string { - if opt, ok := pkg.Options["go_package"]; ok { - if i := strings.IndexByte(opt, ';'); i >= 0 { - return opt[i+1:] - } else if i := strings.LastIndexByte(opt, '/'); i >= 0 { - return opt[i+1:] - } else { - return opt - } - } - if pkg.Name != "" { - return strings.Replace(pkg.Name, ".", "_", -1) - } - if len(pkg.Files) == 1 { - for s := range pkg.Files { - return strings.TrimSuffix(s, ".proto") - } - } - return "" -} - -// generateProto creates a new proto_library rule for a package. The rule may -// be empty if there are no sources. -func generateProto(pc *ProtoConfig, rel string, pkg *Package, shouldSetVisibility bool) *rule.Rule { - var name string - if pc.Mode == DefaultMode { - name = RuleName(goPackageName(pkg), pc.GoPrefix, rel) - } else { - name = RuleName(pkg.Options[pc.groupOption], pkg.Name, rel) - } - r := rule.NewRule("proto_library", name) - srcs := make([]string, 0, len(pkg.Files)) - for f := range pkg.Files { - srcs = append(srcs, f) - } - sort.Strings(srcs) - if len(srcs) > 0 { - r.SetAttr("srcs", srcs) - } - r.SetPrivateAttr(PackageKey, *pkg) - imports := make([]string, 0, len(pkg.Imports)) - for i := range pkg.Imports { - 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 := 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 -} - -// generateEmpty generates a list of proto_library rules that may be deleted. -// This is generated from existing proto_library rules with srcs lists that -// don't match any static or generated files. -func generateEmpty(f *rule.File, regularFiles, genFiles []string) []*rule.Rule { - if f == nil { - return nil - } - knownFiles := make(map[string]bool) - for _, f := range regularFiles { - knownFiles[f] = true - } - for _, f := range genFiles { - knownFiles[f] = true - } - var empty []*rule.Rule -outer: - for _, r := range f.Rules { - if r.Kind() != "proto_library" { - continue - } - srcs := r.AttrStrings("srcs") - if len(srcs) == 0 && r.Attr("srcs") != nil { - // srcs is not a string list; leave it alone - continue - } - for _, src := range r.AttrStrings("srcs") { - if knownFiles[src] { - continue outer - } - } - empty = append(empty, rule.NewRule("proto_library", r.Name())) - } - return empty -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/kinds.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/kinds.go deleted file mode 100644 index 902cd6ac03f..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/kinds.go +++ /dev/null @@ -1,31 +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 proto - -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}, - }, -} - -func (_ *protoLang) Kinds() map[string]rule.KindInfo { return protoKinds } -func (_ *protoLang) Loads() []rule.LoadInfo { return nil } diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/known_imports.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/known_imports.go deleted file mode 100644 index 6335e0db538..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/known_imports.go +++ /dev/null @@ -1,1614 +0,0 @@ -// Generated by language/proto/gen/gen_known_imports.go -// From 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/v1/common/ad_asset.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/ad_type_infos.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/asset_types.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/bidding.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/click_location.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/criteria.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/criterion_category_availability.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/custom_parameter.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/dates.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/extensions.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/feed_common.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/final_app_url.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/frequency_cap.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/keyword_plan_common.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/matching_function.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/metrics.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/policy.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/real_time_bidding_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/segments.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/simulation.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/tag_snippet.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/targeting_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/text_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/url_collection.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/user_lists.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/common/value.proto": label.New("go_googleapis", "google/ads/googleads/v1/common", "common_proto"), - "google/ads/googleads/v1/enums/access_reason.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/account_budget_proposal_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/account_budget_proposal_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/account_budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_customizer_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_group_ad_rotation_mode.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_group_ad_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_group_criterion_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_group_criterion_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_group_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_network_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_serving_optimization_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_strength.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/ad_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/advertising_channel_sub_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/advertising_channel_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/affiliate_location_feed_relationship_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/affiliate_location_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/age_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/app_campaign_app_store.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/app_campaign_bidding_strategy_goal_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/app_payment_model_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/app_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/app_store.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/app_url_operating_system_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/asset_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/attribution_model.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/bid_modifier_source.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/bidding_source.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/bidding_strategy_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/bidding_strategy_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/billing_setup_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/brand_safety_suitability.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/budget_delivery_method.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/budget_period.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/budget_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/call_conversion_reporting_state.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/call_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/callout_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/campaign_criterion_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/campaign_draft_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/campaign_experiment_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/campaign_experiment_traffic_split_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/campaign_experiment_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/campaign_serving_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/campaign_shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/campaign_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/change_status_operation.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/change_status_resource_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/click_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/content_label_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/conversion_action_category.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/conversion_action_counting_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/conversion_action_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/conversion_action_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/conversion_adjustment_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/conversion_attribution_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/conversion_lag_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/conversion_or_adjustment_lag_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/criterion_category_channel_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/criterion_category_locale_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/criterion_system_serving_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/custom_interest_member_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/custom_interest_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/custom_interest_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/custom_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/customer_match_upload_key_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/customer_pay_per_conversion_eligibility_failure_reason.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/data_driven_model_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/day_of_week.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/device.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/display_ad_format_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/display_upload_product_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/dsa_page_feed_criterion_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/education_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/extension_setting_device.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/extension_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/external_conversion_source.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_attribute_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_item_quality_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_item_quality_disapproval_reason.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_item_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_item_target_device.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_item_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_item_validation_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_mapping_criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_mapping_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_origin.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/feed_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/flight_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/frequency_cap_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/frequency_cap_level.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/frequency_cap_time_unit.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/gender_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/geo_target_constant_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/geo_targeting_restriction.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/geo_targeting_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/google_ads_field_category.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/google_ads_field_data_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/hotel_date_selection_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/hotel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/hotel_rate_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/income_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/interaction_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/interaction_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/job_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/keyword_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/keyword_plan_competition_level.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/keyword_plan_forecast_interval.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/keyword_plan_network.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/label_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/legacy_app_install_ad_app_store.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/listing_custom_attribute_index.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/listing_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/local_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/location_extension_targeting_criterion_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/location_group_radius_units.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/location_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/manager_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/matching_function_context_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/matching_function_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/media_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/merchant_center_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/message_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/mime_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/minute_of_hour.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/mobile_device_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/month_of_year.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/mutate_job_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/negative_geo_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/operating_system_version_operator_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/page_one_promoted_strategy_goal.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/parental_status_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/payment_mode.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/placeholder_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/placement_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/policy_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/policy_review_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/policy_topic_entry_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/policy_topic_evidence_destination_mismatch_url_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/policy_topic_evidence_destination_not_working_device.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/positive_geo_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/preferred_content_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/price_extension_price_qualifier.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/price_extension_price_unit.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/price_extension_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/price_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/product_bidding_category_level.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/product_bidding_category_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/product_channel.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/product_channel_exclusivity.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/product_condition.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/product_type_level.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/promotion_extension_discount_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/promotion_extension_occasion.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/promotion_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/proximity_radius_units.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/quality_score_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/real_estate_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/recommendation_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/search_engine_results_page_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/search_term_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/search_term_targeting_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/served_asset_field_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/shared_set_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/simulation_modification_method.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/simulation_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/sitelink_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/slot.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/spending_limit_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/structured_snippet_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/system_managed_entity_source.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/target_cpa_opt_in_recommendation_goal.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/target_impression_share_location.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/targeting_dimension.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/time_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/tracking_code_page_format.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/tracking_code_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/travel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_interest_taxonomy_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_access_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_closing_reason.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_combined_rule_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_crm_data_source_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_date_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_logical_rule_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_membership_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_number_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_prepopulation_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_rule_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_size_range.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_string_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/user_list_type.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/vanity_pharma_display_url_mode.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/vanity_pharma_text.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/webpage_condition_operand.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/enums/webpage_condition_operator.proto": label.New("go_googleapis", "google/ads/googleads/v1/enums", "enums_proto"), - "google/ads/googleads/v1/errors/account_budget_proposal_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/ad_customizer_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/ad_group_ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/ad_group_bid_modifier_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/ad_group_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/ad_group_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/ad_parameter_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/ad_sharing_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/adx_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/asset_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/authentication_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/authorization_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/bidding_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/bidding_strategy_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/billing_setup_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/campaign_budget_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/campaign_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/campaign_draft_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/campaign_experiment_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/campaign_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/campaign_shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/change_status_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/collection_size_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/context_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/conversion_action_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/conversion_adjustment_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/conversion_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/country_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/custom_interest_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/customer_client_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/customer_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/customer_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/customer_manager_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/database_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/date_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/date_range_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/distinct_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/enum_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/errors.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/extension_feed_item_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/extension_setting_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/feed_attribute_reference_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/feed_item_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/feed_item_target_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/feed_item_validation_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/feed_mapping_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/field_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/field_mask_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/function_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/function_parsing_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/geo_target_constant_suggestion_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/header_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/id_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/image_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/internal_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/keyword_plan_ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/keyword_plan_campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/keyword_plan_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/keyword_plan_idea_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/keyword_plan_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/keyword_plan_negative_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/label_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/language_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/list_operation_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/manager_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/media_bundle_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/media_file_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/media_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/multiplier_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/mutate_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/mutate_job_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/new_resource_creation_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/not_empty_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/not_whitelisted_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/null_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/operation_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/operator_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/partial_failure_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/policy_finding_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/policy_validation_parameter_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/policy_violation_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/query_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/quota_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/range_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/recommendation_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/region_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/request_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/resource_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/resource_count_limit_exceeded_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/setting_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/shared_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/size_limit_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/string_format_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/string_length_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/url_field_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/user_list_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/errors/youtube_video_registration_error.proto": label.New("go_googleapis", "google/ads/googleads/v1/errors", "errors_proto"), - "google/ads/googleads/v1/resources/account_budget.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/account_budget_proposal.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_ad.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_ad_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_criterion_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_criterion_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_feed.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_group_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_parameter.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/ad_schedule_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/age_range_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/asset.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/bidding_strategy.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/billing_setup.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_budget.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_criterion_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_draft.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_experiment.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_feed.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/campaign_shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/carrier_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/change_status.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/click_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/conversion_action.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/custom_interest.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/customer.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/customer_client.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/customer_client_link.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/customer_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/customer_feed.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/customer_label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/customer_manager_link.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/customer_negative_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/detail_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/display_keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/domain_category.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/dynamic_search_ads_search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/expanded_landing_page_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/extension_feed_item.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/feed.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/feed_item.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/feed_item_target.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/feed_mapping.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/feed_placeholder_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/gender_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/geo_target_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/geographic_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/google_ads_field.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/group_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/hotel_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/hotel_performance_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/keyword_plan.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/keyword_plan_ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/keyword_plan_campaign.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/keyword_plan_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/keyword_plan_negative_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/label.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/landing_page_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/language_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/location_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/managed_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/media_file.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/merchant_center_link.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/mobile_app_category_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/mobile_device_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/mutate_job.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/operating_system_version_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/paid_organic_search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/parental_status_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/payments_account.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/product_bidding_category_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/product_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/recommendation.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/remarketing_action.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/shared_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/shopping_performance_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/topic_constant.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/topic_view.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/user_interest.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/user_list.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/resources/video.proto": label.New("go_googleapis", "google/ads/googleads/v1/resources", "resources_proto"), - "google/ads/googleads/v1/services/account_budget_proposal_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/account_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_ad_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_ad_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_criterion_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_criterion_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_group_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_parameter_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/ad_schedule_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/age_range_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/asset_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/bidding_strategy_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/billing_setup_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_criterion_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_draft_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_experiment_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/campaign_shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/carrier_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/change_status_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/click_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/conversion_action_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/conversion_adjustment_upload_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/conversion_upload_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/custom_interest_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/customer_client_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/customer_client_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/customer_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/customer_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/customer_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/customer_manager_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/customer_negative_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/customer_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/detail_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/display_keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/domain_category_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/dynamic_search_ads_search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/expanded_landing_page_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/extension_feed_item_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/feed_item_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/feed_item_target_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/feed_mapping_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/feed_placeholder_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/gender_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/geo_target_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/geographic_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/google_ads_field_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/google_ads_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/group_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/hotel_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/hotel_performance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/keyword_plan_ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/keyword_plan_campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/keyword_plan_idea_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/keyword_plan_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/keyword_plan_negative_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/keyword_plan_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/label_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/landing_page_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/language_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/location_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/managed_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/media_file_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/merchant_center_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/mobile_app_category_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/mobile_device_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/mutate_job_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/operating_system_version_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/paid_organic_search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/parental_status_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/payments_account_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/product_bidding_category_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/product_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/recommendation_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/remarketing_action_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/shared_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/shopping_performance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/topic_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/topic_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/user_interest_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/user_list_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v1/services/video_service.proto": label.New("go_googleapis", "google/ads/googleads/v1/services", "services_proto"), - "google/ads/googleads/v2/common/ad_asset.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/ad_type_infos.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/asset_types.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/bidding.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/click_location.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/criteria.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/criterion_category_availability.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/custom_parameter.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/dates.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/explorer_auto_optimizer_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/extensions.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/feed_common.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/final_app_url.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/frequency_cap.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/keyword_plan_common.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/matching_function.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/metrics.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/policy.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/real_time_bidding_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/segments.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/simulation.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/tag_snippet.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/targeting_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/text_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/url_collection.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/user_lists.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/common/value.proto": label.New("go_googleapis", "google/ads/googleads/v2/common", "common_proto"), - "google/ads/googleads/v2/enums/access_reason.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/access_role.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/account_budget_proposal_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/account_budget_proposal_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/account_budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_customizer_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_group_ad_rotation_mode.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_group_ad_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_group_criterion_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_group_criterion_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_group_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_network_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_serving_optimization_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_strength.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/ad_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/advertising_channel_sub_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/advertising_channel_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/affiliate_location_feed_relationship_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/affiliate_location_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/age_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/app_campaign_app_store.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/app_campaign_bidding_strategy_goal_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/app_payment_model_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/app_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/app_store.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/app_url_operating_system_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/asset_field_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/asset_performance_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/asset_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/attribution_model.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/bid_modifier_source.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/bidding_source.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/bidding_strategy_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/bidding_strategy_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/billing_setup_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/brand_safety_suitability.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/budget_delivery_method.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/budget_period.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/budget_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/budget_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/call_conversion_reporting_state.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/call_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/callout_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/campaign_criterion_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/campaign_draft_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/campaign_experiment_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/campaign_experiment_traffic_split_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/campaign_experiment_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/campaign_serving_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/campaign_shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/campaign_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/change_status_operation.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/change_status_resource_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/click_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/content_label_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/conversion_action_category.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/conversion_action_counting_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/conversion_action_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/conversion_action_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/conversion_adjustment_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/conversion_attribution_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/conversion_lag_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/conversion_or_adjustment_lag_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/criterion_category_channel_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/criterion_category_locale_availability_mode.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/criterion_system_serving_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/custom_interest_member_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/custom_interest_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/custom_interest_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/custom_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/customer_match_upload_key_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/customer_pay_per_conversion_eligibility_failure_reason.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/data_driven_model_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/day_of_week.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/device.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/display_ad_format_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/display_upload_product_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/distance_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/dsa_page_feed_criterion_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/education_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/extension_setting_device.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/extension_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/external_conversion_source.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_attribute_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_item_quality_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_item_quality_disapproval_reason.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_item_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_item_target_device.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_item_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_item_validation_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_mapping_criterion_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_mapping_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_origin.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/feed_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/flight_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/frequency_cap_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/frequency_cap_level.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/frequency_cap_time_unit.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/gender_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/geo_target_constant_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/geo_targeting_restriction.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/geo_targeting_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/google_ads_field_category.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/google_ads_field_data_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/hotel_date_selection_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/hotel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/hotel_price_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/hotel_rate_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/income_range_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/interaction_event_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/interaction_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/invoice_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/job_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/keyword_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/keyword_plan_competition_level.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/keyword_plan_forecast_interval.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/keyword_plan_network.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/label_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/legacy_app_install_ad_app_store.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/listing_custom_attribute_index.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/listing_group_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/local_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/location_extension_targeting_criterion_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/location_group_radius_units.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/location_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/manager_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/matching_function_context_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/matching_function_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/media_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/merchant_center_link_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/message_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/mime_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/minute_of_hour.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/mobile_device_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/month_of_year.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/mutate_job_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/negative_geo_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/operating_system_version_operator_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/page_one_promoted_strategy_goal.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/parental_status_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/payment_mode.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/placeholder_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/placement_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/policy_approval_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/policy_review_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/policy_topic_entry_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/policy_topic_evidence_destination_mismatch_url_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/policy_topic_evidence_destination_not_working_device.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/positive_geo_target_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/preferred_content_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/price_extension_price_qualifier.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/price_extension_price_unit.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/price_extension_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/price_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/product_bidding_category_level.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/product_bidding_category_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/product_channel.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/product_channel_exclusivity.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/product_condition.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/product_type_level.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/promotion_extension_discount_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/promotion_extension_occasion.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/promotion_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/proximity_radius_units.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/quality_score_bucket.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/reach_plan_ad_length.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/reach_plan_age_range.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/real_estate_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/recommendation_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/search_engine_results_page_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/search_term_match_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/search_term_targeting_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/served_asset_field_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/shared_set_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/shared_set_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/simulation_modification_method.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/simulation_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/sitelink_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/slot.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/spending_limit_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/structured_snippet_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/system_managed_entity_source.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/target_cpa_opt_in_recommendation_goal.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/target_impression_share_location.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/targeting_dimension.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/time_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/tracking_code_page_format.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/tracking_code_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/travel_placeholder_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_interest_taxonomy_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_access_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_closing_reason.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_combined_rule_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_crm_data_source_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_date_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_logical_rule_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_membership_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_number_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_prepopulation_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_rule_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_size_range.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_string_rule_item_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/user_list_type.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/vanity_pharma_display_url_mode.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/vanity_pharma_text.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/webpage_condition_operand.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/enums/webpage_condition_operator.proto": label.New("go_googleapis", "google/ads/googleads/v2/enums", "enums_proto"), - "google/ads/googleads/v2/errors/access_invitation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/account_budget_proposal_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/ad_customizer_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/ad_group_ad_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/ad_group_bid_modifier_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/ad_group_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/ad_group_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/ad_parameter_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/ad_sharing_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/adx_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/asset_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/authentication_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/authorization_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/bidding_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/bidding_strategy_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/billing_setup_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/campaign_budget_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/campaign_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/campaign_draft_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/campaign_experiment_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/campaign_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/campaign_shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/change_status_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/collection_size_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/context_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/conversion_action_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/conversion_adjustment_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/conversion_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/country_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/currency_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/custom_interest_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/customer_client_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/customer_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/customer_feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/customer_manager_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/database_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/date_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/date_range_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/distinct_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/enum_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/errors.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/extension_feed_item_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/extension_setting_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/feed_attribute_reference_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/feed_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/feed_item_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/feed_item_target_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/feed_item_validation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/feed_mapping_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/field_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/field_mask_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/function_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/function_parsing_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/geo_target_constant_suggestion_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/header_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/id_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/image_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/internal_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/invoice_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/keyword_plan_ad_group_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/keyword_plan_campaign_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/keyword_plan_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/keyword_plan_idea_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/keyword_plan_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/keyword_plan_negative_keyword_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/label_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/language_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/list_operation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/manager_link_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/media_bundle_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/media_file_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/media_upload_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/multiplier_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/mutate_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/mutate_job_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/new_resource_creation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/not_empty_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/not_whitelisted_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/null_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/operation_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/operator_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/partial_failure_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/policy_finding_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/policy_validation_parameter_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/policy_violation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/query_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/quota_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/range_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/reach_plan_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/recommendation_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/region_code_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/request_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/resource_access_denied_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/resource_count_limit_exceeded_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/setting_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/shared_criterion_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/shared_set_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/size_limit_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/string_format_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/string_length_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/url_field_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/user_list_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/errors/youtube_video_registration_error.proto": label.New("go_googleapis", "google/ads/googleads/v2/errors", "errors_proto"), - "google/ads/googleads/v2/resources/account_budget.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/account_budget_proposal.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_ad.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_ad_asset_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_ad_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_criterion_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_criterion_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_feed.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_group_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_parameter.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/ad_schedule_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/age_range_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/asset.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/bidding_strategy.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/billing_setup.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_audience_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_bid_modifier.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_budget.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_criterion_simulation.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_draft.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_experiment.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_feed.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/campaign_shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/carrier_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/change_status.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/click_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/conversion_action.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/custom_interest.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/customer.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/customer_client.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/customer_client_link.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/customer_extension_setting.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/customer_feed.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/customer_label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/customer_manager_link.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/customer_negative_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/detail_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/display_keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/distance_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/domain_category.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/dynamic_search_ads_search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/expanded_landing_page_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/extension_feed_item.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/feed.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/feed_item.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/feed_item_target.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/feed_mapping.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/feed_placeholder_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/gender_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/geo_target_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/geographic_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/google_ads_field.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/group_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/hotel_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/hotel_performance_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/invoice.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/keyword_plan.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/keyword_plan_ad_group.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/keyword_plan_campaign.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/keyword_plan_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/keyword_plan_negative_keyword.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/keyword_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/label.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/landing_page_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/language_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/location_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/managed_placement_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/media_file.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/merchant_center_link.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/mobile_app_category_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/mobile_device_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/mutate_job.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/operating_system_version_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/paid_organic_search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/parental_status_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/payments_account.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/product_bidding_category_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/product_group_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/recommendation.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/remarketing_action.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/search_term_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/shared_criterion.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/shared_set.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/shopping_performance_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/topic_constant.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/topic_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/user_interest.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/user_list.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/user_location_view.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/resources/video.proto": label.New("go_googleapis", "google/ads/googleads/v2/resources", "resources_proto"), - "google/ads/googleads/v2/services/account_budget_proposal_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/account_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_ad_asset_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_ad_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_ad_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_criterion_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_criterion_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_group_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_parameter_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_schedule_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/ad_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/age_range_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/asset_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/bidding_strategy_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/billing_setup_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_audience_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_bid_modifier_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_budget_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_criterion_simulation_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_draft_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_experiment_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/campaign_shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/carrier_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/change_status_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/click_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/conversion_action_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/conversion_adjustment_upload_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/conversion_upload_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/custom_interest_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/customer_client_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/customer_client_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/customer_extension_setting_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/customer_feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/customer_label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/customer_manager_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/customer_negative_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/customer_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/detail_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/display_keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/distance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/domain_category_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/dynamic_search_ads_search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/expanded_landing_page_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/extension_feed_item_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/feed_item_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/feed_item_target_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/feed_mapping_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/feed_placeholder_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/feed_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/gender_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/geo_target_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/geographic_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/google_ads_field_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/google_ads_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/group_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/hotel_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/hotel_performance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/invoice_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/keyword_plan_ad_group_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/keyword_plan_campaign_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/keyword_plan_idea_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/keyword_plan_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/keyword_plan_negative_keyword_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/keyword_plan_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/keyword_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/label_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/landing_page_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/language_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/location_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/managed_placement_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/media_file_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/merchant_center_link_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/mobile_app_category_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/mobile_device_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/mutate_job_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/operating_system_version_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/paid_organic_search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/parental_status_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/payments_account_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/product_bidding_category_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/product_group_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/reach_plan_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/recommendation_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/remarketing_action_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/search_term_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/shared_criterion_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/shared_set_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/shopping_performance_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/topic_constant_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/topic_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/user_interest_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/user_list_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/user_location_view_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/services", "services_proto"), - "google/ads/googleads/v2/services/video_service.proto": label.New("go_googleapis", "google/ads/googleads/v2/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/client.proto": label.New("go_googleapis", "google/api", "annotations_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/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/field_behavior.proto": label.New("go_googleapis", "google/api", "annotations_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/resource.proto": label.New("go_googleapis", "google/api", "annotations_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/v1/asset_service.proto": label.New("go_googleapis", "google/cloud/asset/v1", "asset_proto"), - "google/cloud/asset/v1/assets.proto": label.New("go_googleapis", "google/cloud/asset/v1", "asset_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/asset/v1p2beta1/asset_service.proto": label.New("go_googleapis", "google/cloud/asset/v1p2beta1", "asset_proto"), - "google/cloud/asset/v1p2beta1/assets.proto": label.New("go_googleapis", "google/cloud/asset/v1p2beta1", "asset_proto"), - "google/cloud/audit/audit_log.proto": label.New("go_googleapis", "google/cloud/audit", "audit_proto"), - "google/cloud/automl/v1/annotation_payload.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_proto"), - "google/cloud/automl/v1/data_items.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_proto"), - "google/cloud/automl/v1/dataset.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_proto"), - "google/cloud/automl/v1/io.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_proto"), - "google/cloud/automl/v1/model.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_proto"), - "google/cloud/automl/v1/model_evaluation.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_proto"), - "google/cloud/automl/v1/operations.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_proto"), - "google/cloud/automl/v1/prediction_service.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_proto"), - "google/cloud/automl/v1/service.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_proto"), - "google/cloud/automl/v1/translation.proto": label.New("go_googleapis", "google/cloud/automl/v1", "automl_proto"), - "google/cloud/automl/v1beta1/annotation_payload.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"), - "google/cloud/automl/v1beta1/annotation_spec.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/column_spec.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/data_stats.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"), - "google/cloud/automl/v1beta1/data_types.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/detection.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"), - "google/cloud/automl/v1beta1/geometry.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/ranges.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"), - "google/cloud/automl/v1beta1/regression.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/table_spec.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"), - "google/cloud/automl/v1beta1/tables.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"), - "google/cloud/automl/v1beta1/temporal.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/text_extraction.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"), - "google/cloud/automl/v1beta1/text_segment.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"), - "google/cloud/automl/v1beta1/text_sentiment.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/automl/v1beta1/video.proto": label.New("go_googleapis", "google/cloud/automl/v1beta1", "automl_proto"), - "google/cloud/bigquery/datatransfer/v1/datasource.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/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/arrow.proto": label.New("go_googleapis", "google/cloud/bigquery/storage/v1beta1", "storage_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/bigquery/v2/encryption_config.proto": label.New("go_googleapis", "google/cloud/bigquery/v2", "bigquery_proto"), - "google/cloud/bigquery/v2/model.proto": label.New("go_googleapis", "google/cloud/bigquery/v2", "bigquery_proto"), - "google/cloud/bigquery/v2/model_reference.proto": label.New("go_googleapis", "google/cloud/bigquery/v2", "bigquery_proto"), - "google/cloud/bigquery/v2/standard_sql.proto": label.New("go_googleapis", "google/cloud/bigquery/v2", "bigquery_proto"), - "google/cloud/billing/v1/cloud_billing.proto": label.New("go_googleapis", "google/cloud/billing/v1", "billing_proto"), - "google/cloud/binaryauthorization/v1beta1/resources.proto": label.New("go_googleapis", "google/cloud/binaryauthorization/v1beta1", "binaryauthorization_proto"), - "google/cloud/binaryauthorization/v1beta1/service.proto": label.New("go_googleapis", "google/cloud/binaryauthorization/v1beta1", "binaryauthorization_proto"), - "google/cloud/datacatalog/v1beta1/datacatalog.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_proto"), - "google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_proto"), - "google/cloud/datacatalog/v1beta1/schema.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_proto"), - "google/cloud/datacatalog/v1beta1/search.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_proto"), - "google/cloud/datacatalog/v1beta1/table_spec.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_proto"), - "google/cloud/datacatalog/v1beta1/tags.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_proto"), - "google/cloud/datacatalog/v1beta1/timestamps.proto": label.New("go_googleapis", "google/cloud/datacatalog/v1beta1", "datacatalog_proto"), - "google/cloud/datalabeling/v1beta1/annotation.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_proto"), - "google/cloud/datalabeling/v1beta1/annotation_spec_set.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_proto"), - "google/cloud/datalabeling/v1beta1/data_labeling_service.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_proto"), - "google/cloud/datalabeling/v1beta1/data_payloads.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_proto"), - "google/cloud/datalabeling/v1beta1/dataset.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_proto"), - "google/cloud/datalabeling/v1beta1/evaluation.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_proto"), - "google/cloud/datalabeling/v1beta1/evaluation_job.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_proto"), - "google/cloud/datalabeling/v1beta1/human_annotation_config.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_proto"), - "google/cloud/datalabeling/v1beta1/instruction.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_proto"), - "google/cloud/datalabeling/v1beta1/operations.proto": label.New("go_googleapis", "google/cloud/datalabeling/v1beta1", "datalabeling_proto"), - "google/cloud/dataproc/v1/autoscaling_policies.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/v1/operations.proto": label.New("go_googleapis", "google/cloud/dataproc/v1", "dataproc_proto"), - "google/cloud/dataproc/v1/shared.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/autoscaling_policies.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/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/audio_config.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/gcs.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/validation_result.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/document/v1beta1/document.proto": label.New("go_googleapis", "google/cloud/document/v1beta1", "document_proto"), - "google/cloud/document/v1beta1/document_understanding.proto": label.New("go_googleapis", "google/cloud/document/v1beta1", "document_proto"), - "google/cloud/document/v1beta1/geometry.proto": label.New("go_googleapis", "google/cloud/document/v1beta1", "document_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/irm/v1alpha2/incidents.proto": label.New("go_googleapis", "google/cloud/irm/v1alpha2", "irm_proto"), - "google/cloud/irm/v1alpha2/incidents_service.proto": label.New("go_googleapis", "google/cloud/irm/v1alpha2", "irm_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/phishingprotection/v1beta1/phishingprotection.proto": label.New("go_googleapis", "google/cloud/phishingprotection/v1beta1", "phishingprotection_proto"), - "google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto": label.New("go_googleapis", "google/cloud/recaptchaenterprise/v1beta1", "recaptchaenterprise_proto"), - "google/cloud/recommender/v1beta1/recommendation.proto": label.New("go_googleapis", "google/cloud/recommender/v1beta1", "recommender_proto"), - "google/cloud/recommender/v1beta1/recommender_service.proto": label.New("go_googleapis", "google/cloud/recommender/v1beta1", "recommender_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/v1/cloudscheduler.proto": label.New("go_googleapis", "google/cloud/scheduler/v1", "scheduler_proto"), - "google/cloud/scheduler/v1/job.proto": label.New("go_googleapis", "google/cloud/scheduler/v1", "scheduler_proto"), - "google/cloud/scheduler/v1/target.proto": label.New("go_googleapis", "google/cloud/scheduler/v1", "scheduler_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/v1/asset.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_proto"), - "google/cloud/securitycenter/v1/finding.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_proto"), - "google/cloud/securitycenter/v1/organization_settings.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_proto"), - "google/cloud/securitycenter/v1/run_asset_discovery_response.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_proto"), - "google/cloud/securitycenter/v1/security_marks.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_proto"), - "google/cloud/securitycenter/v1/securitycenter_service.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_proto"), - "google/cloud/securitycenter/v1/source.proto": label.New("go_googleapis", "google/cloud/securitycenter/v1", "securitycenter_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/talent/v4beta1/application.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/application_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/batch.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/common.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/company.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/company_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/completion_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/event.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/event_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/filters.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/histogram.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/job.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/job_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/profile.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/profile_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/tenant.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/talent/v4beta1/tenant_service.proto": label.New("go_googleapis", "google/cloud/talent/v4beta1", "talent_proto"), - "google/cloud/tasks/v2/cloudtasks.proto": label.New("go_googleapis", "google/cloud/tasks/v2", "tasks_proto"), - "google/cloud/tasks/v2/queue.proto": label.New("go_googleapis", "google/cloud/tasks/v2", "tasks_proto"), - "google/cloud/tasks/v2/target.proto": label.New("go_googleapis", "google/cloud/tasks/v2", "tasks_proto"), - "google/cloud/tasks/v2/task.proto": label.New("go_googleapis", "google/cloud/tasks/v2", "tasks_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/translate/v3/translation_service.proto": label.New("go_googleapis", "google/cloud/translate/v3", "translate_proto"), - "google/cloud/translate/v3beta1/translation_service.proto": label.New("go_googleapis", "google/cloud/translate/v3beta1", "translate_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/videointelligence/v1p3beta1/video_intelligence.proto": label.New("go_googleapis", "google/cloud/videointelligence/v1p3beta1", "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/vision/v1p4beta1/geometry.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_proto"), - "google/cloud/vision/v1p4beta1/image_annotator.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_proto"), - "google/cloud/vision/v1p4beta1/product_search.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_proto"), - "google/cloud/vision/v1p4beta1/product_search_service.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_proto"), - "google/cloud/vision/v1p4beta1/text_annotation.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_proto"), - "google/cloud/vision/v1p4beta1/web_detection.proto": label.New("go_googleapis", "google/cloud/vision/v1p4beta1", "vision_proto"), - "google/cloud/webrisk/v1beta1/webrisk.proto": label.New("go_googleapis", "google/cloud/webrisk/v1beta1", "webrisk_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/cloud/websecurityscanner/v1beta/crawled_url.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_proto"), - "google/cloud/websecurityscanner/v1beta/finding.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_proto"), - "google/cloud/websecurityscanner/v1beta/finding_addon.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_proto"), - "google/cloud/websecurityscanner/v1beta/finding_type_stats.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_proto"), - "google/cloud/websecurityscanner/v1beta/scan_config.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_proto"), - "google/cloud/websecurityscanner/v1beta/scan_config_error.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_proto"), - "google/cloud/websecurityscanner/v1beta/scan_run.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_proto"), - "google/cloud/websecurityscanner/v1beta/scan_run_error_trace.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_proto"), - "google/cloud/websecurityscanner/v1beta/scan_run_warning_trace.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "websecurityscanner_proto"), - "google/cloud/websecurityscanner/v1beta/web_security_scanner.proto": label.New("go_googleapis", "google/cloud/websecurityscanner/v1beta", "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/v1/containeranalysis.proto": label.New("go_googleapis", "google/devtools/containeranalysis/v1", "containeranalysis_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/download_metadata.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_processing_error.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/resultstore/v2/upload_metadata.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/firebase/fcm/connection/v1alpha1/connection_api.proto": label.New("go_googleapis", "google/firebase/fcm/connection/v1alpha1", "connection_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/geo/type/viewport.proto": label.New("go_googleapis", "google/geo/type", "viewport_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/options.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/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/calendar_period.proto": label.New("go_googleapis", "google/type", "calendarperiod_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/expr.proto": label.New("go_googleapis", "google/type", "expr_proto"), - "google/type/fraction.proto": label.New("go_googleapis", "google/type", "fraction_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/quaternion.proto": label.New("go_googleapis", "google/type", "quaternion_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"), - "grafeas/v1/attestation.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), - "grafeas/v1/build.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), - "grafeas/v1/common.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), - "grafeas/v1/cvss.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), - "grafeas/v1/deployment.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), - "grafeas/v1/discovery.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), - "grafeas/v1/grafeas.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), - "grafeas/v1/image.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), - "grafeas/v1/package.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), - "grafeas/v1/provenance.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), - "grafeas/v1/vulnerability.proto": label.New("go_googleapis", "grafeas/v1", "grafeas_proto"), -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/lang.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/lang.go deleted file mode 100644 index fe009df88db..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/lang.go +++ /dev/null @@ -1,72 +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 proto provides support for protocol buffer rules. -// It generates proto_library rules only (not go_proto_library or any other -// language-specific implementations). -// -// Configuration -// -// Configuration is largely controlled by Mode. In disable mode, proto rules are -// left alone (neither generated nor deleted). In legacy mode, filegroups are -// emitted containing protos. In default mode, proto_library rules are -// emitted. The proto mode may be set with the -proto command line flag or the -// "# gazelle:proto" directive. -// -// The configuration is largely public, and other languages may depend on it. -// For example, go uses Mode to determine whether to generate go_proto_library -// rules and ignore static .pb.go files. -// -// Rule generation -// -// Currently, Gazelle generates at most one proto_library per directory. Protos -// in the same package are grouped together into a proto_library. If there are -// sources for multiple packages, the package name that matches the directory -// name will be chosen; if there is no such package, an error will be printed. -// We expect to provide support for multiple proto_libraries in the future -// when Go has support for multiple packages and we have better rule matching. -// The generated proto_library will be named after the directory, not the -// proto or the package. For example, for foo/bar/baz.proto, a proto_library -// rule will be generated named //foo/bar:bar_proto. -// -// Dependency resolution -// -// proto_library rules are indexed by their srcs attribute. Gazelle attempts -// to resolve proto imports (e.g., import foo/bar/bar.proto) to the -// proto_library that contains the named source file -// (e.g., //foo/bar:bar_proto). If no indexed proto_library provides the source -// file, Gazelle will guess a label, following conventions. -// -// No attempt is made to resolve protos to rules in external repositories, -// since there's no indication that a proto import comes from an external -// repository. In the future, build files in external repos will be indexed, -// so we can support this (#12). -// -// Gazelle has special cases for Well Known Types (i.e., imports of the form -// google/protobuf/*.proto). These are resolved to rules in -// @com_google_protobuf. -package proto - -import "github.com/bazelbuild/bazel-gazelle/language" - -const protoName = "proto" - -type protoLang struct{} - -func (_ *protoLang) Name() string { return protoName } - -func NewLanguage() language.Language { - return &protoLang{} -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/package.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/package.go deleted file mode 100644 index fba05f0c32c..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/package.go +++ /dev/null @@ -1,55 +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 proto - -import "path/filepath" - -// Package contains metadata for a set of .proto files that have the -// same package name. This translates to a proto_library rule. -type Package struct { - Name string - Files map[string]FileInfo - Imports map[string]bool - Options map[string]string - HasServices bool -} - -func newPackage(name string) *Package { - return &Package{ - Name: name, - Files: map[string]FileInfo{}, - Imports: map[string]bool{}, - Options: map[string]string{}, - } -} - -func (p *Package) addFile(info FileInfo) { - p.Files[info.Name] = info - for _, imp := range info.Imports { - p.Imports[imp] = true - } - for _, opt := range info.Options { - p.Options[opt.Key] = opt.Value - } - p.HasServices = p.HasServices || info.HasServices -} - -func (p *Package) addGenFile(dir, name string) { - p.Files[name] = FileInfo{ - Name: name, - Path: filepath.Join(dir, filepath.FromSlash(name)), - } -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/proto.csv b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/proto.csv deleted file mode 100644 index 06bd194c27b..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/proto.csv +++ /dev/null @@ -1,1611 +0,0 @@ -# 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/v1/common/ad_asset.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/ad_type_infos.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/asset_types.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/bidding.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/click_location.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/criteria.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/criterion_category_availability.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/custom_parameter.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/dates.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/explorer_auto_optimizer_setting.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/extensions.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/feed_common.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/final_app_url.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/frequency_cap.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/keyword_plan_common.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/matching_function.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/metrics.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/policy.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/real_time_bidding_setting.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/segments.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/simulation.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/tag_snippet.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/targeting_setting.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/text_label.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/url_collection.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/user_lists.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/common/value.proto,@go_googleapis//google/ads/googleads/v1/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/common,@go_googleapis//google/ads/googleads/v1/common:common_go_proto -google/ads/googleads/v1/enums/access_reason.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/account_budget_proposal_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/account_budget_proposal_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/account_budget_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_customizer_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_group_ad_rotation_mode.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_group_ad_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_group_criterion_approval_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_group_criterion_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_group_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_group_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_network_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_serving_optimization_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_strength.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/ad_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/advertising_channel_sub_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/advertising_channel_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/affiliate_location_feed_relationship_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/affiliate_location_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/age_range_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/app_campaign_app_store.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/app_campaign_bidding_strategy_goal_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/app_payment_model_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/app_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/app_store.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/app_url_operating_system_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/asset_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/attribution_model.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/bid_modifier_source.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/bidding_source.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/bidding_strategy_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/bidding_strategy_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/billing_setup_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/brand_safety_suitability.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/budget_delivery_method.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/budget_period.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/budget_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/budget_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/call_conversion_reporting_state.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/call_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/callout_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/campaign_criterion_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/campaign_draft_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/campaign_experiment_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/campaign_experiment_traffic_split_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/campaign_experiment_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/campaign_serving_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/campaign_shared_set_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/campaign_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/change_status_operation.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/change_status_resource_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/click_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/content_label_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/conversion_action_category.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/conversion_action_counting_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/conversion_action_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/conversion_action_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/conversion_adjustment_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/conversion_attribution_event_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/conversion_lag_bucket.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/conversion_or_adjustment_lag_bucket.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/criterion_category_channel_availability_mode.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/criterion_category_locale_availability_mode.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/criterion_system_serving_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/criterion_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/custom_interest_member_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/custom_interest_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/custom_interest_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/custom_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/customer_match_upload_key_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/customer_pay_per_conversion_eligibility_failure_reason.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/data_driven_model_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/day_of_week.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/device.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/display_ad_format_setting.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/display_upload_product_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/dsa_page_feed_criterion_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/education_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/extension_setting_device.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/extension_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/external_conversion_source.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_attribute_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_item_quality_approval_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_item_quality_disapproval_reason.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_item_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_item_target_device.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_item_target_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_item_validation_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_link_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_mapping_criterion_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_mapping_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_origin.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/feed_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/flight_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/frequency_cap_event_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/frequency_cap_level.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/frequency_cap_time_unit.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/gender_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/geo_target_constant_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/geo_targeting_restriction.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/geo_targeting_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/google_ads_field_category.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/google_ads_field_data_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/hotel_date_selection_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/hotel_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/hotel_rate_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/income_range_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/interaction_event_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/interaction_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/job_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/keyword_match_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/keyword_plan_competition_level.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/keyword_plan_forecast_interval.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/keyword_plan_network.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/label_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/legacy_app_install_ad_app_store.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/listing_custom_attribute_index.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/listing_group_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/local_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/location_extension_targeting_criterion_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/location_group_radius_units.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/location_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/manager_link_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/matching_function_context_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/matching_function_operator.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/media_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/merchant_center_link_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/message_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/mime_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/minute_of_hour.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/mobile_device_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/month_of_year.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/mutate_job_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/negative_geo_target_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/operating_system_version_operator_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/page_one_promoted_strategy_goal.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/parental_status_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/payment_mode.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/placeholder_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/placement_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/policy_approval_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/policy_review_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/policy_topic_entry_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/policy_topic_evidence_destination_mismatch_url_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/policy_topic_evidence_destination_not_working_device.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/positive_geo_target_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/preferred_content_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/price_extension_price_qualifier.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/price_extension_price_unit.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/price_extension_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/price_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/product_bidding_category_level.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/product_bidding_category_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/product_channel.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/product_channel_exclusivity.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/product_condition.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/product_type_level.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/promotion_extension_discount_modifier.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/promotion_extension_occasion.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/promotion_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/proximity_radius_units.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/quality_score_bucket.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/real_estate_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/recommendation_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/search_engine_results_page_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/search_term_match_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/search_term_targeting_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/served_asset_field_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/shared_set_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/shared_set_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/simulation_modification_method.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/simulation_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/sitelink_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/slot.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/spending_limit_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/structured_snippet_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/system_managed_entity_source.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/target_cpa_opt_in_recommendation_goal.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/target_impression_share_location.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/targeting_dimension.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/time_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/tracking_code_page_format.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/tracking_code_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/travel_placeholder_field.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_interest_taxonomy_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_access_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_closing_reason.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_combined_rule_operator.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_crm_data_source_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_date_rule_item_operator.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_logical_rule_operator.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_membership_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_number_rule_item_operator.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_prepopulation_status.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_rule_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_size_range.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_string_rule_item_operator.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/user_list_type.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/vanity_pharma_display_url_mode.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/vanity_pharma_text.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/webpage_condition_operand.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/enums/webpage_condition_operator.proto,@go_googleapis//google/ads/googleads/v1/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/enums,@go_googleapis//google/ads/googleads/v1/enums:enums_go_proto -google/ads/googleads/v1/errors/account_budget_proposal_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/ad_customizer_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/ad_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/ad_group_ad_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/ad_group_bid_modifier_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/ad_group_criterion_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/ad_group_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/ad_group_feed_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/ad_parameter_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/ad_sharing_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/adx_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/asset_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/authentication_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/authorization_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/bidding_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/bidding_strategy_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/billing_setup_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/campaign_budget_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/campaign_criterion_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/campaign_draft_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/campaign_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/campaign_experiment_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/campaign_feed_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/campaign_shared_set_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/change_status_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/collection_size_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/context_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/conversion_action_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/conversion_adjustment_upload_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/conversion_upload_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/country_code_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/criterion_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/custom_interest_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/customer_client_link_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/customer_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/customer_feed_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/customer_manager_link_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/database_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/date_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/date_range_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/distinct_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/enum_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/errors.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/extension_feed_item_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/extension_setting_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/feed_attribute_reference_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/feed_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/feed_item_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/feed_item_target_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/feed_item_validation_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/feed_mapping_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/field_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/field_mask_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/function_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/function_parsing_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/geo_target_constant_suggestion_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/header_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/id_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/image_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/internal_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/keyword_plan_ad_group_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/keyword_plan_campaign_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/keyword_plan_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/keyword_plan_idea_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/keyword_plan_keyword_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/keyword_plan_negative_keyword_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/label_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/language_code_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/list_operation_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/manager_link_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/media_bundle_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/media_file_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/media_upload_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/multiplier_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/mutate_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/mutate_job_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/new_resource_creation_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/not_empty_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/not_whitelisted_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/null_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/operation_access_denied_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/operator_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/partial_failure_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/policy_finding_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/policy_validation_parameter_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/policy_violation_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/query_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/quota_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/range_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/recommendation_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/region_code_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/request_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/resource_access_denied_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/resource_count_limit_exceeded_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/setting_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/shared_criterion_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/shared_set_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/size_limit_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/string_format_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/string_length_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/url_field_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/user_list_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/errors/youtube_video_registration_error.proto,@go_googleapis//google/ads/googleads/v1/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/errors,@go_googleapis//google/ads/googleads/v1/errors:errors_go_proto -google/ads/googleads/v1/resources/account_budget.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/account_budget_proposal.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_ad.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_ad_label.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_audience_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_bid_modifier.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_criterion.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_criterion_label.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_criterion_simulation.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_extension_setting.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_feed.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_label.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_group_simulation.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_parameter.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/ad_schedule_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/age_range_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/asset.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/bidding_strategy.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/billing_setup.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_audience_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_bid_modifier.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_budget.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_criterion.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_criterion_simulation.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_draft.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_experiment.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_extension_setting.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_feed.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_label.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/campaign_shared_set.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/carrier_constant.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/change_status.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/click_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/conversion_action.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/custom_interest.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/customer.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/customer_client.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/customer_client_link.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/customer_extension_setting.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/customer_feed.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/customer_label.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/customer_manager_link.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/customer_negative_criterion.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/detail_placement_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/display_keyword_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/domain_category.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/dynamic_search_ads_search_term_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/expanded_landing_page_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/extension_feed_item.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/feed.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/feed_item.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/feed_item_target.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/feed_mapping.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/feed_placeholder_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/gender_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/geo_target_constant.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/geographic_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/google_ads_field.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/group_placement_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/hotel_group_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/hotel_performance_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/keyword_plan.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/keyword_plan_ad_group.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/keyword_plan_campaign.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/keyword_plan_keyword.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/keyword_plan_negative_keyword.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/keyword_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/label.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/landing_page_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/language_constant.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/location_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/managed_placement_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/media_file.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/merchant_center_link.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/mobile_app_category_constant.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/mobile_device_constant.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/mutate_job.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/operating_system_version_constant.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/paid_organic_search_term_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/parental_status_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/payments_account.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/product_bidding_category_constant.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/product_group_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/recommendation.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/remarketing_action.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/search_term_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/shared_criterion.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/shared_set.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/shopping_performance_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/topic_constant.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/topic_view.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/user_interest.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/user_list.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/resources/video.proto,@go_googleapis//google/ads/googleads/v1/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/resources,@go_googleapis//google/ads/googleads/v1/resources:resources_go_proto -google/ads/googleads/v1/services/account_budget_proposal_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/account_budget_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_ad_label_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_ad_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_audience_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_bid_modifier_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_criterion_label_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_criterion_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_criterion_simulation_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_extension_setting_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_feed_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_label_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_group_simulation_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_parameter_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/ad_schedule_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/age_range_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/asset_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/bidding_strategy_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/billing_setup_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_audience_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_bid_modifier_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_budget_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_criterion_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_criterion_simulation_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_draft_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_experiment_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_extension_setting_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_feed_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_label_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/campaign_shared_set_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/carrier_constant_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/change_status_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/click_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/conversion_action_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/conversion_adjustment_upload_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/conversion_upload_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/custom_interest_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/customer_client_link_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/customer_client_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/customer_extension_setting_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/customer_feed_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/customer_label_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/customer_manager_link_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/customer_negative_criterion_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/customer_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/detail_placement_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/display_keyword_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/domain_category_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/dynamic_search_ads_search_term_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/expanded_landing_page_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/extension_feed_item_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/feed_item_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/feed_item_target_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/feed_mapping_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/feed_placeholder_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/feed_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/gender_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/geo_target_constant_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/geographic_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/google_ads_field_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/google_ads_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/group_placement_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/hotel_group_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/hotel_performance_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/keyword_plan_ad_group_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/keyword_plan_campaign_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/keyword_plan_idea_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/keyword_plan_keyword_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/keyword_plan_negative_keyword_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/keyword_plan_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/keyword_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/label_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/landing_page_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/language_constant_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/location_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/managed_placement_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/media_file_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/merchant_center_link_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/mobile_app_category_constant_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/mobile_device_constant_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/mutate_job_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/operating_system_version_constant_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/paid_organic_search_term_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/parental_status_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/payments_account_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/product_bidding_category_constant_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/product_group_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/recommendation_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/remarketing_action_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/search_term_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/shared_criterion_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/shared_set_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/shopping_performance_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/topic_constant_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/topic_view_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/user_interest_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/user_list_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v1/services/video_service.proto,@go_googleapis//google/ads/googleads/v1/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v1/services,@go_googleapis//google/ads/googleads/v1/services:services_go_proto -google/ads/googleads/v2/common/ad_asset.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/ad_type_infos.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/asset_types.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/bidding.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/click_location.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/criteria.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/criterion_category_availability.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/custom_parameter.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/dates.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/explorer_auto_optimizer_setting.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/extensions.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/feed_common.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/final_app_url.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/frequency_cap.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/keyword_plan_common.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/matching_function.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/metrics.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/policy.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/real_time_bidding_setting.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/segments.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/simulation.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/tag_snippet.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/targeting_setting.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/text_label.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/url_collection.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/user_lists.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/common/value.proto,@go_googleapis//google/ads/googleads/v2/common:common_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/common,@go_googleapis//google/ads/googleads/v2/common:common_go_proto -google/ads/googleads/v2/enums/access_reason.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/access_role.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/account_budget_proposal_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/account_budget_proposal_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/account_budget_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_customizer_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_group_ad_rotation_mode.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_group_ad_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_group_criterion_approval_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_group_criterion_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_group_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_group_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_network_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_serving_optimization_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_strength.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/ad_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/advertising_channel_sub_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/advertising_channel_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/affiliate_location_feed_relationship_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/affiliate_location_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/age_range_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/app_campaign_app_store.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/app_campaign_bidding_strategy_goal_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/app_payment_model_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/app_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/app_store.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/app_url_operating_system_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/asset_field_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/asset_performance_label.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/asset_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/attribution_model.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/bid_modifier_source.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/bidding_source.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/bidding_strategy_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/bidding_strategy_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/billing_setup_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/brand_safety_suitability.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/budget_delivery_method.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/budget_period.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/budget_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/budget_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/call_conversion_reporting_state.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/call_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/callout_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/campaign_criterion_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/campaign_draft_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/campaign_experiment_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/campaign_experiment_traffic_split_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/campaign_experiment_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/campaign_serving_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/campaign_shared_set_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/campaign_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/change_status_operation.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/change_status_resource_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/click_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/content_label_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/conversion_action_category.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/conversion_action_counting_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/conversion_action_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/conversion_action_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/conversion_adjustment_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/conversion_attribution_event_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/conversion_lag_bucket.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/conversion_or_adjustment_lag_bucket.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/criterion_category_channel_availability_mode.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/criterion_category_locale_availability_mode.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/criterion_system_serving_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/criterion_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/custom_interest_member_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/custom_interest_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/custom_interest_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/custom_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/customer_match_upload_key_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/customer_pay_per_conversion_eligibility_failure_reason.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/data_driven_model_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/day_of_week.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/device.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/display_ad_format_setting.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/display_upload_product_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/distance_bucket.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/dsa_page_feed_criterion_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/education_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/extension_setting_device.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/extension_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/external_conversion_source.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_attribute_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_item_quality_approval_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_item_quality_disapproval_reason.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_item_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_item_target_device.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_item_target_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_item_validation_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_link_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_mapping_criterion_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_mapping_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_origin.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/feed_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/flight_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/frequency_cap_event_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/frequency_cap_level.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/frequency_cap_time_unit.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/gender_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/geo_target_constant_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/geo_targeting_restriction.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/geo_targeting_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/google_ads_field_category.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/google_ads_field_data_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/hotel_date_selection_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/hotel_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/hotel_price_bucket.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/hotel_rate_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/income_range_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/interaction_event_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/interaction_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/invoice_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/job_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/keyword_match_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/keyword_plan_competition_level.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/keyword_plan_forecast_interval.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/keyword_plan_network.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/label_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/legacy_app_install_ad_app_store.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/listing_custom_attribute_index.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/listing_group_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/local_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/location_extension_targeting_criterion_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/location_group_radius_units.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/location_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/manager_link_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/matching_function_context_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/matching_function_operator.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/media_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/merchant_center_link_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/message_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/mime_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/minute_of_hour.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/mobile_device_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/month_of_year.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/mutate_job_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/negative_geo_target_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/operating_system_version_operator_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/page_one_promoted_strategy_goal.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/parental_status_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/payment_mode.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/placeholder_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/placement_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/policy_approval_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/policy_review_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/policy_topic_entry_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/policy_topic_evidence_destination_mismatch_url_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/policy_topic_evidence_destination_not_working_device.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/policy_topic_evidence_destination_not_working_dns_error_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/positive_geo_target_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/preferred_content_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/price_extension_price_qualifier.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/price_extension_price_unit.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/price_extension_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/price_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/product_bidding_category_level.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/product_bidding_category_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/product_channel.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/product_channel_exclusivity.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/product_condition.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/product_type_level.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/promotion_extension_discount_modifier.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/promotion_extension_occasion.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/promotion_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/proximity_radius_units.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/quality_score_bucket.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/reach_plan_ad_length.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/reach_plan_age_range.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/real_estate_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/recommendation_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/search_engine_results_page_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/search_term_match_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/search_term_targeting_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/served_asset_field_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/shared_set_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/shared_set_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/simulation_modification_method.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/simulation_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/sitelink_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/slot.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/spending_limit_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/structured_snippet_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/system_managed_entity_source.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/target_cpa_opt_in_recommendation_goal.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/target_impression_share_location.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/targeting_dimension.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/time_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/tracking_code_page_format.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/tracking_code_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/travel_placeholder_field.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_interest_taxonomy_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_access_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_closing_reason.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_combined_rule_operator.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_crm_data_source_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_date_rule_item_operator.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_logical_rule_operator.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_membership_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_number_rule_item_operator.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_prepopulation_status.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_rule_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_size_range.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_string_rule_item_operator.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/user_list_type.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/vanity_pharma_display_url_mode.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/vanity_pharma_text.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/webpage_condition_operand.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/enums/webpage_condition_operator.proto,@go_googleapis//google/ads/googleads/v2/enums:enums_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/enums,@go_googleapis//google/ads/googleads/v2/enums:enums_go_proto -google/ads/googleads/v2/errors/access_invitation_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/account_budget_proposal_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/ad_customizer_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/ad_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/ad_group_ad_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/ad_group_bid_modifier_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/ad_group_criterion_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/ad_group_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/ad_group_feed_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/ad_parameter_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/ad_sharing_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/adx_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/asset_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/authentication_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/authorization_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/bidding_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/bidding_strategy_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/billing_setup_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/campaign_budget_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/campaign_criterion_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/campaign_draft_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/campaign_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/campaign_experiment_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/campaign_feed_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/campaign_shared_set_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/change_status_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/collection_size_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/context_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/conversion_action_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/conversion_adjustment_upload_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/conversion_upload_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/country_code_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/criterion_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/currency_code_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/custom_interest_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/customer_client_link_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/customer_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/customer_feed_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/customer_manager_link_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/database_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/date_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/date_range_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/distinct_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/enum_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/errors.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/extension_feed_item_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/extension_setting_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/feed_attribute_reference_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/feed_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/feed_item_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/feed_item_target_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/feed_item_validation_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/feed_mapping_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/field_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/field_mask_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/function_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/function_parsing_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/geo_target_constant_suggestion_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/header_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/id_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/image_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/internal_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/invoice_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/keyword_plan_ad_group_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/keyword_plan_campaign_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/keyword_plan_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/keyword_plan_idea_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/keyword_plan_keyword_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/keyword_plan_negative_keyword_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/label_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/language_code_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/list_operation_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/manager_link_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/media_bundle_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/media_file_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/media_upload_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/multiplier_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/mutate_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/mutate_job_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/new_resource_creation_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/not_empty_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/not_whitelisted_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/null_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/operation_access_denied_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/operator_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/partial_failure_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/policy_finding_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/policy_validation_parameter_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/policy_violation_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/query_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/quota_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/range_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/reach_plan_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/recommendation_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/region_code_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/request_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/resource_access_denied_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/resource_count_limit_exceeded_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/setting_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/shared_criterion_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/shared_set_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/size_limit_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/string_format_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/string_length_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/url_field_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/user_list_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/errors/youtube_video_registration_error.proto,@go_googleapis//google/ads/googleads/v2/errors:errors_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/errors,@go_googleapis//google/ads/googleads/v2/errors:errors_go_proto -google/ads/googleads/v2/resources/account_budget.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/account_budget_proposal.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_ad.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_ad_asset_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_ad_label.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_audience_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_bid_modifier.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_criterion.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_criterion_label.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_criterion_simulation.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_extension_setting.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_feed.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_label.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_group_simulation.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_parameter.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/ad_schedule_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/age_range_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/asset.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/bidding_strategy.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/billing_setup.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_audience_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_bid_modifier.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_budget.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_criterion.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_criterion_simulation.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_draft.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_experiment.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_extension_setting.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_feed.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_label.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/campaign_shared_set.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/carrier_constant.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/change_status.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/click_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/conversion_action.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/custom_interest.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/customer.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/customer_client.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/customer_client_link.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/customer_extension_setting.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/customer_feed.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/customer_label.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/customer_manager_link.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/customer_negative_criterion.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/detail_placement_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/display_keyword_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/distance_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/domain_category.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/dynamic_search_ads_search_term_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/expanded_landing_page_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/extension_feed_item.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/feed.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/feed_item.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/feed_item_target.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/feed_mapping.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/feed_placeholder_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/gender_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/geo_target_constant.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/geographic_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/google_ads_field.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/group_placement_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/hotel_group_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/hotel_performance_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/invoice.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/keyword_plan.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/keyword_plan_ad_group.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/keyword_plan_campaign.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/keyword_plan_keyword.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/keyword_plan_negative_keyword.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/keyword_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/label.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/landing_page_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/language_constant.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/location_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/managed_placement_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/media_file.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/merchant_center_link.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/mobile_app_category_constant.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/mobile_device_constant.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/mutate_job.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/operating_system_version_constant.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/paid_organic_search_term_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/parental_status_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/payments_account.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/product_bidding_category_constant.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/product_group_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/recommendation.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/remarketing_action.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/search_term_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/shared_criterion.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/shared_set.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/shopping_performance_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/topic_constant.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/topic_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/user_interest.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/user_list.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/user_location_view.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/resources/video.proto,@go_googleapis//google/ads/googleads/v2/resources:resources_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/resources,@go_googleapis//google/ads/googleads/v2/resources:resources_go_proto -google/ads/googleads/v2/services/account_budget_proposal_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/account_budget_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_ad_asset_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_ad_label_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_ad_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_audience_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_bid_modifier_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_criterion_label_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_criterion_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_criterion_simulation_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_extension_setting_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_feed_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_label_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_group_simulation_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_parameter_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_schedule_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/ad_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/age_range_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/asset_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/bidding_strategy_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/billing_setup_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_audience_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_bid_modifier_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_budget_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_criterion_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_criterion_simulation_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_draft_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_experiment_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_extension_setting_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_feed_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_label_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/campaign_shared_set_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/carrier_constant_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/change_status_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/click_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/conversion_action_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/conversion_adjustment_upload_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/conversion_upload_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/custom_interest_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/customer_client_link_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/customer_client_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/customer_extension_setting_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/customer_feed_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/customer_label_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/customer_manager_link_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/customer_negative_criterion_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/customer_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/detail_placement_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/display_keyword_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/distance_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/domain_category_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/dynamic_search_ads_search_term_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/expanded_landing_page_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/extension_feed_item_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/feed_item_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/feed_item_target_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/feed_mapping_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/feed_placeholder_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/feed_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/gender_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/geo_target_constant_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/geographic_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/google_ads_field_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/google_ads_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/group_placement_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/hotel_group_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/hotel_performance_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/invoice_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/keyword_plan_ad_group_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/keyword_plan_campaign_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/keyword_plan_idea_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/keyword_plan_keyword_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/keyword_plan_negative_keyword_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/keyword_plan_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/keyword_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/label_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/landing_page_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/language_constant_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/location_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/managed_placement_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/media_file_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/merchant_center_link_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/mobile_app_category_constant_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/mobile_device_constant_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/mutate_job_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/operating_system_version_constant_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/paid_organic_search_term_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/parental_status_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/payments_account_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/product_bidding_category_constant_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/product_group_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/reach_plan_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/recommendation_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/remarketing_action_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/search_term_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/shared_criterion_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/shared_set_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/shopping_performance_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/topic_constant_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/topic_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/user_interest_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/user_list_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/user_location_view_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/services:services_go_proto -google/ads/googleads/v2/services/video_service.proto,@go_googleapis//google/ads/googleads/v2/services:services_proto,google.golang.org/genproto/googleapis/ads/googleads/v2/services,@go_googleapis//google/ads/googleads/v2/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/client.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/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/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/field_behavior.proto,@go_googleapis//google/api:annotations_proto,google.golang.org/genproto/googleapis/api/annotations,@go_googleapis//google/api:annotations_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/resource.proto,@go_googleapis//google/api:annotations_proto,google.golang.org/genproto/googleapis/api/annotations,@go_googleapis//google/api:annotations_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/v1/asset_service.proto,@go_googleapis//google/cloud/asset/v1:asset_proto,google.golang.org/genproto/googleapis/cloud/asset/v1,@go_googleapis//google/cloud/asset/v1:asset_go_proto -google/cloud/asset/v1/assets.proto,@go_googleapis//google/cloud/asset/v1:asset_proto,google.golang.org/genproto/googleapis/cloud/asset/v1,@go_googleapis//google/cloud/asset/v1:asset_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/asset/v1p2beta1/asset_service.proto,@go_googleapis//google/cloud/asset/v1p2beta1:asset_proto,google.golang.org/genproto/googleapis/cloud/asset/v1p2beta1,@go_googleapis//google/cloud/asset/v1p2beta1:asset_go_proto -google/cloud/asset/v1p2beta1/assets.proto,@go_googleapis//google/cloud/asset/v1p2beta1:asset_proto,google.golang.org/genproto/googleapis/cloud/asset/v1p2beta1,@go_googleapis//google/cloud/asset/v1p2beta1: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/v1/annotation_payload.proto,@go_googleapis//google/cloud/automl/v1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1,@go_googleapis//google/cloud/automl/v1:automl_go_proto -google/cloud/automl/v1/data_items.proto,@go_googleapis//google/cloud/automl/v1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1,@go_googleapis//google/cloud/automl/v1:automl_go_proto -google/cloud/automl/v1/dataset.proto,@go_googleapis//google/cloud/automl/v1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1,@go_googleapis//google/cloud/automl/v1:automl_go_proto -google/cloud/automl/v1/io.proto,@go_googleapis//google/cloud/automl/v1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1,@go_googleapis//google/cloud/automl/v1:automl_go_proto -google/cloud/automl/v1/model.proto,@go_googleapis//google/cloud/automl/v1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1,@go_googleapis//google/cloud/automl/v1:automl_go_proto -google/cloud/automl/v1/model_evaluation.proto,@go_googleapis//google/cloud/automl/v1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1,@go_googleapis//google/cloud/automl/v1:automl_go_proto -google/cloud/automl/v1/operations.proto,@go_googleapis//google/cloud/automl/v1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1,@go_googleapis//google/cloud/automl/v1:automl_go_proto -google/cloud/automl/v1/prediction_service.proto,@go_googleapis//google/cloud/automl/v1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1,@go_googleapis//google/cloud/automl/v1:automl_go_proto -google/cloud/automl/v1/service.proto,@go_googleapis//google/cloud/automl/v1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1,@go_googleapis//google/cloud/automl/v1:automl_go_proto -google/cloud/automl/v1/translation.proto,@go_googleapis//google/cloud/automl/v1:automl_proto,google.golang.org/genproto/googleapis/cloud/automl/v1,@go_googleapis//google/cloud/automl/v1:automl_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/annotation_spec.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/column_spec.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/data_stats.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_types.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/detection.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/geometry.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/ranges.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/regression.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/table_spec.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/tables.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/temporal.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/text_extraction.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_segment.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_sentiment.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/automl/v1beta1/video.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/datasource.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/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/arrow.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/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/bigquery/v2/encryption_config.proto,@go_googleapis//google/cloud/bigquery/v2:bigquery_proto,google.golang.org/genproto/googleapis/cloud/bigquery/v2,@go_googleapis//google/cloud/bigquery/v2:bigquery_go_proto -google/cloud/bigquery/v2/model.proto,@go_googleapis//google/cloud/bigquery/v2:bigquery_proto,google.golang.org/genproto/googleapis/cloud/bigquery/v2,@go_googleapis//google/cloud/bigquery/v2:bigquery_go_proto -google/cloud/bigquery/v2/model_reference.proto,@go_googleapis//google/cloud/bigquery/v2:bigquery_proto,google.golang.org/genproto/googleapis/cloud/bigquery/v2,@go_googleapis//google/cloud/bigquery/v2:bigquery_go_proto -google/cloud/bigquery/v2/standard_sql.proto,@go_googleapis//google/cloud/bigquery/v2:bigquery_proto,google.golang.org/genproto/googleapis/cloud/bigquery/v2,@go_googleapis//google/cloud/bigquery/v2:bigquery_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/binaryauthorization/v1beta1/resources.proto,@go_googleapis//google/cloud/binaryauthorization/v1beta1:binaryauthorization_proto,google.golang.org/genproto/googleapis/cloud/binaryauthorization/v1beta1,@go_googleapis//google/cloud/binaryauthorization/v1beta1:binaryauthorization_go_proto -google/cloud/binaryauthorization/v1beta1/service.proto,@go_googleapis//google/cloud/binaryauthorization/v1beta1:binaryauthorization_proto,google.golang.org/genproto/googleapis/cloud/binaryauthorization/v1beta1,@go_googleapis//google/cloud/binaryauthorization/v1beta1:binaryauthorization_go_proto -google/cloud/datacatalog/v1beta1/datacatalog.proto,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_proto,google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_go_proto -google/cloud/datacatalog/v1beta1/gcs_fileset_spec.proto,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_proto,google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_go_proto -google/cloud/datacatalog/v1beta1/schema.proto,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_proto,google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_go_proto -google/cloud/datacatalog/v1beta1/search.proto,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_proto,google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_go_proto -google/cloud/datacatalog/v1beta1/table_spec.proto,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_proto,google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_go_proto -google/cloud/datacatalog/v1beta1/tags.proto,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_proto,google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_go_proto -google/cloud/datacatalog/v1beta1/timestamps.proto,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_proto,google.golang.org/genproto/googleapis/cloud/datacatalog/v1beta1,@go_googleapis//google/cloud/datacatalog/v1beta1:datacatalog_go_proto -google/cloud/datalabeling/v1beta1/annotation.proto,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_proto,google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_go_proto -google/cloud/datalabeling/v1beta1/annotation_spec_set.proto,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_proto,google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_go_proto -google/cloud/datalabeling/v1beta1/data_labeling_service.proto,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_proto,google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_go_proto -google/cloud/datalabeling/v1beta1/data_payloads.proto,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_proto,google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_go_proto -google/cloud/datalabeling/v1beta1/dataset.proto,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_proto,google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_go_proto -google/cloud/datalabeling/v1beta1/evaluation.proto,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_proto,google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_go_proto -google/cloud/datalabeling/v1beta1/evaluation_job.proto,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_proto,google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_go_proto -google/cloud/datalabeling/v1beta1/human_annotation_config.proto,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_proto,google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_go_proto -google/cloud/datalabeling/v1beta1/instruction.proto,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_proto,google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_go_proto -google/cloud/datalabeling/v1beta1/operations.proto,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_proto,google.golang.org/genproto/googleapis/cloud/datalabeling/v1beta1,@go_googleapis//google/cloud/datalabeling/v1beta1:datalabeling_go_proto -google/cloud/dataproc/v1/autoscaling_policies.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/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/shared.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/autoscaling_policies.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/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/audio_config.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/gcs.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/validation_result.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/document/v1beta1/document.proto,@go_googleapis//google/cloud/document/v1beta1:document_proto,google.golang.org/genproto/googleapis/cloud/document/v1beta1,@go_googleapis//google/cloud/document/v1beta1:document_go_proto -google/cloud/document/v1beta1/document_understanding.proto,@go_googleapis//google/cloud/document/v1beta1:document_proto,google.golang.org/genproto/googleapis/cloud/document/v1beta1,@go_googleapis//google/cloud/document/v1beta1:document_go_proto -google/cloud/document/v1beta1/geometry.proto,@go_googleapis//google/cloud/document/v1beta1:document_proto,google.golang.org/genproto/googleapis/cloud/document/v1beta1,@go_googleapis//google/cloud/document/v1beta1:document_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/irm/v1alpha2/incidents.proto,@go_googleapis//google/cloud/irm/v1alpha2:irm_proto,google.golang.org/genproto/googleapis/cloud/irm/v1alpha2,@go_googleapis//google/cloud/irm/v1alpha2:irm_go_proto -google/cloud/irm/v1alpha2/incidents_service.proto,@go_googleapis//google/cloud/irm/v1alpha2:irm_proto,google.golang.org/genproto/googleapis/cloud/irm/v1alpha2,@go_googleapis//google/cloud/irm/v1alpha2:irm_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/phishingprotection/v1beta1/phishingprotection.proto,@go_googleapis//google/cloud/phishingprotection/v1beta1:phishingprotection_proto,google.golang.org/genproto/googleapis/cloud/phishingprotection/v1beta1,@go_googleapis//google/cloud/phishingprotection/v1beta1:phishingprotection_go_proto -google/cloud/recaptchaenterprise/v1beta1/recaptchaenterprise.proto,@go_googleapis//google/cloud/recaptchaenterprise/v1beta1:recaptchaenterprise_proto,google.golang.org/genproto/googleapis/cloud/recaptchaenterprise/v1beta1,@go_googleapis//google/cloud/recaptchaenterprise/v1beta1:recaptchaenterprise_go_proto -google/cloud/recommender/v1beta1/recommendation.proto,@go_googleapis//google/cloud/recommender/v1beta1:recommender_proto,google.golang.org/genproto/googleapis/cloud/recommender/v1beta1,@go_googleapis//google/cloud/recommender/v1beta1:recommender_go_proto -google/cloud/recommender/v1beta1/recommender_service.proto,@go_googleapis//google/cloud/recommender/v1beta1:recommender_proto,google.golang.org/genproto/googleapis/cloud/recommender/v1beta1,@go_googleapis//google/cloud/recommender/v1beta1:recommender_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/v1/cloudscheduler.proto,@go_googleapis//google/cloud/scheduler/v1:scheduler_proto,google.golang.org/genproto/googleapis/cloud/scheduler/v1,@go_googleapis//google/cloud/scheduler/v1:scheduler_go_proto -google/cloud/scheduler/v1/job.proto,@go_googleapis//google/cloud/scheduler/v1:scheduler_proto,google.golang.org/genproto/googleapis/cloud/scheduler/v1,@go_googleapis//google/cloud/scheduler/v1:scheduler_go_proto -google/cloud/scheduler/v1/target.proto,@go_googleapis//google/cloud/scheduler/v1:scheduler_proto,google.golang.org/genproto/googleapis/cloud/scheduler/v1,@go_googleapis//google/cloud/scheduler/v1:scheduler_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/v1/asset.proto,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_go_proto -google/cloud/securitycenter/v1/finding.proto,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_go_proto -google/cloud/securitycenter/v1/organization_settings.proto,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_go_proto -google/cloud/securitycenter/v1/run_asset_discovery_response.proto,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_go_proto -google/cloud/securitycenter/v1/security_marks.proto,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_go_proto -google/cloud/securitycenter/v1/securitycenter_service.proto,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_go_proto -google/cloud/securitycenter/v1/source.proto,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_proto,google.golang.org/genproto/googleapis/cloud/securitycenter/v1,@go_googleapis//google/cloud/securitycenter/v1:securitycenter_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/talent/v4beta1/application.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/application_service.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/batch.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/common.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/company.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/company_service.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/completion_service.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/event.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/event_service.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/filters.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/histogram.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/job.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/job_service.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/profile.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/profile_service.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/tenant.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/talent/v4beta1/tenant_service.proto,@go_googleapis//google/cloud/talent/v4beta1:talent_proto,google.golang.org/genproto/googleapis/cloud/talent/v4beta1,@go_googleapis//google/cloud/talent/v4beta1:talent_go_proto -google/cloud/tasks/v2/cloudtasks.proto,@go_googleapis//google/cloud/tasks/v2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2,@go_googleapis//google/cloud/tasks/v2:tasks_go_proto -google/cloud/tasks/v2/queue.proto,@go_googleapis//google/cloud/tasks/v2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2,@go_googleapis//google/cloud/tasks/v2:tasks_go_proto -google/cloud/tasks/v2/target.proto,@go_googleapis//google/cloud/tasks/v2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2,@go_googleapis//google/cloud/tasks/v2:tasks_go_proto -google/cloud/tasks/v2/task.proto,@go_googleapis//google/cloud/tasks/v2:tasks_proto,google.golang.org/genproto/googleapis/cloud/tasks/v2,@go_googleapis//google/cloud/tasks/v2: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/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/translate/v3/translation_service.proto,@go_googleapis//google/cloud/translate/v3:translate_proto,google.golang.org/genproto/googleapis/cloud/translate/v3,@go_googleapis//google/cloud/translate/v3:translate_go_proto -google/cloud/translate/v3beta1/translation_service.proto,@go_googleapis//google/cloud/translate/v3beta1:translate_proto,google.golang.org/genproto/googleapis/cloud/translate/v3beta1,@go_googleapis//google/cloud/translate/v3beta1:translate_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/videointelligence/v1p3beta1/video_intelligence.proto,@go_googleapis//google/cloud/videointelligence/v1p3beta1:videointelligence_proto,google.golang.org/genproto/googleapis/cloud/videointelligence/v1p3beta1,@go_googleapis//google/cloud/videointelligence/v1p3beta1: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/vision/v1p4beta1/geometry.proto,@go_googleapis//google/cloud/vision/v1p4beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p4beta1,@go_googleapis//google/cloud/vision/v1p4beta1:vision_go_proto -google/cloud/vision/v1p4beta1/image_annotator.proto,@go_googleapis//google/cloud/vision/v1p4beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p4beta1,@go_googleapis//google/cloud/vision/v1p4beta1:vision_go_proto -google/cloud/vision/v1p4beta1/product_search.proto,@go_googleapis//google/cloud/vision/v1p4beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p4beta1,@go_googleapis//google/cloud/vision/v1p4beta1:vision_go_proto -google/cloud/vision/v1p4beta1/product_search_service.proto,@go_googleapis//google/cloud/vision/v1p4beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p4beta1,@go_googleapis//google/cloud/vision/v1p4beta1:vision_go_proto -google/cloud/vision/v1p4beta1/text_annotation.proto,@go_googleapis//google/cloud/vision/v1p4beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p4beta1,@go_googleapis//google/cloud/vision/v1p4beta1:vision_go_proto -google/cloud/vision/v1p4beta1/web_detection.proto,@go_googleapis//google/cloud/vision/v1p4beta1:vision_proto,google.golang.org/genproto/googleapis/cloud/vision/v1p4beta1,@go_googleapis//google/cloud/vision/v1p4beta1:vision_go_proto -google/cloud/webrisk/v1beta1/webrisk.proto,@go_googleapis//google/cloud/webrisk/v1beta1:webrisk_proto,google.golang.org/genproto/googleapis/cloud/webrisk/v1beta1,@go_googleapis//google/cloud/webrisk/v1beta1:webrisk_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/cloud/websecurityscanner/v1beta/crawled_url.proto,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1beta,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_go_proto -google/cloud/websecurityscanner/v1beta/finding.proto,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1beta,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_go_proto -google/cloud/websecurityscanner/v1beta/finding_addon.proto,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1beta,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_go_proto -google/cloud/websecurityscanner/v1beta/finding_type_stats.proto,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1beta,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_go_proto -google/cloud/websecurityscanner/v1beta/scan_config.proto,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1beta,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_go_proto -google/cloud/websecurityscanner/v1beta/scan_config_error.proto,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1beta,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_go_proto -google/cloud/websecurityscanner/v1beta/scan_run.proto,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1beta,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_go_proto -google/cloud/websecurityscanner/v1beta/scan_run_error_trace.proto,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1beta,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_go_proto -google/cloud/websecurityscanner/v1beta/scan_run_warning_trace.proto,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1beta,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_go_proto -google/cloud/websecurityscanner/v1beta/web_security_scanner.proto,@go_googleapis//google/cloud/websecurityscanner/v1beta:websecurityscanner_proto,google.golang.org/genproto/googleapis/cloud/websecurityscanner/v1beta,@go_googleapis//google/cloud/websecurityscanner/v1beta: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/v1/containeranalysis.proto,@go_googleapis//google/devtools/containeranalysis/v1:containeranalysis_proto,google.golang.org/genproto/googleapis/devtools/containeranalysis/v1,@go_googleapis//google/devtools/containeranalysis/v1: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/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/download_metadata.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_processing_error.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/resultstore/v2/upload_metadata.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/firebase/fcm/connection/v1alpha1/connection_api.proto,@go_googleapis//google/firebase/fcm/connection/v1alpha1:connection_proto,google.golang.org/genproto/googleapis/firebase/fcm/connection/v1alpha1,@go_googleapis//google/firebase/fcm/connection/v1alpha1:connection_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/geo/type/viewport.proto,@go_googleapis//google/geo/type:viewport_proto,google.golang.org/genproto/googleapis/geo/type/viewport,@go_googleapis//google/geo/type:viewport_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/options.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/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/calendar_period.proto,@go_googleapis//google/type:calendarperiod_proto,google.golang.org/genproto/googleapis/type/calendarperiod,@go_googleapis//google/type:calendarperiod_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/expr.proto,@go_googleapis//google/type:expr_proto,google.golang.org/genproto/googleapis/type/expr,@go_googleapis//google/type:expr_go_proto -google/type/fraction.proto,@go_googleapis//google/type:fraction_proto,google.golang.org/genproto/googleapis/type/fraction,@go_googleapis//google/type:fraction_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/quaternion.proto,@go_googleapis//google/type:quaternion_proto,google.golang.org/genproto/googleapis/type/quaternion,@go_googleapis//google/type:quaternion_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 -grafeas/v1/attestation.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto -grafeas/v1/build.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto -grafeas/v1/common.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto -grafeas/v1/cvss.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto -grafeas/v1/deployment.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto -grafeas/v1/discovery.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto -grafeas/v1/grafeas.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto -grafeas/v1/image.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto -grafeas/v1/package.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto -grafeas/v1/provenance.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto -grafeas/v1/vulnerability.proto,@go_googleapis//grafeas/v1:grafeas_proto,google.golang.org/genproto/googleapis/grafeas/v1,@go_googleapis//grafeas/v1:grafeas_go_proto diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/resolve.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/resolve.go deleted file mode 100644 index 9170d2c3225..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/proto/resolve.go +++ /dev/null @@ -1,136 +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 proto - -import ( - "errors" - "fmt" - "log" - "path" - "sort" - "strings" - - "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(prefix, src)} - } - return imports -} - -func (_ *protoLang) Embeds(r *rule.Rule, from label.Label) []label.Label { - return nil -} - -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") - depSet := make(map[string]bool) - for _, imp := range imports { - 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) - depSet[l.String()] = true - } - } - 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) - } -} - -var ( - skipImportError = errors.New("std import") - notFoundError = errors.New("not found") -) - -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 - } else { - return l, nil - } - } - - if l, err := resolveWithIndex(ix, imp, from); err == nil || err == skipImportError { - return l, err - } else if err != notFoundError { - return label.NoLabel, err - } - - rel := path.Dir(imp) - if rel == "." { - rel = "" - } - name := RuleName(rel) - return label.New("", rel, name), nil -} - -func resolveWithIndex(ix *resolve.RuleIndex, imp string, from label.Label) (label.Label, error) { - matches := ix.FindRulesByImport(resolve.ImportSpec{Lang: "proto", Imp: imp}, "proto") - if len(matches) == 0 { - return label.NoLabel, notFoundError - } - if len(matches) > 1 { - return label.NoLabel, fmt.Errorf("multiple rules (%s and %s) may be imported with %q from %s", matches[0].Label, matches[1].Label, imp, from) - } - if matches[0].IsSelfImport(from) { - return label.NoLabel, skipImportError - } - return matches[0].Label, nil -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/language/update.go b/vendor/github.com/bazelbuild/bazel-gazelle/language/update.go deleted file mode 100644 index cebf73a27f0..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/language/update.go +++ /dev/null @@ -1,120 +0,0 @@ -/* 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 language - -import ( - "github.com/bazelbuild/bazel-gazelle/config" - "github.com/bazelbuild/bazel-gazelle/repo" - "github.com/bazelbuild/bazel-gazelle/rule" -) - -// RepoUpdater may be implemented by languages that support updating -// repository rules that provide named libraries. -// -// EXPERIMENTAL: this may change or be removed. -type RepoUpdater interface { - UpdateRepos(args UpdateReposArgs) UpdateReposResult -} - -// UpdateReposArgs contains arguments for RepoUpdater.UpdateRepos. -// Arguments are passed in a struct value so that new fields may be added -// in the future without breaking existing implementations. -// -// EXPERIMENTAL: this may change or be removed. -type UpdateReposArgs struct { - // Config is the configuration for the main workspace. - Config *config.Config - - // Imports is a list of libraries to update. UpdateRepos should return - // repository rules that provide these libraries. It may also return - // repository rules providing transitive dependencies. - Imports []string - - // Cache stores information fetched from the network and ensures that - // the same request isn't made multiple times. - Cache *repo.RemoteCache -} - -// UpdateReposResult contains return values for RepoUpdater.UpdateRepos. -// Results are returned through a struct so that new (optional) fields may be -// added without breaking existing implementations. -// -// EXPERIMENTAL: this may change or be removed. -type UpdateReposResult struct { - // Gen is a list of repository rules that provide libraries named by - // UpdateImportArgs.Imports. These will be merged with existing rules or - // added to WORKSPACE. This list may be shorter or longer than the list - // of imports, since a single repository may provide multiple imports, - // and additional repositories may be needed for transitive dependencies. - Gen []*rule.Rule - - // Error is any fatal error that occurred. Non-fatal errors should be logged. - Error error -} - -// RepoImporter may be implemented by languages that support importing -// repository rules from another build system. -// -// EXPERIMENTAL: this may change or be removed. -type RepoImporter interface { - // CanImport returns whether a given configuration file may be imported - // with this extension. Only one extension may import any given file. - // ImportRepos will not be called unless this returns true. - CanImport(path string) bool - - // ImportRepos generates a list of repository rules by reading a - // configuration file from another build system. - ImportRepos(args ImportReposArgs) ImportReposResult -} - -// ImportReposArgs contains arguments for RepoImporter.ImportRepos. -// Arguments are passed in a struct value so that new fields may be added -// in the future without breaking existing implementations. -// -// EXPERIMENTAL: this may change or be removed. -type ImportReposArgs struct { - // Config is the configuration for the main workspace. - Config *config.Config - - // Path is the name of the configuration file to import. - Path string - - // Prune indicates whether repository rules that are no longer needed - // should be deleted. This means the Empty list in the result should be - // filled in. - Prune bool - - // Cache stores information fetched from the network and ensures that - // the same request isn't made multiple times. - Cache *repo.RemoteCache -} - -// ImportReposResult contains return values for RepoImporter.ImportRepos. -// Results are returned through a struct so that new (optional) fields may -// be added without breaking existing implementations. -// -// EXPERIMENTAL: this may change or be removed. -type ImportReposResult struct { - // Gen is a list of imported repository rules. - Gen []*rule.Rule - - // Empty is a list of repository rules that may be deleted. This should only - // be set if ImportReposArgs.Prune is true. - Empty []*rule.Rule - - // Error is any fatal error that occurred. Non-fatal errors should be logged. - Error error -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/merger/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/merger/BUILD deleted file mode 100644 index f51dfca394a..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/merger/BUILD +++ /dev/null @@ -1,27 +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/kubernetes/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"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/merger/fix.go b/vendor/github.com/bazelbuild/bazel-gazelle/merger/fix.go deleted file mode 100644 index 852b8d67680..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/merger/fix.go +++ /dev/null @@ -1,179 +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 merger - -import ( - "fmt" - "strings" - - "github.com/bazelbuild/bazel-gazelle/rule" -) - -// FixLoads removes loads of unused go rules and adds loads of newly used rules. -// This should be called after FixFile and MergeFile, since symbols -// may be introduced that aren't loaded. -// -// This function calls File.Sync before processing loads. -func FixLoads(f *rule.File, knownLoads []rule.LoadInfo) { - knownFiles := make(map[string]bool) - knownKinds := make(map[string]string) - for _, l := range knownLoads { - knownFiles[l.Name] = true - for _, k := range l.Symbols { - knownKinds[k] = l.Name - } - } - - // Sync the file. We need File.Loads and File.Rules to contain inserted - // statements and not deleted statements. - f.Sync() - - // Scan load statements in the file. Keep track of loads of known files, - // since these may be changed. Keep track of symbols loaded from unknown - // files; we will not add loads for these. - var loads []*rule.Load - otherLoadedKinds := make(map[string]bool) - for _, l := range f.Loads { - if knownFiles[l.Name()] { - loads = append(loads, l) - continue - } - for _, sym := range l.Symbols() { - otherLoadedKinds[sym] = true - } - } - - // Make a map of all the symbols from known files used in this file. - usedKinds := make(map[string]map[string]bool) - for _, r := range f.Rules { - kind := r.Kind() - if file, ok := knownKinds[kind]; ok && !otherLoadedKinds[kind] { - if usedKinds[file] == nil { - usedKinds[file] = make(map[string]bool) - } - usedKinds[file][kind] = true - } - } - - // Fix the load statements. The order is important, so we iterate over - // knownLoads instead of knownFiles. - for _, known := range knownLoads { - file := known.Name - first := true - for _, l := range loads { - if l.Name() != file { - continue - } - if first { - fixLoad(l, file, usedKinds[file], knownKinds) - first = false - } else { - fixLoad(l, file, nil, knownKinds) - } - if l.IsEmpty() { - l.Delete() - } - } - if first { - load := fixLoad(nil, file, usedKinds[file], knownKinds) - if load != nil { - index := newLoadIndex(f, known.After) - load.Insert(f, index) - } - } - } -} - -// fixLoad updates a load statement with the given symbols. If load is nil, -// a new load may be created and returned. Symbols in kinds will be added -// to the load if they're not already present. Known symbols not in kinds -// will be removed if present. Other symbols will be preserved. If load is -// empty, nil is returned. -func fixLoad(load *rule.Load, file string, kinds map[string]bool, knownKinds map[string]string) *rule.Load { - if load == nil { - if len(kinds) == 0 { - return nil - } - load = rule.NewLoad(file) - } - - for k := range kinds { - load.Add(k) - } - for _, k := range load.Symbols() { - if knownKinds[k] != "" && !kinds[k] { - load.Remove(k) - } - } - return load -} - -// newLoadIndex returns the index in stmts where a new load statement should -// be inserted. after is a list of function names that the load should not -// be inserted before. -func newLoadIndex(f *rule.File, after []string) int { - if len(after) == 0 { - return 0 - } - index := 0 - for _, r := range f.Rules { - for _, a := range after { - if r.Kind() == a && r.Index() >= index { - index = r.Index() + 1 - } - } - } - return index -} - -// CheckGazelleLoaded searches the given WORKSPACE file for a repository named -// "bazel_gazelle". If no such repository is found *and* the repo is not -// declared with a directive *and* at least one load statement mentions -// the repository, a descriptive error will be returned. -// -// This should be called after modifications have been made to WORKSPACE -// (i.e., after FixLoads) before writing it to disk. -func CheckGazelleLoaded(f *rule.File) error { - needGazelle := false - for _, l := range f.Loads { - if strings.HasPrefix(l.Name(), "@bazel_gazelle//") { - needGazelle = true - } - } - if !needGazelle { - return nil - } - for _, r := range f.Rules { - if r.Name() == "bazel_gazelle" { - return nil - } - } - for _, d := range f.Directives { - if d.Key != "repo" { - continue - } - if fs := strings.Fields(d.Value); len(fs) > 0 && fs[0] == "bazel_gazelle" { - return nil - } - } - return fmt.Errorf(`%s: error: bazel_gazelle is not declared in WORKSPACE. -Without this repository, Gazelle cannot safely modify the WORKSPACE file. -See the instructions at https://github.com/bazelbuild/bazel-gazelle. -If the bazel_gazelle is declared inside a macro, you can suppress this error -by adding a comment like this to WORKSPACE: - # gazelle:repo bazel_gazelle -`, f.Path) -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/merger/merger.go b/vendor/github.com/bazelbuild/bazel-gazelle/merger/merger.go deleted file mode 100644 index 7993eba071c..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/merger/merger.go +++ /dev/null @@ -1,250 +0,0 @@ -/* Copyright 2016 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 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/rule" -) - -// Phase indicates which attributes should be merged in matching rules. -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 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 { - return kinds[r.Kind()].MergeableAttrs - } else { - return kinds[r.Kind()].ResolveAttrs - } - } - - // Merge empty rules into the file and delete any rules which become empty. - for _, emptyRule := range emptyRules { - if oldRule, _ := Match(oldFile.Rules, emptyRule, kinds[emptyRule.Kind()]); oldRule != nil { - if oldRule.ShouldKeep() { - continue - } - rule.MergeRules(emptyRule, oldRule, getMergeAttrs(emptyRule), oldFile.Path) - if oldRule.IsEmpty(kinds[oldRule.Kind()]) { - oldRule.Delete() - } - } - } - oldFile.Sync() - - // Match generated rules with existing rules in the file. Keep track of - // rules with non-standard names. - matchRules := make([]*rule.Rule, len(genRules)) - matchErrors := make([]error, len(genRules)) - substitutions := make(map[string]string) - for i, genRule := range genRules { - oldRule, err := Match(oldFile.Rules, genRule, kinds[genRule.Kind()]) - if err != nil { - // TODO(jayconrod): add a verbose mode and log errors. They are too chatty - // to print by default. - matchErrors[i] = err - continue - } - matchRules[i] = oldRule - if oldRule != nil { - if oldRule.Name() != genRule.Name() { - substitutions[genRule.Name()] = oldRule.Name() - } - } - } - - // Rename labels in generated rules that refer to other generated rules. - if len(substitutions) > 0 { - for _, genRule := range genRules { - substituteRule(genRule, substitutions, kinds[genRule.Kind()]) - } - } - - // Merge generated rules with existing rules or append to the end of the file. - for i, genRule := range genRules { - if matchErrors[i] != nil { - continue - } - if matchRules[i] == nil { - genRule.Insert(oldFile) - } else { - rule.MergeRules(genRule, matchRules[i], getMergeAttrs(genRule), oldFile.Path) - } - } -} - -// substituteRule replaces local labels (those beginning with ":", referring to -// targets in the same package) according to a substitution map. This is used -// to update generated rules before merging when the corresponding existing -// rules have different names. If substituteRule replaces a string, it returns -// a new expression; it will not modify the original expression. -func substituteRule(r *rule.Rule, substitutions map[string]string, info rule.KindInfo) { - for attr := range info.SubstituteAttrs { - if expr := r.Attr(attr); expr != nil { - expr = rule.MapExprStrings(expr, func(s string) string { - if rename, ok := substitutions[strings.TrimPrefix(s, ":")]; ok { - return ":" + rename - } else { - return s - } - }) - r.SetAttr(attr, expr) - } - } -} - -// Match searches for a rule that can be merged with x in rules. -// -// A rule is considered a match if its kind is equal to x's kind AND either its -// name is equal OR at least one of the attributes in matchAttrs is equal. -// -// If there are no matches, nil and nil are returned. -// -// If a rule has the same name but a different kind, nill and an error -// are returned. -// -// If there is exactly one match, the rule and nil are returned. -// -// If there are multiple matches, match will attempt to disambiguate, based on -// the quality of the match (name match is best, then attribute match in the -// order that attributes are listed). If disambiguation is successful, -// the rule and nil are returned. Otherwise, nil and an error are returned. -func Match(rules []*rule.Rule, x *rule.Rule, info rule.KindInfo) (*rule.Rule, error) { - xname := x.Name() - xkind := x.Kind() - var nameMatches []*rule.Rule - var kindMatches []*rule.Rule - for _, y := range rules { - if xname == y.Name() { - nameMatches = append(nameMatches, y) - } - if xkind == y.Kind() { - kindMatches = append(kindMatches, y) - } - } - - if len(nameMatches) == 1 { - y := nameMatches[0] - if xkind != y.Kind() { - return nil, fmt.Errorf("could not merge %s(%s): a rule of the same name has kind %s", xkind, xname, y.Kind()) - } - return y, nil - } - if len(nameMatches) > 1 { - return nil, fmt.Errorf("could not merge %s(%s): multiple rules have the same name", xkind, xname) - } - - for _, key := range info.MatchAttrs { - var attrMatches []*rule.Rule - xvalue := x.AttrString(key) - if xvalue == "" { - continue - } - for _, y := range kindMatches { - if xvalue == y.AttrString(key) { - attrMatches = append(attrMatches, y) - } - } - if len(attrMatches) == 1 { - return attrMatches[0], nil - } else if len(attrMatches) > 1 { - return nil, fmt.Errorf("could not merge %s(%s): multiple rules have the same attribute %s = %q", xkind, xname, key, xvalue) - } - } - - if info.MatchAny { - if len(kindMatches) == 1 { - return kindMatches[0], nil - } else if len(kindMatches) > 1 { - return nil, fmt.Errorf("could not merge %s(%s): multiple rules have the same kind but different names", xkind, xname) - } - } - - return nil, nil -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/pathtools/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/pathtools/BUILD deleted file mode 100644 index a2d99691f76..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/pathtools/BUILD +++ /dev/null @@ -1,23 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["path.go"], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/bazel-gazelle/pathtools", - importpath = "github.com/bazelbuild/bazel-gazelle/pathtools", - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/pathtools/path.go b/vendor/github.com/bazelbuild/bazel-gazelle/pathtools/path.go deleted file mode 100644 index bdfcbc0db44..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/pathtools/path.go +++ /dev/null @@ -1,111 +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 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 ( - "path" - "path/filepath" - "strings" -) - -// HasPrefix returns whether the slash-separated path p has the given -// prefix. Unlike strings.HasPrefix, this function respects component -// boundaries, so "/home/foo" is not a prefix is "/home/foobar/baz". If the -// prefix is empty, this function always returns true. -func HasPrefix(p, prefix string) bool { - return prefix == "" || p == prefix || strings.HasPrefix(p, prefix+"/") -} - -// TrimPrefix returns p without the provided prefix. If p doesn't start -// with prefix, it returns p unchanged. Unlike strings.HasPrefix, this function -// respects component boundaries (assuming slash-separated paths), so -// TrimPrefix("foo/bar", "foo") returns "baz". -func TrimPrefix(p, prefix string) string { - if prefix == "" { - return p - } - if prefix == p { - return "" - } - return strings.TrimPrefix(p, prefix+"/") -} - -// RelBaseName returns the base name for rel, a slash-separated path relative -// to the repository root. If rel is empty, RelBaseName returns the base name -// of prefix. If prefix is empty, RelBaseName returns the base name of root, -// the absolute file path of the repository root directory. If that's empty -// to, then RelBaseName returns "root". -func RelBaseName(rel, prefix, root string) string { - base := path.Base(rel) - if base == "." || base == "/" { - base = path.Base(prefix) - } - if base == "." || base == "/" { - base = filepath.Base(root) - } - if base == "." || base == "/" { - base = "root" - } - return base -} - -// Index returns the starting index of the string sub within the non-absolute -// slash-separated path p. sub must start and end at component boundaries -// within p. -func Index(p, sub string) int { - if sub == "" { - return 0 - } - p = path.Clean(p) - sub = path.Clean(sub) - if path.IsAbs(sub) { - if HasPrefix(p, sub) { - return 0 - } else { - return -1 - } - } - if p == "" || p == "/" { - return -1 - } - - i := 0 // i is the index of the first byte of a path element - if len(p) > 0 && p[0] == '/' { - i++ - } - for { - suffix := p[i:] - if len(suffix) < len(sub) { - return -1 - } - if suffix[:len(sub)] == sub && (len(suffix) == len(sub) || suffix[len(sub)] == '/') { - return i - } - j := strings.IndexByte(suffix, '/') - if j < 0 { - return -1 - } - i += j + 1 - if i >= len(p) { - return -1 - } - } - return -1 -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/repo/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/repo/BUILD deleted file mode 100644 index 4a49c8fa6e9..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/repo/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "remote.go", - "repo.go", - ], - importmap = "k8s.io/kubernetes/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/golang.org/x/tools/go/vcs:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/repo/remote.go b/vendor/github.com/bazelbuild/bazel-gazelle/repo/remote.go deleted file mode 100644 index e378d6aa523..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/repo/remote.go +++ /dev/null @@ -1,583 +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 repo - -import ( - "bytes" - "encoding/json" - "fmt" - "io/ioutil" - "os" - "os/exec" - "path" - "path/filepath" - "regexp" - "runtime" - "strings" - "sync" - - "github.com/bazelbuild/bazel-gazelle/label" - "github.com/bazelbuild/bazel-gazelle/pathtools" - "golang.org/x/tools/go/vcs" -) - -// RemoteCache stores information about external repositories. The cache may -// be initialized with information about known repositories, i.e., those listed -// in the WORKSPACE file and mentioned on the command line. Other information -// is retrieved over the network. -// -// Public methods of RemoteCache may be slow in cases where a network fetch -// is needed. Public methods may be called concurrently. -// -// TODO(jayconrod): this is very Go-centric. It should be moved to language/go. -// Unfortunately, doing so would break the resolve.Resolver interface. -type RemoteCache struct { - // RepoRootForImportPath is vcs.RepoRootForImportPath by default. It may - // be overridden so that tests may avoid accessing the network. - RepoRootForImportPath func(string, bool) (*vcs.RepoRoot, error) - - // HeadCmd returns the latest commit on the default branch in the given - // repository. This is used by Head. It may be stubbed out for tests. - HeadCmd func(remote, vcs string) (string, error) - - // ModInfo returns the module path and version that provides the package - // with the given import path. This is used by Mod. It may be stubbed - // out for tests. - ModInfo func(importPath string) (modPath string, err error) - - // ModVersionInfo returns the module path, true version, and sum for - // the module that provides the package with the given import path. - // This is used by ModVersion. It may be stubbed out for tests. - ModVersionInfo func(modPath, query string) (version, sum string, err error) - - root, remote, head, mod, modVersion remoteCacheMap - - tmpOnce sync.Once - tmpDir string - tmpErr error -} - -// remoteCacheMap is a thread-safe, idempotent cache. It is used to store -// information which should be fetched over the network no more than once. -// This follows the Memo pattern described in The Go Programming Language, -// section 9.7. -type remoteCacheMap struct { - mu sync.Mutex - cache map[string]*remoteCacheEntry -} - -type remoteCacheEntry struct { - value interface{} - err error - - // ready is nil for entries that were added when the cache was initialized. - // It is non-nil for other entries. It is closed when an entry is ready, - // i.e., the operation loading the entry completed. - ready chan struct{} -} - -type rootValue struct { - root, name string -} - -type remoteValue struct { - remote, vcs string -} - -type headValue struct { - commit, tag string -} - -type modValue struct { - path, name string - known bool -} - -type modVersionValue struct { - path, name, version, sum string -} - -// Repo describes details of a Go repository known in advance. It is used to -// initialize RemoteCache so that some repositories don't need to be looked up. -// -// DEPRECATED: Go-specific details should be removed from RemoteCache, and -// lookup logic should be moved to language/go. This means RemoteCache will -// need to be initialized in a different way. -type Repo struct { - Name, GoPrefix, Remote, VCS string -} - -// NewRemoteCache creates a new RemoteCache with a set of known repositories. -// The Root and Remote methods will return information about repositories listed -// here without accessing the network. However, the Head method will still -// access the network for these repositories to retrieve information about new -// versions. -// -// A cleanup function is also returned. The caller must call this when -// RemoteCache is no longer needed. RemoteCache may write files to a temporary -// directory. This will delete them. -func NewRemoteCache(knownRepos []Repo) (r *RemoteCache, cleanup func() error) { - r = &RemoteCache{ - RepoRootForImportPath: vcs.RepoRootForImportPath, - HeadCmd: defaultHeadCmd, - root: remoteCacheMap{cache: make(map[string]*remoteCacheEntry)}, - remote: remoteCacheMap{cache: make(map[string]*remoteCacheEntry)}, - head: remoteCacheMap{cache: make(map[string]*remoteCacheEntry)}, - mod: remoteCacheMap{cache: make(map[string]*remoteCacheEntry)}, - modVersion: remoteCacheMap{cache: make(map[string]*remoteCacheEntry)}, - } - r.ModInfo = func(importPath string) (string, error) { - return defaultModInfo(r, importPath) - } - r.ModVersionInfo = func(modPath, query string) (string, string, error) { - return defaultModVersionInfo(r, modPath, query) - } - for _, repo := range knownRepos { - r.root.cache[repo.GoPrefix] = &remoteCacheEntry{ - value: rootValue{ - root: repo.GoPrefix, - name: repo.Name, - }, - } - if repo.Remote != "" { - r.remote.cache[repo.GoPrefix] = &remoteCacheEntry{ - value: remoteValue{ - remote: repo.Remote, - vcs: repo.VCS, - }, - } - } - r.mod.cache[repo.GoPrefix] = &remoteCacheEntry{ - value: modValue{ - path: repo.GoPrefix, - name: repo.Name, - known: true, - }, - } - } - - // Augment knownRepos with additional prefixes for - // minimal module compatibility. For example, if repo "com_example_foo_v2" - // has prefix "example.com/foo/v2", map "example.com/foo" to the same - // entry. - // TODO(jayconrod): there should probably be some control over whether - // callers can use these mappings: packages within modules should not be - // allowed to use them. However, we'll return the same result nearly all - // the time, and simpler is better. - for _, repo := range knownRepos { - path := pathWithoutSemver(repo.GoPrefix) - if path == "" || r.root.cache[path] != nil { - continue - } - r.root.cache[path] = r.root.cache[repo.GoPrefix] - if e := r.remote.cache[repo.GoPrefix]; e != nil { - r.remote.cache[path] = e - } - r.mod.cache[path] = r.mod.cache[repo.GoPrefix] - } - - return r, r.cleanup -} - -func (r *RemoteCache) cleanup() error { - if r.tmpDir == "" { - return nil - } - return os.RemoveAll(r.tmpDir) -} - -var gopkginPattern = regexp.MustCompile("^(gopkg.in/(?:[^/]+/)?[^/]+\\.v\\d+)(?:/|$)") - -var knownPrefixes = []struct { - prefix string - missing int -}{ - {prefix: "golang.org/x", missing: 1}, - {prefix: "google.golang.org", missing: 1}, - {prefix: "cloud.google.com", missing: 1}, - {prefix: "github.com", missing: 2}, -} - -// Root returns the portion of an import path that corresponds to the root -// directory of the repository containing the given import path. For example, -// given "golang.org/x/tools/go/loader", this will return "golang.org/x/tools". -// The workspace name of the repository is also returned. This may be a custom -// name set in WORKSPACE, or it may be a generated name based on the root path. -func (r *RemoteCache) Root(importPath string) (root, name string, err error) { - // Try prefixes of the import path in the cache, but don't actually go out - // to vcs yet. We do this before handling known special cases because - // the cache is pre-populated with repository rules, and we want to use their - // names if we can. - prefix := importPath - for { - v, ok, err := r.root.get(prefix) - if ok { - if err != nil { - return "", "", err - } - value := v.(rootValue) - return value.root, value.name, nil - } - - prefix = path.Dir(prefix) - if prefix == "." || prefix == "/" { - break - } - } - - // Try known prefixes. - for _, p := range knownPrefixes { - if pathtools.HasPrefix(importPath, p.prefix) { - rest := pathtools.TrimPrefix(importPath, p.prefix) - var components []string - if rest != "" { - components = strings.Split(rest, "/") - } - if len(components) < p.missing { - return "", "", fmt.Errorf("import path %q is shorter than the known prefix %q", importPath, p.prefix) - } - root = p.prefix - for _, c := range components[:p.missing] { - root = path.Join(root, c) - } - name = label.ImportPathToBazelRepoName(root) - return root, name, nil - } - } - - // gopkg.in is special, and might have either one or two levels of - // missing paths. See http://labix.org/gopkg.in for URL patterns. - if match := gopkginPattern.FindStringSubmatch(importPath); len(match) > 0 { - root = match[1] - name = label.ImportPathToBazelRepoName(root) - return root, name, nil - } - - // Find the prefix using vcs and cache the result. - v, err := r.root.ensure(importPath, func() (interface{}, error) { - res, err := r.RepoRootForImportPath(importPath, false) - if err != nil { - return nil, err - } - return rootValue{res.Root, label.ImportPathToBazelRepoName(res.Root)}, nil - }) - if err != nil { - return "", "", err - } - value := v.(rootValue) - return value.root, value.name, nil -} - -// Remote returns the VCS name and the remote URL for a repository with the -// given root import path. This is suitable for creating new repository rules. -func (r *RemoteCache) Remote(root string) (remote, vcs string, err error) { - v, err := r.remote.ensure(root, func() (interface{}, error) { - repo, err := r.RepoRootForImportPath(root, false) - if err != nil { - return nil, err - } - return remoteValue{remote: repo.Repo, vcs: repo.VCS.Cmd}, nil - }) - if err != nil { - return "", "", err - } - value := v.(remoteValue) - return value.remote, value.vcs, nil -} - -// Head returns the most recent commit id on the default branch and latest -// version tag for the given remote repository. The tag "" is returned if -// no latest version was found. -// -// TODO(jayconrod): support VCS other than git. -// TODO(jayconrod): support version tags. "" is always returned. -func (r *RemoteCache) Head(remote, vcs string) (commit, tag string, err error) { - if vcs != "git" { - return "", "", fmt.Errorf("could not locate recent commit in repo %q with unknown version control scheme %q", remote, vcs) - } - - v, err := r.head.ensure(remote, func() (interface{}, error) { - commit, err := r.HeadCmd(remote, vcs) - if err != nil { - return nil, err - } - return headValue{commit: commit}, nil - }) - if err != nil { - return "", "", err - } - value := v.(headValue) - return value.commit, value.tag, nil -} - -func defaultHeadCmd(remote, vcs string) (string, error) { - switch vcs { - case "local": - return "", nil - - case "git": - // Old versions of git ls-remote exit with code 129 when "--" is passed. - // We'll try to validate the argument here instead. - if strings.HasPrefix(remote, "-") { - return "", fmt.Errorf("remote must not start with '-': %q", remote) - } - cmd := exec.Command("git", "ls-remote", remote, "HEAD") - out, err := cmd.Output() - if err != nil { - var stdErr []byte - if e, ok := err.(*exec.ExitError); ok { - stdErr = e.Stderr - } - return "", fmt.Errorf("git ls-remote for %s : %v : %s", remote, err, stdErr) - } - ix := bytes.IndexByte(out, '\t') - if ix < 0 { - return "", fmt.Errorf("could not parse output for git ls-remote for %q", remote) - } - return string(out[:ix]), nil - - default: - return "", fmt.Errorf("unknown version control system: %s", vcs) - } -} - -// Mod returns the module path for the module that contains the package -// named by importPath. The name of the go_repository rule for the module -// is also returned. For example, calling Mod on "github.com/foo/bar/v2/baz" -// would give the module path "github.com/foo/bar/v2" and the name -// "com_github_foo_bar_v2". -// -// If a known repository *could* provide importPath (because its "importpath" -// is a prefix of importPath), Mod will assume that it does. This may give -// inaccurate results if importPath is in an undeclared nested module. Run -// "gazelle update-repos -from_file=go.mod" first for best results. -// -// If no known repository could provide importPath, Mod will run "go list" to -// find the module. The special patterns that Root uses are ignored. Results are -// cached. Use GOPROXY for faster results. -func (r *RemoteCache) Mod(importPath string) (modPath, name string, err error) { - // Check if any of the known repositories is a prefix. - prefix := importPath - for { - v, ok, err := r.mod.get(prefix) - if ok { - if err != nil { - return "", "", err - } - value := v.(modValue) - if value.known { - return value.path, value.name, nil - } else { - break - } - } - - prefix = path.Dir(prefix) - if prefix == "." || prefix == "/" { - break - } - } - - // Ask "go list". - v, err := r.mod.ensure(importPath, func() (interface{}, error) { - modPath, err := r.ModInfo(importPath) - if err != nil { - return nil, err - } - return modValue{ - path: modPath, - name: label.ImportPathToBazelRepoName(modPath), - }, nil - }) - if err != nil { - return "", "", err - } - value := v.(modValue) - return value.path, value.name, nil -} - -func defaultModInfo(rc *RemoteCache, importPath string) (modPath string, err error) { - rc.initTmp() - if rc.tmpErr != nil { - return "", rc.tmpErr - } - - goTool := findGoTool() - cmd := exec.Command(goTool, "list", "-find", "-f", "{{.Module.Path}}", "--", importPath) - cmd.Dir = rc.tmpDir - cmd.Env = append(os.Environ(), "GO111MODULE=on") - out, err := cmd.Output() - if err != nil { - var stdErr []byte - if e, ok := err.(*exec.ExitError); ok { - stdErr = e.Stderr - } - return "", fmt.Errorf("finding module path for import %s: %v: %s", importPath, err, stdErr) - } - return strings.TrimSpace(string(out)), nil -} - -// ModVersion looks up information about a module at a given version. -// The path must be the module path, not a package within the module. -// The version may be a canonical semantic version, a query like "latest", -// or a branch, tag, or revision name. ModVersion returns the name of -// the repository rule providing the module (if any), the true version, -// and the sum. -func (r *RemoteCache) ModVersion(modPath, query string) (name, version, sum string, err error) { - // Ask "go list". - arg := modPath + "@" + query - v, err := r.modVersion.ensure(arg, func() (interface{}, error) { - version, sum, err := r.ModVersionInfo(modPath, query) - if err != nil { - return nil, err - } - return modVersionValue{ - path: modPath, - version: version, - sum: sum, - }, nil - }) - if err != nil { - return "", "", "", err - } - value := v.(modVersionValue) - - // Try to find the repository name for the module, if there's already - // a repository rule that provides it. - v, ok, err := r.mod.get(modPath) - if ok && err == nil { - name = v.(modValue).name - } else { - name = label.ImportPathToBazelRepoName(modPath) - } - - return name, value.version, value.sum, nil -} - -func defaultModVersionInfo(rc *RemoteCache, modPath, query string) (version, sum string, err error) { - rc.initTmp() - if rc.tmpErr != nil { - return "", "", rc.tmpErr - } - - goTool := findGoTool() - cmd := exec.Command(goTool, "mod", "download", "-json", "--", modPath+"@"+query) - cmd.Dir = rc.tmpDir - cmd.Env = append(os.Environ(), "GO111MODULE=on") - out, err := cmd.Output() - if err != nil { - var stdErr []byte - if e, ok := err.(*exec.ExitError); ok { - stdErr = e.Stderr - } - return "", "", fmt.Errorf("finding module version and sum for %s@%s: %v: %s", modPath, query, err, stdErr) - } - - var result struct{ Version, Sum string } - if err := json.Unmarshal(out, &result); err != nil { - fmt.Println(out) - return "", "", fmt.Errorf("finding module version and sum for %s@%s: invalid output from 'go mod download': %v", modPath, query, err) - } - return result.Version, result.Sum, nil -} - -// get retrieves a value associated with the given key from the cache. ok will -// be true if the key exists in the cache, even if it's in the process of -// being fetched. -func (m *remoteCacheMap) get(key string) (value interface{}, ok bool, err error) { - m.mu.Lock() - e, ok := m.cache[key] - m.mu.Unlock() - if !ok { - return nil, ok, nil - } - if e.ready != nil { - <-e.ready - } - return e.value, ok, e.err -} - -// ensure retreives a value associated with the given key from the cache. If -// the key does not exist in the cache, the load function will be called, -// and its result will be associated with the key. The load function will not -// be called more than once for any key. -func (m *remoteCacheMap) ensure(key string, load func() (interface{}, error)) (interface{}, error) { - m.mu.Lock() - e, ok := m.cache[key] - if !ok { - e = &remoteCacheEntry{ready: make(chan struct{})} - m.cache[key] = e - m.mu.Unlock() - e.value, e.err = load() - close(e.ready) - } else { - m.mu.Unlock() - if e.ready != nil { - <-e.ready - } - } - return e.value, e.err -} - -func (rc *RemoteCache) initTmp() { - rc.tmpOnce.Do(func() { - rc.tmpDir, rc.tmpErr = ioutil.TempDir("", "gazelle-remotecache-") - if rc.tmpErr != nil { - return - } - rc.tmpErr = ioutil.WriteFile(filepath.Join(rc.tmpDir, "go.mod"), []byte(`module gazelle_remote_cache__\n`), 0666) - }) -} - -var semverRex = regexp.MustCompile(`^.*?(/v\d+)(?:/.*)?$`) - -// pathWithoutSemver removes a semantic version suffix from path. -// For example, if path is "example.com/foo/v2/bar", pathWithoutSemver -// will return "example.com/foo/bar". If there is no semantic version suffix, -// "" will be returned. -// TODO(jayconrod): copied from language/go. This whole type should be -// migrated there. -func pathWithoutSemver(path string) string { - m := semverRex.FindStringSubmatchIndex(path) - if m == nil { - return "" - } - v := path[m[2]+2 : m[3]] - if v == "0" || v == "1" { - return "" - } - return path[:m[2]] + path[m[3]:] -} - -// 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. -// -// TODO(jayconrod): copied from language/go (though it was originally in this -// package). Go-specific details should be removed from RemoteCache, and -// this copy should be deleted. -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 -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/repo/repo.go b/vendor/github.com/bazelbuild/bazel-gazelle/repo/repo.go deleted file mode 100644 index e5ce5dff606..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/repo/repo.go +++ /dev/null @@ -1,166 +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 repo provides functionality for managing Go repository rules. -// -// UNSTABLE: The exported APIs in this package may change. In the future, -// language extensions should implement an interface for repository -// rule management. The update-repos command will call interface methods, -// and most if this package's functionality will move to language/go. -// Moving this package to an internal directory would break existing -// extensions, since RemoteCache is referenced through the resolve.Resolver -// interface, which extensions are required to implement. -package repo - -import ( - "fmt" - "os" - "path/filepath" - "strings" - - "github.com/bazelbuild/bazel-gazelle/rule" -) - -type byRuleName []*rule.Rule - -func (s byRuleName) Len() int { return len(s) } -func (s byRuleName) Less(i, j int) bool { return s[i].Name() < s[j].Name() } -func (s byRuleName) Swap(i, j int) { s[i], s[j] = s[j], s[i] } - -// FindExternalRepo attempts to locate the directory where Bazel has fetched -// the external repository with the given name. An error is returned if the -// repository directory cannot be located. -func FindExternalRepo(repoRoot, name string) (string, error) { - // See https://docs.bazel.build/versions/master/output_directories.html - // for documentation on Bazel directory layout. - // We expect the bazel-out symlink in the workspace root directory to point to - // /execroot//bazel-out - // We expect the external repository to be checked out at - // /external/ - // Note that users can change the prefix for most of the Bazel symlinks with - // --symlink_prefix, but this does not include bazel-out. - externalPath := strings.Join([]string{repoRoot, "bazel-out", "..", "..", "..", "external", name}, string(os.PathSeparator)) - cleanPath, err := filepath.EvalSymlinks(externalPath) - if err != nil { - return "", err - } - st, err := os.Stat(cleanPath) - if err != nil { - return "", err - } - if !st.IsDir() { - return "", fmt.Errorf("%s: not a directory", externalPath) - } - return cleanPath, nil -} - -// ListRepositories extracts metadata about repositories declared in a -// file. -func ListRepositories(workspace *rule.File) (repos []*rule.Rule, repoFileMap map[string]*rule.File, err error) { - repoIndexMap := make(map[string]int) - repoFileMap = make(map[string]*rule.File) - for _, repo := range workspace.Rules { - if name := repo.Name(); name != "" { - repos = append(repos, repo) - repoFileMap[name] = workspace - repoIndexMap[name] = len(repos) - 1 - } - } - extraRepos, err := parseRepositoryDirectives(workspace.Directives) - if err != nil { - return nil, nil, err - } - for _, repo := range extraRepos { - if i, ok := repoIndexMap[repo.Name()]; ok { - repos[i] = repo - } else { - repos = append(repos, repo) - } - repoFileMap[repo.Name()] = workspace - } - - for _, d := range workspace.Directives { - switch d.Key { - case "repository_macro": - f, defName, err := parseRepositoryMacroDirective(d.Value) - if err != nil { - return nil, nil, err - } - f = filepath.Join(filepath.Dir(workspace.Path), filepath.Clean(f)) - macroFile, err := rule.LoadMacroFile(f, "", defName) - if err != nil { - return nil, nil, err - } - for _, repo := range macroFile.Rules { - if name := repo.Name(); name != "" { - repos = append(repos, repo) - repoFileMap[name] = macroFile - repoIndexMap[name] = len(repos) - 1 - } - } - extraRepos, err = parseRepositoryDirectives(macroFile.Directives) - if err != nil { - return nil, nil, err - } - for _, repo := range extraRepos { - if i, ok := repoIndexMap[repo.Name()]; ok { - repos[i] = repo - } else { - repos = append(repos, repo) - } - repoFileMap[repo.Name()] = macroFile - } - } - } - return repos, repoFileMap, nil -} - -func parseRepositoryDirectives(directives []rule.Directive) (repos []*rule.Rule, err error) { - for _, d := range directives { - switch d.Key { - case "repository": - vals := strings.Fields(d.Value) - if len(vals) < 2 { - return nil, fmt.Errorf("failure parsing repository: %s, expected repository kind and attributes", d.Value) - } - kind := vals[0] - r := rule.NewRule(kind, "") - for _, val := range vals[1:] { - kv := strings.SplitN(val, "=", 2) - if len(kv) != 2 { - return nil, fmt.Errorf("failure parsing repository: %s, expected format for attributes is attr1_name=attr1_value", d.Value) - } - r.SetAttr(kv[0], kv[1]) - } - if r.Name() == "" { - return nil, fmt.Errorf("failure parsing repository: %s, expected a name attribute for the given repository", d.Value) - } - repos = append(repos, r) - } - } - return repos, nil -} - -func parseRepositoryMacroDirective(directive string) (string, string, error) { - vals := strings.Split(directive, "%") - if len(vals) != 2 { - return "", "", fmt.Errorf("Failure parsing repository_macro: %s, expected format is macroFile%%defName", directive) - } - f := vals[0] - if strings.HasPrefix(f, "..") { - return "", "", fmt.Errorf("Failure parsing repository_macro: %s, macro file path %s should not start with \"..\"", directive, f) - } - return f, vals[1], nil -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/resolve/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/resolve/BUILD deleted file mode 100644 index 9877c35ef07..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/resolve/BUILD +++ /dev/null @@ -1,32 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "config.go", - "index.go", - ], - importmap = "k8s.io/kubernetes/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", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/resolve/config.go b/vendor/github.com/bazelbuild/bazel-gazelle/resolve/config.go deleted file mode 100644 index 27d38955c53..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/resolve/config.go +++ /dev/null @@ -1,115 +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 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 -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/resolve/index.go b/vendor/github.com/bazelbuild/bazel-gazelle/resolve/index.go deleted file mode 100644 index a02d15c6ac7..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/resolve/index.go +++ /dev/null @@ -1,246 +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 resolve - -import ( - "log" - - "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 -// the library. Lang is the language in which the import string appears (this -// should match Resolver.Name). -type ImportSpec struct { - Lang, Imp string -} - -// Resolver is an interface that language extensions can implement to resolve -// dependencies in rules they generate. -type Resolver interface { - // Name returns the name of the language. This should be a prefix of the - // kinds of rules generated by the language, e.g., "go" for the Go extension - // since it generates "go_library" rules. - Name() string - - // Imports returns a list of ImportSpecs that can be used to import the rule - // r. This is used to populate RuleIndex. - // - // If nil is returned, the rule will not be indexed. If any non-nil slice is - // returned, including an empty slice, the rule will be indexed. - Imports(c *config.Config, r *rule.Rule, f *rule.File) []ImportSpec - - // Embeds returns a list of labels of rules that the given rule embeds. If - // a rule is embedded by another importable rule of the same language, only - // the embedding rule will be indexed. The embedding rule will inherit - // the imports of the embedded rule. - Embeds(r *rule.Rule, from label.Label) []label.Label - - // Resolve translates imported libraries for a given rule into Bazel - // 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 - mrslv func(r *rule.Rule, pkgRel string) 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. - importedAs []ImportSpec - - // embeds is the transitive closure of labels for rules that this rule embeds - // (as determined by the Embeds method). This only includes rules in the same - // language (i.e., it includes a go_library embedding a go_proto_library, but - // not a go_proto_library embedding a proto_library). - embeds []label.Label - - // embedded indicates whether another rule of the same language embeds this - // rule. Embedded rules should not be indexed. - embedded bool - - didCollectEmbeds bool -} - -// NewRuleIndex creates a new index. -// -// kindToResolver is a map from rule kinds (for example, "go_library") to -// Resolvers that support those kinds. -func NewRuleIndex(mrslv func(r *rule.Rule, pkgRel string) Resolver) *RuleIndex { - return &RuleIndex{ - labelMap: make(map[label.Label]*ruleRecord), - mrslv: mrslv, - } -} - -// AddRule adds a rule r to the index. The rule will only be indexed if there -// is a known resolver for the rule's kind and Resolver.Imports returns a -// non-nil slice. -// -// 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 := ix.mrslv(r, f.Pkg); rslv != nil { - imps = rslv.Imports(c, r, f) - } - // If imps == nil, the rule is not importable. If imps is the empty slice, - // it may still be importable if it embeds importable libraries. - if imps == nil { - return - } - - record := &ruleRecord{ - rule: r, - label: label.New(c.RepoName, f.Pkg, r.Name()), - file: f, - importedAs: imps, - } - if _, ok := ix.labelMap[record.label]; ok { - log.Printf("multiple rules found with label %s", record.label) - return - } - ix.rules = append(ix.rules, record) - ix.labelMap[record.label] = record -} - -// Finish constructs the import index and performs any other necessary indexing -// actions after all rules have been added. This step is necessary because -// a rule may be indexed differently based on what rules are added later. -// -// Finish must be called after all AddRule calls and before any -// FindRulesByImport calls. -func (ix *RuleIndex) Finish() { - for _, r := range ix.rules { - ix.collectEmbeds(r) - } - ix.buildImportIndex() -} - -func (ix *RuleIndex) collectEmbeds(r *ruleRecord) { - if r.didCollectEmbeds { - return - } - resolver := ix.mrslv(r.rule, r.file.Pkg) - r.didCollectEmbeds = true - embedLabels := resolver.Embeds(r.rule, r.label) - r.embeds = embedLabels - for _, e := range embedLabels { - er, ok := ix.findRuleByLabel(e, r.label) - if !ok { - continue - } - ix.collectEmbeds(er) - if resolver == ix.mrslv(er.rule, er.file.Pkg) { - er.embedded = true - r.embeds = append(r.embeds, er.embeds...) - } - r.importedAs = append(r.importedAs, er.importedAs...) - } -} - -// buildImportIndex constructs the map used by FindRulesByImport. -func (ix *RuleIndex) buildImportIndex() { - ix.importMap = make(map[ImportSpec][]*ruleRecord) - for _, r := range ix.rules { - if r.embedded { - continue - } - indexed := make(map[ImportSpec]bool) - for _, imp := range r.importedAs { - if indexed[imp] { - continue - } - indexed[imp] = true - ix.importMap[imp] = append(ix.importMap[imp], r) - } - } -} - -func (ix *RuleIndex) findRuleByLabel(label label.Label, from label.Label) (*ruleRecord, bool) { - label = label.Abs(from.Repo, from.Pkg) - r, ok := ix.labelMap[label] - return r, ok -} - -type FindResult struct { - // Label is the absolute label (including repository and package name) for - // a matched rule. - Label label.Label - - // 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. - Embeds []label.Label -} - -// FindRulesByImport attempts to resolve an import string to a rule record. -// imp is the import to resolve (which includes the target language). lang is -// the language of the rule with the dependency (for example, in -// go_proto_library, imp will have ProtoLang and lang will be GoLang). -// from is the rule which is doing the dependency. This is used to check -// vendoring visibility and to check for self-imports. -// -// FindRulesByImport returns a list of rules, since any number of rules may -// provide the same import. Callers may need to resolve ambiguities using -// language-specific heuristics. -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.mrslv(m.rule, "").Name() != lang { - continue - } - results = append(results, FindResult{ - Label: m.label, - Embeds: m.embeds, - }) - } - return results -} - -// IsSelfImport returns true if the result's label matches the given label -// or the result's rule transitively embeds the rule with the given label. -// Self imports cause cyclic dependencies, so the caller may want to omit -// the dependency or report an error. -func (r FindResult) IsSelfImport(from label.Label) bool { - if from.Equal(r.Label) { - return true - } - for _, e := range r.Embeds { - if from.Equal(e) { - return true - } - } - return false -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/rule/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/rule/BUILD deleted file mode 100644 index 63c69609495..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/rule/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "directives.go", - "expr.go", - "merge.go", - "platform.go", - "platform_strings.go", - "rule.go", - "sort_labels.go", - "types.go", - "value.go", - ], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/bazel-gazelle/rule", - importpath = "github.com/bazelbuild/bazel-gazelle/rule", - visibility = ["//visibility:public"], - deps = [ - "//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", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/rule/directives.go b/vendor/github.com/bazelbuild/bazel-gazelle/rule/directives.go deleted file mode 100644 index f5ba580be0e..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/rule/directives.go +++ /dev/null @@ -1,75 +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 rule - -import ( - "regexp" - - bzl "github.com/bazelbuild/buildtools/build" -) - -// Directive is a key-value pair extracted from a top-level comment in -// a build file. Directives have the following format: -// -// # gazelle:key value -// -// Keys may not contain spaces. Values may be empty and may contain spaces, -// but surrounding space is trimmed. -type Directive struct { - Key, Value string -} - -// TODO(jayconrod): annotation directives will apply to an individual rule. -// They must appear in the block of comments above that rule. - -// ParseDirectives scans f for Gazelle directives. The full list of directives -// is returned. Errors are reported for unrecognized directives and directives -// out of place (after the first statement). -func ParseDirectives(f *bzl.File) []Directive { - return parseDirectives(f.Stmt) -} - -// ParseDirectivesFromMacro scans a macro body for Gazelle directives. The -// full list of directives is returned. Errors are reported for unrecognized -// directives and directives out of place (after the first statement). -func ParseDirectivesFromMacro(f *bzl.DefStmt) []Directive { - return parseDirectives(f.Body) -} - -func parseDirectives(stmt []bzl.Expr) []Directive { - var directives []Directive - parseComment := func(com bzl.Comment) { - match := directiveRe.FindStringSubmatch(com.Token) - if match == nil { - return - } - key, value := match[1], match[2] - directives = append(directives, Directive{key, value}) - } - - for _, s := range stmt { - coms := s.Comment() - for _, com := range coms.Before { - parseComment(com) - } - for _, com := range coms.After { - parseComment(com) - } - } - return directives -} - -var directiveRe = regexp.MustCompile(`^#\s*gazelle:(\w+)\s*(.*?)\s*$`) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/rule/expr.go b/vendor/github.com/bazelbuild/bazel-gazelle/rule/expr.go deleted file mode 100644 index cd2fff0e273..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/rule/expr.go +++ /dev/null @@ -1,354 +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 rule - -import ( - "fmt" - "log" - "strings" - - "github.com/bazelbuild/bazel-gazelle/label" - bzl "github.com/bazelbuild/buildtools/build" -) - -// MapExprStrings applies a function to string sub-expressions within e. -// An expression containing the results with the same structure as e is -// returned. -func MapExprStrings(e bzl.Expr, f func(string) string) bzl.Expr { - if e == nil { - return nil - } - switch expr := e.(type) { - case *bzl.StringExpr: - s := f(expr.Value) - if s == "" { - return nil - } - ret := *expr - ret.Value = s - return &ret - - case *bzl.ListExpr: - var list []bzl.Expr - for _, elem := range expr.List { - elem = MapExprStrings(elem, f) - if elem != nil { - list = append(list, elem) - } - } - if len(list) == 0 && len(expr.List) > 0 { - return nil - } - ret := *expr - ret.List = list - return &ret - - case *bzl.DictExpr: - var cases []bzl.Expr - isEmpty := true - for _, kv := range expr.List { - keyval, ok := kv.(*bzl.KeyValueExpr) - if !ok { - log.Panicf("unexpected expression in generated imports dict: %#v", kv) - } - value := MapExprStrings(keyval.Value, f) - if value != nil { - cases = append(cases, &bzl.KeyValueExpr{Key: keyval.Key, Value: value}) - if key, ok := keyval.Key.(*bzl.StringExpr); !ok || key.Value != "//conditions:default" { - isEmpty = false - } - } - } - if isEmpty { - return nil - } - ret := *expr - ret.List = cases - return &ret - - case *bzl.CallExpr: - 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) - if arg == nil { - return nil - } - call := *expr - call.List[0] = arg - return &call - - case *bzl.BinaryExpr: - x := MapExprStrings(expr.X, f) - y := MapExprStrings(expr.Y, f) - if x == nil { - return y - } - if y == nil { - return x - } - binop := *expr - binop.X = x - binop.Y = y - return &binop - - default: - return nil - } -} - -// FlattenExpr takes an expression that may have been generated from -// PlatformStrings and returns its values in a flat, sorted, de-duplicated -// list. Comments are accumulated and de-duplicated across duplicate -// expressions. If the expression could not have been generted by -// PlatformStrings, the expression will be returned unmodified. -func FlattenExpr(e bzl.Expr) bzl.Expr { - ps, err := extractPlatformStringsExprs(e) - if err != nil { - return e - } - - ls := makeListSquasher() - addElem := func(e bzl.Expr) bool { - s, ok := e.(*bzl.StringExpr) - if !ok { - return false - } - ls.add(s) - return true - } - addList := func(e bzl.Expr) bool { - l, ok := e.(*bzl.ListExpr) - if !ok { - return false - } - for _, elem := range l.List { - if !addElem(elem) { - return false - } - } - return true - } - addDict := func(d *bzl.DictExpr) bool { - for _, kv := range d.List { - if !addList(kv.(*bzl.KeyValueExpr).Value) { - return false - } - } - return true - } - - if ps.generic != nil { - if !addList(ps.generic) { - return e - } - } - for _, d := range []*bzl.DictExpr{ps.os, ps.arch, ps.platform} { - if d == nil { - continue - } - if !addDict(d) { - return e - } - } - - return ls.list() -} - -func isScalar(e bzl.Expr) bool { - switch e.(type) { - case *bzl.StringExpr, *bzl.LiteralExpr, *bzl.Ident: - return true - default: - return false - } -} - -func dictEntryKeyValue(e bzl.Expr) (string, *bzl.ListExpr, error) { - kv, ok := e.(*bzl.KeyValueExpr) - if !ok { - return "", nil, fmt.Errorf("dict entry was not a key-value pair: %#v", e) - } - k, ok := kv.Key.(*bzl.StringExpr) - if !ok { - return "", nil, fmt.Errorf("dict key was not string: %#v", kv.Key) - } - v, ok := kv.Value.(*bzl.ListExpr) - if !ok { - return "", nil, fmt.Errorf("dict value was not list: %#v", kv.Value) - } - return k.Value, v, nil -} - -func stringValue(e bzl.Expr) string { - s, ok := e.(*bzl.StringExpr) - if !ok { - return "" - } - return s.Value -} - -// platformStringsExprs is a set of sub-expressions that match the structure -// of package.PlatformStrings. ExprFromValue produces expressions that -// follow this structure for srcs, deps, and other attributes, so this matches -// all non-scalar expressions generated by Gazelle. -// -// The matched expression has the form: -// -// [] + select({}) + select({}) + select({}) -// -// The four collections may appear in any order, and some or all of them may -// be omitted (all fields are nil for a nil expression). -type platformStringsExprs struct { - generic *bzl.ListExpr - os, arch, platform *bzl.DictExpr -} - -// extractPlatformStringsExprs matches an expression and attempts to extract -// sub-expressions in platformStringsExprs. The sub-expressions can then be -// merged with corresponding sub-expressions. Any field in the returned -// structure may be nil. An error is returned if the given expression does -// not follow the pattern described by platformStringsExprs. -func extractPlatformStringsExprs(expr bzl.Expr) (platformStringsExprs, error) { - var ps platformStringsExprs - if expr == nil { - return ps, nil - } - - // Break the expression into a sequence of expressions combined with +. - var parts []bzl.Expr - for { - binop, ok := expr.(*bzl.BinaryExpr) - if !ok { - parts = append(parts, expr) - break - } - parts = append(parts, binop.Y) - expr = binop.X - } - - // Process each part. They may be in any order. - for _, part := range parts { - switch part := part.(type) { - case *bzl.ListExpr: - if ps.generic != nil { - return platformStringsExprs{}, fmt.Errorf("expression could not be matched: multiple list expressions") - } - ps.generic = part - - case *bzl.CallExpr: - 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) - if !ok { - return platformStringsExprs{}, fmt.Errorf("expression could not be matched: select argument not dict") - } - var dict **bzl.DictExpr - for _, item := range arg.List { - kv := item.(*bzl.KeyValueExpr) // parser guarantees this - k, ok := kv.Key.(*bzl.StringExpr) - if !ok { - return platformStringsExprs{}, fmt.Errorf("expression could not be matched: dict keys are not all strings") - } - if k.Value == "//conditions:default" { - continue - } - key, err := label.Parse(k.Value) - if err != nil { - return platformStringsExprs{}, fmt.Errorf("expression could not be matched: dict key is not label: %q", k.Value) - } - if KnownOSSet[key.Name] { - dict = &ps.os - break - } - if KnownArchSet[key.Name] { - dict = &ps.arch - break - } - osArch := strings.Split(key.Name, "_") - if len(osArch) != 2 || !KnownOSSet[osArch[0]] || !KnownArchSet[osArch[1]] { - return platformStringsExprs{}, fmt.Errorf("expression could not be matched: dict key contains unknown platform: %q", k.Value) - } - dict = &ps.platform - break - } - if dict == nil { - // We could not identify the dict because it's empty or only contains - // //conditions:default. We'll call it the platform dict to avoid - // dropping it. - dict = &ps.platform - } - if *dict != nil { - return platformStringsExprs{}, fmt.Errorf("expression could not be matched: multiple selects that are either os-specific, arch-specific, or platform-specific") - } - *dict = arg - } - } - return ps, nil -} - -// makePlatformStringsExpr constructs a single expression from the -// sub-expressions in ps. -func makePlatformStringsExpr(ps platformStringsExprs) bzl.Expr { - makeSelect := func(dict *bzl.DictExpr) bzl.Expr { - return &bzl.CallExpr{ - X: &bzl.Ident{Name: "select"}, - List: []bzl.Expr{dict}, - } - } - forceMultiline := func(e bzl.Expr) { - switch e := e.(type) { - case *bzl.ListExpr: - e.ForceMultiLine = true - case *bzl.CallExpr: - e.List[0].(*bzl.DictExpr).ForceMultiLine = true - } - } - - var parts []bzl.Expr - if ps.generic != nil { - parts = append(parts, ps.generic) - } - if ps.os != nil { - parts = append(parts, makeSelect(ps.os)) - } - if ps.arch != nil { - parts = append(parts, makeSelect(ps.arch)) - } - if ps.platform != nil { - parts = append(parts, makeSelect(ps.platform)) - } - - if len(parts) == 0 { - return nil - } - if len(parts) == 1 { - return parts[0] - } - expr := parts[0] - forceMultiline(expr) - for _, part := range parts[1:] { - forceMultiline(part) - expr = &bzl.BinaryExpr{ - Op: "+", - X: expr, - Y: part, - } - } - return expr -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/rule/merge.go b/vendor/github.com/bazelbuild/bazel-gazelle/rule/merge.go deleted file mode 100644 index 9a76e979a79..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/rule/merge.go +++ /dev/null @@ -1,489 +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 rule - -import ( - "errors" - "fmt" - "log" - "sort" - - bzl "github.com/bazelbuild/buildtools/build" -) - -// MergeRules copies information from src into dst, usually discarding -// information in dst when they have the same attributes. -// -// If dst is marked with a "# keep" comment, either above the rule or as -// a suffix, nothing will be changed. -// -// If src has an attribute that is not in dst, it will be copied into dst. -// -// If src and dst have the same attribute and the attribute is mergeable and the -// attribute in dst is not marked with a "# keep" comment, values in the dst -// attribute not marked with a "# keep" comment will be dropped, and values from -// src will be copied in. -// -// If dst has an attribute not in src, and the attribute is mergeable and not -// marked with a "# keep" comment, values in the attribute not marked with -// a "# keep" comment will be dropped. If the attribute is empty afterward, -// it will be deleted. -func MergeRules(src, dst *Rule, mergeable map[string]bool, filename string) { - if dst.ShouldKeep() { - return - } - - // Process attributes that are in dst but not in src. - for key, dstAttr := range dst.attrs { - if _, ok := src.attrs[key]; ok || !mergeable[key] || ShouldKeep(dstAttr) { - continue - } - dstValue := dstAttr.RHS - if mergedValue, err := mergeExprs(nil, dstValue); err != nil { - start, end := dstValue.Span() - log.Printf("%s:%d.%d-%d.%d: could not merge expression", filename, start.Line, start.LineRune, end.Line, end.LineRune) - } else if mergedValue == nil { - dst.DelAttr(key) - } else { - dst.SetAttr(key, mergedValue) - } - } - - // Merge attributes from src into dst. - for key, srcAttr := range src.attrs { - srcValue := srcAttr.RHS - if dstAttr, ok := dst.attrs[key]; !ok { - dst.SetAttr(key, srcValue) - } else if mergeable[key] && !ShouldKeep(dstAttr) { - dstValue := dstAttr.RHS - if mergedValue, err := mergeExprs(srcValue, dstValue); err != nil { - start, end := dstValue.Span() - log.Printf("%s:%d.%d-%d.%d: could not merge expression", filename, start.Line, start.LineRune, end.Line, end.LineRune) - } else { - dst.SetAttr(key, mergedValue) - } - } - } -} - -// mergeExprs combines information from src and dst and returns a merged -// expression. dst may be modified during this process. The returned expression -// may be different from dst when a structural change is needed. -// -// The following kinds of expressions are recognized. -// -// * nil -// * strings (can only be merged with strings) -// * lists of strings -// * a call to select with a dict argument. The dict keys must be strings, -// and the values must be lists of strings. -// * a list of strings combined with a select call using +. The list must -// be the left operand. -// -// An error is returned if the expressions can't be merged, for example -// because they are not in one of the above formats. -func mergeExprs(src, dst bzl.Expr) (bzl.Expr, error) { - if ShouldKeep(dst) { - return nil, nil - } - if src == nil && (dst == nil || isScalar(dst)) { - return nil, nil - } - if isScalar(src) { - return src, nil - } - - srcExprs, err := extractPlatformStringsExprs(src) - if err != nil { - return nil, err - } - dstExprs, err := extractPlatformStringsExprs(dst) - if err != nil { - return nil, err - } - mergedExprs, err := mergePlatformStringsExprs(srcExprs, dstExprs) - if err != nil { - return nil, err - } - return makePlatformStringsExpr(mergedExprs), nil -} - -func mergePlatformStringsExprs(src, dst platformStringsExprs) (platformStringsExprs, error) { - var ps platformStringsExprs - var err error - ps.generic = mergeList(src.generic, dst.generic) - if ps.os, err = mergeDict(src.os, dst.os); err != nil { - return platformStringsExprs{}, err - } - if ps.arch, err = mergeDict(src.arch, dst.arch); err != nil { - return platformStringsExprs{}, err - } - if ps.platform, err = mergeDict(src.platform, dst.platform); err != nil { - return platformStringsExprs{}, err - } - return ps, nil -} - -func mergeList(src, dst *bzl.ListExpr) *bzl.ListExpr { - if dst == nil { - return src - } - if src == nil { - src = &bzl.ListExpr{List: []bzl.Expr{}} - } - - // Build a list of strings from the src list and keep matching strings - // in the dst list. This preserves comments. Also keep anything with - // a "# keep" comment, whether or not it's in the src list. - srcSet := make(map[string]bool) - for _, v := range src.List { - if s := stringValue(v); s != "" { - srcSet[s] = true - } - } - - var merged []bzl.Expr - kept := make(map[string]bool) - keepComment := false - for _, v := range dst.List { - s := stringValue(v) - if keep := ShouldKeep(v); keep || srcSet[s] { - keepComment = keepComment || keep - merged = append(merged, v) - if s != "" { - kept[s] = true - } - } - } - - // Add anything in the src list that wasn't kept. - for _, v := range src.List { - if s := stringValue(v); kept[s] { - continue - } - merged = append(merged, v) - } - - if len(merged) == 0 { - return nil - } - return &bzl.ListExpr{ - List: merged, - ForceMultiLine: src.ForceMultiLine || dst.ForceMultiLine || keepComment, - } -} - -func mergeDict(src, dst *bzl.DictExpr) (*bzl.DictExpr, error) { - if dst == nil { - return src, nil - } - if src == nil { - src = &bzl.DictExpr{List: []bzl.Expr{}} - } - - var entries []*dictEntry - entryMap := make(map[string]*dictEntry) - - for _, kv := range dst.List { - k, v, err := dictEntryKeyValue(kv) - if err != nil { - return nil, err - } - if _, ok := entryMap[k]; ok { - return nil, fmt.Errorf("dst dict contains more than one case named %q", k) - } - e := &dictEntry{key: k, dstValue: v} - entries = append(entries, e) - entryMap[k] = e - } - - for _, kv := range src.List { - k, v, err := dictEntryKeyValue(kv) - if err != nil { - return nil, err - } - e, ok := entryMap[k] - if !ok { - e = &dictEntry{key: k} - entries = append(entries, e) - entryMap[k] = e - } - e.srcValue = v - } - - keys := make([]string, 0, len(entries)) - haveDefault := false - for _, e := range entries { - e.mergedValue = mergeList(e.srcValue, e.dstValue) - if e.key == "//conditions:default" { - // Keep the default case, even if it's empty. - haveDefault = true - if e.mergedValue == nil { - e.mergedValue = &bzl.ListExpr{} - } - } else if e.mergedValue != nil { - keys = append(keys, e.key) - } - } - if len(keys) == 0 && (!haveDefault || len(entryMap["//conditions:default"].mergedValue.List) == 0) { - return nil, nil - } - sort.Strings(keys) - // Always put the default case last. - if haveDefault { - keys = append(keys, "//conditions:default") - } - - mergedEntries := make([]bzl.Expr, len(keys)) - for i, k := range keys { - e := entryMap[k] - mergedEntries[i] = &bzl.KeyValueExpr{ - Key: &bzl.StringExpr{Value: e.key}, - Value: e.mergedValue, - } - } - - return &bzl.DictExpr{List: mergedEntries, ForceMultiLine: true}, nil -} - -type dictEntry struct { - key string - dstValue, srcValue, mergedValue *bzl.ListExpr -} - -// SquashRules copies information from src into dst without discarding -// information in dst. SquashRules detects duplicate elements in lists and -// dictionaries, but it doesn't sort elements after squashing. If squashing -// fails because the expression is not understood, an error is returned, -// and neither rule is modified. -func SquashRules(src, dst *Rule, filename string) error { - if dst.ShouldKeep() { - return nil - } - - for key, srcAttr := range src.attrs { - srcValue := srcAttr.RHS - if dstAttr, ok := dst.attrs[key]; !ok { - dst.SetAttr(key, srcValue) - } else if !ShouldKeep(dstAttr) { - dstValue := dstAttr.RHS - if squashedValue, err := squashExprs(srcValue, dstValue); err != nil { - start, end := dstValue.Span() - return fmt.Errorf("%s:%d.%d-%d.%d: could not squash expression", filename, start.Line, start.LineRune, end.Line, end.LineRune) - } else { - dst.SetAttr(key, squashedValue) - } - } - } - 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 -} - -func squashExprs(src, dst bzl.Expr) (bzl.Expr, error) { - if ShouldKeep(dst) { - return dst, nil - } - if isScalar(dst) { - // may lose src, but they should always be the same. - return dst, nil - } - srcExprs, err := extractPlatformStringsExprs(src) - if err != nil { - return nil, err - } - dstExprs, err := extractPlatformStringsExprs(dst) - if err != nil { - return nil, err - } - squashedExprs, err := squashPlatformStringsExprs(srcExprs, dstExprs) - if err != nil { - return nil, err - } - return makePlatformStringsExpr(squashedExprs), nil -} - -func squashPlatformStringsExprs(x, y platformStringsExprs) (platformStringsExprs, error) { - var ps platformStringsExprs - var err error - if ps.generic, err = squashList(x.generic, y.generic); err != nil { - return platformStringsExprs{}, err - } - if ps.os, err = squashDict(x.os, y.os); err != nil { - return platformStringsExprs{}, err - } - if ps.arch, err = squashDict(x.arch, y.arch); err != nil { - return platformStringsExprs{}, err - } - if ps.platform, err = squashDict(x.platform, y.platform); err != nil { - return platformStringsExprs{}, err - } - return ps, nil -} - -func squashList(x, y *bzl.ListExpr) (*bzl.ListExpr, error) { - if x == nil { - return y, nil - } - if y == nil { - return x, nil - } - - ls := makeListSquasher() - for _, e := range x.List { - s, ok := e.(*bzl.StringExpr) - if !ok { - return nil, errors.New("could not squash non-string") - } - ls.add(s) - } - for _, e := range y.List { - s, ok := e.(*bzl.StringExpr) - if !ok { - return nil, errors.New("could not squash non-string") - } - ls.add(s) - } - squashed := ls.list() - squashed.Comments.Before = append(x.Comments.Before, y.Comments.Before...) - squashed.Comments.Suffix = append(x.Comments.Suffix, y.Comments.Suffix...) - squashed.Comments.After = append(x.Comments.After, y.Comments.After...) - return squashed, nil -} - -func squashDict(x, y *bzl.DictExpr) (*bzl.DictExpr, error) { - if x == nil { - return y, nil - } - if y == nil { - return x, nil - } - - cases := make(map[string]*bzl.KeyValueExpr) - addCase := func(e bzl.Expr) error { - kv := e.(*bzl.KeyValueExpr) - key, ok := kv.Key.(*bzl.StringExpr) - if !ok { - return errors.New("could not squash non-string dict key") - } - if _, ok := kv.Value.(*bzl.ListExpr); !ok { - return errors.New("could not squash non-list dict value") - } - if c, ok := cases[key.Value]; ok { - if sq, err := squashList(kv.Value.(*bzl.ListExpr), c.Value.(*bzl.ListExpr)); err != nil { - return err - } else { - c.Value = sq - } - } else { - kvCopy := *kv - cases[key.Value] = &kvCopy - } - return nil - } - - for _, e := range x.List { - if err := addCase(e); err != nil { - return nil, err - } - } - for _, e := range y.List { - if err := addCase(e); err != nil { - return nil, err - } - } - - keys := make([]string, 0, len(cases)) - haveDefault := false - for k := range cases { - if k == "//conditions:default" { - haveDefault = true - continue - } - keys = append(keys, k) - } - sort.Strings(keys) - if haveDefault { - keys = append(keys, "//conditions:default") // must be last - } - - squashed := *x - squashed.Comments.Before = append(x.Comments.Before, y.Comments.Before...) - squashed.Comments.Suffix = append(x.Comments.Suffix, y.Comments.Suffix...) - squashed.Comments.After = append(x.Comments.After, y.Comments.After...) - squashed.List = make([]bzl.Expr, 0, len(cases)) - for _, k := range keys { - squashed.List = append(squashed.List, cases[k]) - } - return &squashed, nil -} - -// listSquasher builds a sorted, deduplicated list of string expressions. If -// a string expression is added multiple times, comments are consolidated. -// The original expressions are not modified. -type listSquasher struct { - unique map[string]*bzl.StringExpr - seenComments map[elemComment]bool -} - -type elemComment struct { - elem, com string -} - -func makeListSquasher() listSquasher { - return listSquasher{ - unique: make(map[string]*bzl.StringExpr), - seenComments: make(map[elemComment]bool), - } -} - -func (ls *listSquasher) add(s *bzl.StringExpr) { - sCopy, ok := ls.unique[s.Value] - if !ok { - // Make a copy of s. We may modify it when we consolidate comments from - // duplicate strings. We don't want to modify the original in case this - // function fails (due to a later failed pattern match). - sCopy = new(bzl.StringExpr) - *sCopy = *s - sCopy.Comments.Before = make([]bzl.Comment, 0, len(s.Comments.Before)) - sCopy.Comments.Suffix = make([]bzl.Comment, 0, len(s.Comments.Suffix)) - ls.unique[s.Value] = sCopy - } - for _, c := range s.Comment().Before { - if key := (elemComment{s.Value, c.Token}); !ls.seenComments[key] { - sCopy.Comments.Before = append(sCopy.Comments.Before, c) - ls.seenComments[key] = true - } - } - for _, c := range s.Comment().Suffix { - if key := (elemComment{s.Value, c.Token}); !ls.seenComments[key] { - sCopy.Comments.Suffix = append(sCopy.Comments.Suffix, c) - ls.seenComments[key] = true - } - } -} - -func (ls *listSquasher) list() *bzl.ListExpr { - sortedExprs := make([]bzl.Expr, 0, len(ls.unique)) - for _, e := range ls.unique { - sortedExprs = append(sortedExprs, e) - } - sort.Slice(sortedExprs, func(i, j int) bool { - return sortedExprs[i].(*bzl.StringExpr).Value < sortedExprs[j].(*bzl.StringExpr).Value - }) - return &bzl.ListExpr{List: sortedExprs} -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/rule/platform.go b/vendor/github.com/bazelbuild/bazel-gazelle/rule/platform.go deleted file mode 100644 index a3227442c75..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/rule/platform.go +++ /dev/null @@ -1,142 +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 rule - -import ( - "sort" -) - -// Platform represents a GOOS/GOARCH pair. When Platform is used to describe -// sources, dependencies, or flags, either OS or Arch may be empty. -// -// DEPRECATED: do not use outside language/go. This type is Go-specific -// and should be moved to the Go extension. -type Platform struct { - OS, Arch string -} - -// String returns OS, Arch, or "OS_Arch" if both are set. This must match -// the names of config_setting rules in @io_bazel_rules_go//go/platform. -func (p Platform) String() string { - switch { - case p.OS != "" && p.Arch != "": - return p.OS + "_" + p.Arch - case p.OS != "": - return p.OS - case p.Arch != "": - return p.Arch - default: - return "" - } -} - -// KnownPlatforms is the set of target platforms that Go supports. Gazelle -// will generate multi-platform build files using these tags. rules_go and -// Bazel may not actually support all of these. -// -// DEPRECATED: do not use outside language/go. -var KnownPlatforms = []Platform{ - {"android", "386"}, - {"android", "amd64"}, - {"android", "arm"}, - {"android", "arm64"}, - {"darwin", "386"}, - {"darwin", "amd64"}, - {"darwin", "arm"}, - {"darwin", "arm64"}, - {"dragonfly", "amd64"}, - {"freebsd", "386"}, - {"freebsd", "amd64"}, - {"freebsd", "arm"}, - {"ios", "386"}, - {"ios", "amd64"}, - {"ios", "arm"}, - {"ios", "arm64"}, - {"linux", "386"}, - {"linux", "amd64"}, - {"linux", "arm"}, - {"linux", "arm64"}, - {"linux", "mips"}, - {"linux", "mips64"}, - {"linux", "mips64le"}, - {"linux", "mipsle"}, - {"linux", "ppc64"}, - {"linux", "ppc64le"}, - {"linux", "s390x"}, - {"nacl", "386"}, - {"nacl", "amd64p32"}, - {"nacl", "arm"}, - {"netbsd", "386"}, - {"netbsd", "amd64"}, - {"netbsd", "arm"}, - {"openbsd", "386"}, - {"openbsd", "amd64"}, - {"openbsd", "arm"}, - {"plan9", "386"}, - {"plan9", "amd64"}, - {"plan9", "arm"}, - {"solaris", "amd64"}, - {"windows", "386"}, - {"windows", "amd64"}, -} - -var OSAliases = map[string][]string{ - "android": []string{"linux"}, - "ios": []string{"darwin"}, -} - -var ( - // KnownOSs is the sorted list of operating systems that Go supports. - KnownOSs []string - - // KnownOSSet is the set of operating systems that Go supports. - KnownOSSet map[string]bool - - // KnownArchs is the sorted list of architectures that Go supports. - KnownArchs []string - - // KnownArchSet is the set of architectures that Go supports. - KnownArchSet map[string]bool - - // KnownOSArchs is a map from OS to the archictures they run on. - KnownOSArchs map[string][]string - - // KnownArchOSs is a map from architectures to that OSs that run on them. - KnownArchOSs map[string][]string -) - -func init() { - KnownOSSet = make(map[string]bool) - KnownArchSet = make(map[string]bool) - KnownOSArchs = make(map[string][]string) - KnownArchOSs = make(map[string][]string) - for _, p := range KnownPlatforms { - KnownOSSet[p.OS] = true - KnownArchSet[p.Arch] = true - KnownOSArchs[p.OS] = append(KnownOSArchs[p.OS], p.Arch) - KnownArchOSs[p.Arch] = append(KnownArchOSs[p.Arch], p.OS) - } - KnownOSs = make([]string, 0, len(KnownOSSet)) - KnownArchs = make([]string, 0, len(KnownArchSet)) - for os := range KnownOSSet { - KnownOSs = append(KnownOSs, os) - } - for arch := range KnownArchSet { - KnownArchs = append(KnownArchs, arch) - } - sort.Strings(KnownOSs) - sort.Strings(KnownArchs) -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/rule/platform_strings.go b/vendor/github.com/bazelbuild/bazel-gazelle/rule/platform_strings.go deleted file mode 100644 index ad452cf49f9..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/rule/platform_strings.go +++ /dev/null @@ -1,245 +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 rule - -import ( - "sort" - "strings" - - bzl "github.com/bazelbuild/buildtools/build" -) - -// PlatformStrings contains a set of strings associated with a buildable -// target in a package. This is used to store source file names, -// import paths, and flags. -// -// Strings are stored in four sets: generic strings, OS-specific strings, -// arch-specific strings, and OS-and-arch-specific strings. A string may not -// be duplicated within a list or across sets; however, a string may appear -// in more than one list within a set (e.g., in "linux" and "windows" within -// the OS set). Strings within each list should be sorted, though this may -// not be relied upon. -// -// DEPRECATED: do not use outside language/go. This type is Go-specific and -// should be moved to the Go extension. -type PlatformStrings struct { - // Generic is a list of strings not specific to any platform. - Generic []string - - // OS is a map from OS name (anything in KnownOSs) to - // OS-specific strings. - OS map[string][]string - - // Arch is a map from architecture name (anything in KnownArchs) to - // architecture-specific strings. - Arch map[string][]string - - // Platform is a map from platforms to OS and architecture-specific strings. - Platform map[Platform][]string -} - -// HasExt returns whether this set contains a file with the given extension. -func (ps *PlatformStrings) HasExt(ext string) bool { - return ps.firstExtFile(ext) != "" -} - -func (ps *PlatformStrings) IsEmpty() bool { - return len(ps.Generic) == 0 && len(ps.OS) == 0 && len(ps.Arch) == 0 && len(ps.Platform) == 0 -} - -// Flat returns all the strings in the set, sorted and de-duplicated. -func (ps *PlatformStrings) Flat() []string { - unique := make(map[string]struct{}) - for _, s := range ps.Generic { - unique[s] = struct{}{} - } - for _, ss := range ps.OS { - for _, s := range ss { - unique[s] = struct{}{} - } - } - for _, ss := range ps.Arch { - for _, s := range ss { - unique[s] = struct{}{} - } - } - for _, ss := range ps.Platform { - for _, s := range ss { - unique[s] = struct{}{} - } - } - flat := make([]string, 0, len(unique)) - for s := range unique { - flat = append(flat, s) - } - sort.Strings(flat) - return flat -} - -func (ps *PlatformStrings) firstExtFile(ext string) string { - for _, f := range ps.Generic { - if strings.HasSuffix(f, ext) { - return f - } - } - for _, fs := range ps.OS { - for _, f := range fs { - if strings.HasSuffix(f, ext) { - return f - } - } - } - for _, fs := range ps.Arch { - for _, f := range fs { - if strings.HasSuffix(f, ext) { - return f - } - } - } - for _, fs := range ps.Platform { - for _, f := range fs { - if strings.HasSuffix(f, ext) { - return f - } - } - } - return "" -} - -// Map applies a function that processes individual strings to the strings -// in "ps" and returns a new PlatformStrings with the result. Empty strings -// returned by the function are dropped. -func (ps *PlatformStrings) Map(f func(s string) (string, error)) (PlatformStrings, []error) { - var errors []error - mapSlice := func(ss []string) ([]string, error) { - rs := make([]string, 0, len(ss)) - for _, s := range ss { - if r, err := f(s); err != nil { - errors = append(errors, err) - } else if r != "" { - rs = append(rs, r) - } - } - return rs, nil - } - result, _ := ps.MapSlice(mapSlice) - return result, errors -} - -// MapSlice applies a function that processes slices of strings to the strings -// in "ps" and returns a new PlatformStrings with the results. -func (ps *PlatformStrings) MapSlice(f func([]string) ([]string, error)) (PlatformStrings, []error) { - var errors []error - - mapSlice := func(ss []string) []string { - rs, err := f(ss) - if err != nil { - errors = append(errors, err) - return nil - } - return rs - } - - mapStringMap := func(m map[string][]string) map[string][]string { - if m == nil { - return nil - } - rm := make(map[string][]string) - for k, ss := range m { - ss = mapSlice(ss) - if len(ss) > 0 { - rm[k] = ss - } - } - if len(rm) == 0 { - return nil - } - return rm - } - - mapPlatformMap := func(m map[Platform][]string) map[Platform][]string { - if m == nil { - return nil - } - rm := make(map[Platform][]string) - for k, ss := range m { - ss = mapSlice(ss) - if len(ss) > 0 { - rm[k] = ss - } - } - if len(rm) == 0 { - return nil - } - return rm - } - - result := PlatformStrings{ - Generic: mapSlice(ps.Generic), - OS: mapStringMap(ps.OS), - Arch: mapStringMap(ps.Arch), - Platform: mapPlatformMap(ps.Platform), - } - return result, errors -} - -func (ps PlatformStrings) BzlExpr() bzl.Expr { - var pieces []bzl.Expr - if len(ps.Generic) > 0 { - pieces = append(pieces, ExprFromValue(ps.Generic)) - } - if len(ps.OS) > 0 { - pieces = append(pieces, platformStringsOSArchDictExpr(ps.OS)) - } - if len(ps.Arch) > 0 { - pieces = append(pieces, platformStringsOSArchDictExpr(ps.Arch)) - } - if len(ps.Platform) > 0 { - pieces = append(pieces, platformStringsPlatformDictExpr(ps.Platform)) - } - if len(pieces) == 0 { - return &bzl.ListExpr{} - } else if len(pieces) == 1 { - return pieces[0] - } else { - e := pieces[0] - if list, ok := e.(*bzl.ListExpr); ok { - list.ForceMultiLine = true - } - for _, piece := range pieces[1:] { - e = &bzl.BinaryExpr{X: e, Y: piece, Op: "+"} - } - return e - } -} - -func platformStringsOSArchDictExpr(m map[string][]string) bzl.Expr { - s := make(SelectStringListValue) - for key, value := range m { - s["@io_bazel_rules_go//go/platform:"+key] = value - } - s["//conditions:default"] = nil - return s.BzlExpr() -} - -func platformStringsPlatformDictExpr(m map[Platform][]string) bzl.Expr { - s := make(SelectStringListValue) - for key, value := range m { - s["@io_bazel_rules_go//go/platform:"+key.String()] = value - } - s["//conditions:default"] = nil - return s.BzlExpr() -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/rule/rule.go b/vendor/github.com/bazelbuild/bazel-gazelle/rule/rule.go deleted file mode 100644 index 8617b44ba45..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/rule/rule.go +++ /dev/null @@ -1,859 +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 rule provides tools for editing Bazel build files. It is intended to -// be a more powerful replacement for -// github.com/bazelbuild/buildtools/build.Rule, adapted for Gazelle's usage. It -// is language agnostic, but it may be used for language-specific rules by -// providing configuration. -// -// 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" - "sort" - "strings" - - bzl "github.com/bazelbuild/buildtools/build" - bt "github.com/bazelbuild/buildtools/tables" -) - -// 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. - File *bzl.File - - // function is the underlying syntax tree of a bzl file function. - // This is used for editing the bzl file function specified by the - // update-repos -to_macro option. - function *function - - // Pkg is the Bazel package this build file defines. - Pkg string - - // Path is the file system path to the build file (same as File.Path). - Path string - - // DefName is the name of the function definition this File refers to - // if loaded with LoadMacroFile or a similar function. Normally empty. - DefName string - - // Directives is a list of configuration directives found in top-level - // comments in the file. This should not be modified after the file is read. - Directives []Directive - - // Loads is a list of load statements within the file. This should not - // be modified directly; use Load methods instead. - Loads []*Load - - // Rules is a list of rules within the file (or function calls that look like - // rules). This should not be modified directly; use Rule methods instead. - Rules []*Rule -} - -// EmptyFile creates a File wrapped around an empty syntax tree. -func EmptyFile(path, pkg string) *File { - return &File{ - File: &bzl.File{Path: path, Type: bzl.TypeBuild}, - Path: path, - Pkg: pkg, - } -} - -// LoadFile loads a build file from disk, parses it, and scans for rules and -// load statements. The syntax tree within the returned File will be modified -// by editing methods. -// -// This function returns I/O and parse errors without modification. It's safe -// to use os.IsNotExist and similar predicates. -func LoadFile(path, pkg string) (*File, error) { - data, err := ioutil.ReadFile(path) - if err != nil { - return nil, err - } - 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) -} - -// LoadMacroFile loads a bzl file from disk, parses it, then scans for the load -// statements and the rules called from the given Starlark function. If there is -// no matching function name, then a new function with that name will be created. -// The function's syntax tree will be returned within File and can be modified by -// Sync and Save calls. -func LoadMacroFile(path, pkg, defName string) (*File, error) { - data, err := ioutil.ReadFile(path) - if err != nil { - return nil, err - } - return LoadMacroData(path, pkg, defName, data) -} - -// EmptyMacroFile creates a bzl file at the given path and within the file creates -// a Starlark function with the provided name. The function can then be modified -// by Sync and Save calls. -func EmptyMacroFile(path, pkg, defName string) (*File, error) { - _, err := os.Create(path) - if err != nil { - return nil, err - } - return LoadMacroData(path, pkg, defName, nil) -} - -// 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.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 - } - return ScanAST(pkg, ast), nil -} - -// LoadMacroData parses a bzl file from a byte slice and scans for the load -// statements and the rules called from the given Starlark function. If there is -// no matching function name, then a new function will be created, and added to the -// File the next time Sync is called. The function's syntax tree will be returned -// within File and can be modified by Sync and Save calls. -func LoadMacroData(path, pkg, defName string, data []byte) (*File, error) { - ast, err := bzl.ParseBzl(path, data) - if err != nil { - return nil, err - } - return ScanASTBody(pkg, defName, ast), nil -} - -// ScanAST creates a File wrapped around the given syntax tree. This tree -// will be modified by editing methods. -func ScanAST(pkg string, bzlFile *bzl.File) *File { - return ScanASTBody(pkg, "", bzlFile) -} - -type function struct { - stmt *bzl.DefStmt - inserted, hasPass bool -} - -// ScanASTBody creates a File wrapped around the given syntax tree. It will also -// scan the AST for a function matching the given defName, and if the function -// does not exist it will create a new one and mark it to be added to the File -// the next time Sync is called. -func ScanASTBody(pkg, defName string, bzlFile *bzl.File) *File { - f := &File{ - File: bzlFile, - Pkg: pkg, - Path: bzlFile.Path, - DefName: defName, - } - var defStmt *bzl.DefStmt - f.Rules, f.Loads, defStmt = scanExprs(defName, bzlFile.Stmt) - if defStmt != nil { - f.Rules, _, _ = scanExprs("", defStmt.Body) - f.function = &function{ - stmt: defStmt, - inserted: true, - } - if len(defStmt.Body) == 1 { - if v, ok := defStmt.Body[0].(*bzl.BranchStmt); ok && v.Token == "pass" { - f.function.hasPass = true - } - } - } else if defName != "" { - f.function = &function{ - stmt: &bzl.DefStmt{Name: defName}, - inserted: false, - } - } - if f.function != nil { - f.Directives = ParseDirectivesFromMacro(f.function.stmt) - } else { - f.Directives = ParseDirectives(bzlFile) - } - return f -} - -func scanExprs(defName string, stmt []bzl.Expr) (rules []*Rule, loads []*Load, fn *bzl.DefStmt) { - for i, expr := range stmt { - switch expr := expr.(type) { - case *bzl.LoadStmt: - l := loadFromExpr(i, expr) - loads = append(loads, l) - case *bzl.CallExpr: - if r := ruleFromExpr(i, expr); r != nil { - rules = append(rules, r) - } - case *bzl.DefStmt: - if expr.Name == defName { - fn = expr - } - } - } - return rules, loads, fn -} - -// MatchBuildFileName looks for a file in files that has a name from names. -// If there is at least one matching file, a path will be returned by joining -// dir and the first matching name. If there are no matching files, the -// empty string is returned. -func MatchBuildFileName(dir string, names []string, files []os.FileInfo) string { - for _, name := range names { - for _, fi := range files { - if fi.Name() == name && !fi.IsDir() { - return filepath.Join(dir, name) - } - } - } - return "" -} - -// SyncMacroFile syncs the file's syntax tree with another file's. This is -// useful for keeping multiple macro definitions from the same .bzl file in sync. -func (f *File) SyncMacroFile(from *File) { - fromFunc := *from.function.stmt - _, _, toFunc := scanExprs(from.function.stmt.Name, f.File.Stmt) - if toFunc != nil { - *toFunc = fromFunc - } else { - f.File.Stmt = append(f.File.Stmt, &fromFunc) - } -} - -// MacroName returns the name of the macro function that this file is editing, -// or an empty string if a macro function is not being edited. -func (f *File) MacroName() string { - if f.function != nil && f.function.stmt != nil { - return f.function.stmt.Name - } - return "" -} - -// Sync writes all changes back to the wrapped syntax tree. This should be -// called after editing operations, before reading the syntax tree again. -func (f *File) Sync() { - var loadInserts, loadDeletes, loadStmts []*stmt - var r, w int - for r, w = 0, 0; r < len(f.Loads); r++ { - s := f.Loads[r] - s.sync() - if s.deleted { - loadDeletes = append(loadDeletes, &s.stmt) - continue - } - if s.inserted { - loadInserts = append(loadInserts, &s.stmt) - s.inserted = false - } else { - loadStmts = append(loadStmts, &s.stmt) - } - f.Loads[w] = s - w++ - } - f.Loads = f.Loads[:w] - var ruleInserts, ruleDeletes, ruleStmts []*stmt - for r, w = 0, 0; r < len(f.Rules); r++ { - s := f.Rules[r] - s.sync() - if s.deleted { - ruleDeletes = append(ruleDeletes, &s.stmt) - continue - } - if s.inserted { - ruleInserts = append(ruleInserts, &s.stmt) - s.inserted = false - } else { - ruleStmts = append(ruleStmts, &s.stmt) - } - f.Rules[w] = s - w++ - } - f.Rules = f.Rules[:w] - - if f.function == nil { - deletes := append(ruleDeletes, loadDeletes...) - inserts := append(ruleInserts, loadInserts...) - stmts := append(ruleStmts, loadStmts...) - updateStmt(&f.File.Stmt, inserts, deletes, stmts) - } else { - updateStmt(&f.File.Stmt, loadInserts, loadDeletes, loadStmts) - if f.function.hasPass && len(ruleInserts) > 0 { - f.function.stmt.Body = []bzl.Expr{} - f.function.hasPass = false - } - updateStmt(&f.function.stmt.Body, ruleInserts, ruleDeletes, ruleStmts) - if len(f.function.stmt.Body) == 0 { - f.function.stmt.Body = append(f.function.stmt.Body, &bzl.BranchStmt{Token: "pass"}) - f.function.hasPass = true - } - if !f.function.inserted { - f.File.Stmt = append(f.File.Stmt, f.function.stmt) - f.function.inserted = true - } - } -} - -func updateStmt(oldStmt *[]bzl.Expr, inserts, deletes, stmts []*stmt) { - sort.Stable(byIndex(deletes)) - sort.Stable(byIndex(inserts)) - sort.Stable(byIndex(stmts)) - newStmt := make([]bzl.Expr, 0, len(*oldStmt)-len(deletes)+len(inserts)) - var ii, di, si int - for i, stmt := range *oldStmt { - for ii < len(inserts) && inserts[ii].index == i { - inserts[ii].index = len(newStmt) - newStmt = append(newStmt, inserts[ii].expr) - ii++ - } - if di < len(deletes) && deletes[di].index == i { - di++ - continue - } - if si < len(stmts) && stmts[si].expr == stmt { - stmts[si].index = len(newStmt) - si++ - } - newStmt = append(newStmt, stmt) - } - for ii < len(inserts) { - inserts[ii].index = len(newStmt) - newStmt = append(newStmt, inserts[ii].expr) - ii++ - } - *oldStmt = newStmt -} - -// Format formats the build file in a form that can be written to disk. -// This method calls Sync internally. -func (f *File) Format() []byte { - f.Sync() - return bzl.Format(f.File) -} - -// Save writes the build file to disk. This method calls Sync internally. -func (f *File) Save(path string) error { - f.Sync() - data := bzl.Format(f.File) - 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 - expr bzl.Expr -} - -// Index returns the index for this statement within the build file. For -// inserted rules, this is where the rule will be inserted (rules with the -// same index will be inserted in the order Insert was called). For existing -// rules, this is the index of the original statement. -func (s *stmt) Index() int { return s.index } - -// Delete marks this statement for deletion. It will be removed from the -// syntax tree when File.Sync is called. -func (s *stmt) Delete() { s.deleted = true } - -type byIndex []*stmt - -func (s byIndex) Len() int { - return len(s) -} - -func (s byIndex) Less(i, j int) bool { - return s[i].index < s[j].index -} - -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]identPair -} - -// NewLoad creates a new, empty load statement for the given file name. -func NewLoad(name string) *Load { - return &Load{ - stmt: stmt{ - expr: &bzl.LoadStmt{ - Module: &bzl.StringExpr{Value: name}, - ForceCompact: true, - }, - }, - name: name, - symbols: make(map[string]identPair), - } -} - -func loadFromExpr(index int, loadStmt *bzl.LoadStmt) *Load { - l := &Load{ - stmt: stmt{index: index, expr: loadStmt}, - name: loadStmt.Module.Value, - symbols: make(map[string]identPair), - } - for i := range loadStmt.From { - to, from := loadStmt.To[i], loadStmt.From[i] - l.symbols[to.Name] = identPair{to: to, from: from} - } - return l -} - -// Name returns the name of the file this statement loads. -func (l *Load) Name() string { - return l.name -} - -// Symbols returns a list of symbols this statement loads. -func (l *Load) Symbols() []string { - syms := make([]string, 0, len(l.symbols)) - for sym := range l.symbols { - syms = append(syms, sym) - } - sort.Strings(syms) - return syms -} - -// Has returns true if sym is loaded by this statement. -func (l *Load) Has(sym string) bool { - _, ok := l.symbols[sym] - return ok -} - -// Add inserts a new symbol into the load statement. This has no effect if -// the symbol is already loaded. Symbols will be sorted, so the order -// doesn't matter. -func (l *Load) Add(sym string) { - if _, ok := l.symbols[sym]; !ok { - i := &bzl.Ident{Name: sym} - l.symbols[sym] = identPair{to: i, from: i} - l.updated = true - } -} - -// Remove deletes a symbol from the load statement. This has no effect if -// the symbol is not loaded. -func (l *Load) Remove(sym string) { - if _, ok := l.symbols[sym]; ok { - delete(l.symbols, sym) - l.updated = true - } -} - -// IsEmpty returns whether this statement loads any symbols. -func (l *Load) IsEmpty() bool { - return len(l.symbols) == 0 -} - -// Insert marks this statement for insertion at the given index. If multiple -// statements are inserted at the same index, they will be inserted in the -// order Insert is called. -func (l *Load) Insert(f *File, index int) { - l.index = index - l.inserted = true - f.Loads = append(f.Loads, l) -} - -func (l *Load) sync() { - if !l.updated { - return - } - l.updated = false - - // 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 { - args2 = append(args2, sym) - } - } - sort.Strings(args1) - sort.Strings(args2) - args = append(args, args1...) - args = append(args, args2...) - - 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 - } - } -} - -// Rule represents a rule statement within a build file. -type Rule struct { - stmt - kind string - args []bzl.Expr - attrs map[string]*bzl.AssignExpr - private map[string]interface{} -} - -// NewRule creates a new, empty rule with the given kind and name. -func NewRule(kind, name string) *Rule { - nameAttr := &bzl.AssignExpr{ - LHS: &bzl.Ident{Name: "name"}, - RHS: &bzl.StringExpr{Value: name}, - Op: "=", - } - r := &Rule{ - stmt: stmt{ - expr: &bzl.CallExpr{ - X: &bzl.Ident{Name: kind}, - List: []bzl.Expr{nameAttr}, - }, - }, - kind: kind, - attrs: map[string]*bzl.AssignExpr{"name": nameAttr}, - private: map[string]interface{}{}, - } - return r -} - -func ruleFromExpr(index int, expr bzl.Expr) *Rule { - call, ok := expr.(*bzl.CallExpr) - if !ok { - return nil - } - x, ok := call.X.(*bzl.Ident) - if !ok { - return nil - } - kind := x.Name - var args []bzl.Expr - attrs := make(map[string]*bzl.AssignExpr) - for _, arg := range call.List { - if attr, ok := arg.(*bzl.AssignExpr); ok { - key := attr.LHS.(*bzl.Ident) // required by parser - attrs[key.Name] = attr - } else { - args = append(args, arg) - } - } - return &Rule{ - stmt: stmt{ - index: index, - expr: call, - }, - kind: kind, - args: args, - attrs: attrs, - private: map[string]interface{}{}, - } -} - -// ShouldKeep returns whether the rule is marked with a "# keep" comment. Rules -// 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.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) -} - -// AttrKeys returns a sorted list of attribute keys used in this rule. -func (r *Rule) AttrKeys() []string { - keys := make([]string, 0, len(r.attrs)) - for k := range r.attrs { - keys = append(keys, k) - } - sort.SliceStable(keys, func(i, j int) bool { - if cmp := bt.NamePriority[keys[i]] - bt.NamePriority[keys[j]]; cmp != 0 { - return cmp < 0 - } - return keys[i] < keys[j] - }) - return keys -} - -// Attr returns the value of the named attribute. nil is returned when the -// attribute is not set. -func (r *Rule) Attr(key string) bzl.Expr { - attr, ok := r.attrs[key] - if !ok { - return nil - } - return attr.RHS -} - -// AttrString returns the value of the named attribute if it is a scalar string. -// "" is returned if the attribute is not set or is not a string. -func (r *Rule) AttrString(key string) string { - attr, ok := r.attrs[key] - if !ok { - return "" - } - str, ok := attr.RHS.(*bzl.StringExpr) - if !ok { - return "" - } - return str.Value -} - -// AttrStrings returns the string values of an attribute if it is a list. -// nil is returned if the attribute is not set or is not a list. Non-string -// values within the list won't be returned. -func (r *Rule) AttrStrings(key string) []string { - attr, ok := r.attrs[key] - if !ok { - return nil - } - list, ok := attr.RHS.(*bzl.ListExpr) - if !ok { - return nil - } - strs := make([]string, 0, len(list.List)) - for _, e := range list.List { - if str, ok := e.(*bzl.StringExpr); ok { - strs = append(strs, str.Value) - } - } - return strs -} - -// DelAttr removes the named attribute from the rule. -func (r *Rule) DelAttr(key string) { - delete(r.attrs, key) - r.updated = true -} - -// SetAttr adds or replaces the named attribute with an expression produced -// by ExprFromValue. -func (r *Rule) SetAttr(key string, value interface{}) { - rhs := ExprFromValue(value) - if attr, ok := r.attrs[key]; ok { - attr.RHS = rhs - } else { - r.attrs[key] = &bzl.AssignExpr{ - LHS: &bzl.Ident{Name: key}, - RHS: rhs, - Op: "=", - } - } - r.updated = true -} - -// PrivateAttrKeys returns a sorted list of private attribute names. -func (r *Rule) PrivateAttrKeys() []string { - keys := make([]string, 0, len(r.private)) - for k := range r.private { - keys = append(keys, k) - } - sort.Strings(keys) - return keys -} - -// PrivateAttr return the private value associated with a key. -func (r *Rule) PrivateAttr(key string) interface{} { - return r.private[key] -} - -// SetPrivateAttr associates a value with a key. Unlike SetAttr, this value -// is not converted to a build syntax tree and will not be written to a build -// file. -func (r *Rule) SetPrivateAttr(key string, value interface{}) { - r.private[key] = value -} - -// Args returns positional arguments passed to a rule. -func (r *Rule) Args() []bzl.Expr { - return r.args -} - -// Insert marks this statement for insertion at the end of the file. Multiple -// statements will be inserted in the order Insert is called. -func (r *Rule) Insert(f *File) { - // TODO(jayconrod): should rules always be inserted at the end? Should there - // be some sort order? - var stmt []bzl.Expr - if f.function == nil { - stmt = f.File.Stmt - } else { - stmt = f.function.stmt.Body - } - r.index = len(stmt) - r.inserted = true - f.Rules = append(f.Rules, r) -} - -// IsEmpty returns true when the rule contains none of the attributes in attrs -// for its kind. attrs should contain attributes that make the rule buildable -// like srcs or deps and not descriptive attributes like name or visibility. -func (r *Rule) IsEmpty(info KindInfo) bool { - if info.NonEmptyAttrs == nil { - return false - } - for k := range info.NonEmptyAttrs { - if _, ok := r.attrs[k]; ok { - return false - } - } - return true -} - -func (r *Rule) sync() { - if !r.updated { - return - } - r.updated = false - - for _, k := range []string{"srcs", "deps"} { - if attr, ok := r.attrs[k]; ok { - bzl.Walk(attr.RHS, sortExprLabels) - } - } - - call := r.expr.(*bzl.CallExpr) - call.X.(*bzl.Ident).Name = r.kind - if len(r.attrs) > 1 { - call.ForceMultiLine = true - } - - list := make([]bzl.Expr, 0, len(r.args)+len(r.attrs)) - list = append(list, r.args...) - for _, attr := range r.attrs { - list = append(list, attr) - } - sortedAttrs := list[len(r.args):] - key := func(e bzl.Expr) string { return e.(*bzl.AssignExpr).LHS.(*bzl.Ident).Name } - sort.SliceStable(sortedAttrs, func(i, j int) bool { - ki := key(sortedAttrs[i]) - kj := key(sortedAttrs[j]) - if cmp := bt.NamePriority[ki] - bt.NamePriority[kj]; cmp != 0 { - return cmp < 0 - } - return ki < kj - }) - - call.List = list - r.updated = false -} - -// ShouldKeep returns whether e is marked with a "# keep" comment. Kept -// expressions should not be removed or modified. -func ShouldKeep(e bzl.Expr) bool { - for _, c := range append(e.Comment().Before, e.Comment().Suffix...) { - text := strings.TrimSpace(strings.TrimPrefix(c.Token, "#")) - if text == "keep" { - 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 byAttrName []KeyValue - -var _ sort.Interface = byAttrName{} - -func (s byAttrName) Len() int { - return len(s) -} - -func (s byAttrName) Less(i, j int) bool { - if cmp := bt.NamePriority[s[i].Key] - bt.NamePriority[s[j].Key]; cmp != 0 { - return cmp < 0 - } - return s[i].Key < s[j].Key -} - -func (s byAttrName) Swap(i, j int) { - s[i], s[j] = s[j], s[i] -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/rule/sort_labels.go b/vendor/github.com/bazelbuild/bazel-gazelle/rule/sort_labels.go deleted file mode 100644 index bd27eb55820..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/rule/sort_labels.go +++ /dev/null @@ -1,114 +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 rule - -import ( - "sort" - "strings" - - bzl "github.com/bazelbuild/buildtools/build" -) - -// sortExprLabels sorts lists of strings using the same order as buildifier. -// Buildifier also sorts string lists, but not those involved with "select" -// expressions. This function is intended to be used with bzl.Walk. -func sortExprLabels(e bzl.Expr, _ []bzl.Expr) { - list, ok := e.(*bzl.ListExpr) - if !ok || len(list.List) == 0 { - return - } - - keys := make([]stringSortKey, len(list.List)) - for i, elem := range list.List { - s, ok := elem.(*bzl.StringExpr) - if !ok { - return // don't sort lists unless all elements are strings - } - keys[i] = makeSortKey(i, s) - } - - before := keys[0].x.Comment().Before - keys[0].x.Comment().Before = nil - sort.Sort(byStringExpr(keys)) - keys[0].x.Comment().Before = append(before, keys[0].x.Comment().Before...) - for i, k := range keys { - list.List[i] = k.x - } -} - -// Code below this point is adapted from -// github.com/bazelbuild/buildtools/build/rewrite.go - -// A stringSortKey records information about a single string literal to be -// sorted. The strings are first grouped into four phases: most strings, -// strings beginning with ":", strings beginning with "//", and strings -// beginning with "@". The next significant part of the comparison is the list -// of elements in the value, where elements are split at `.' and `:'. Finally -// we compare by value and break ties by original index. -type stringSortKey struct { - phase int - split []string - value string - original int - x bzl.Expr -} - -func makeSortKey(index int, x *bzl.StringExpr) stringSortKey { - key := stringSortKey{ - value: x.Value, - original: index, - x: x, - } - - switch { - case strings.HasPrefix(x.Value, ":"): - key.phase = 1 - case strings.HasPrefix(x.Value, "//"): - key.phase = 2 - case strings.HasPrefix(x.Value, "@"): - key.phase = 3 - } - - key.split = strings.Split(strings.Replace(x.Value, ":", ".", -1), ".") - return key -} - -// byStringExpr implements sort.Interface for a list of stringSortKey. -type byStringExpr []stringSortKey - -func (x byStringExpr) Len() int { return len(x) } -func (x byStringExpr) Swap(i, j int) { x[i], x[j] = x[j], x[i] } - -func (x byStringExpr) Less(i, j int) bool { - xi := x[i] - xj := x[j] - - if xi.phase != xj.phase { - return xi.phase < xj.phase - } - for k := 0; k < len(xi.split) && k < len(xj.split); k++ { - if xi.split[k] != xj.split[k] { - return xi.split[k] < xj.split[k] - } - } - if len(xi.split) != len(xj.split) { - return len(xi.split) < len(xj.split) - } - if xi.value != xj.value { - return xi.value < xj.value - } - return xi.original < xj.original -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/rule/types.go b/vendor/github.com/bazelbuild/bazel-gazelle/rule/types.go deleted file mode 100644 index 5d1f5a3f925..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/rule/types.go +++ /dev/null @@ -1,56 +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 rule - -// LoadInfo describes a file that Gazelle knows about and the symbols -// it defines. -type LoadInfo struct { - Name string - Symbols []string - After []string -} - -// KindInfo stores metadata for a kind of rule, for example, "go_library". -type KindInfo struct { - // MatchAny is true if a rule of this kind may be matched with any rule - // of the same kind, regardless of attributes, if exactly one rule is - // present a build file. - MatchAny bool - - // MatchAttrs is a list of attributes used in matching. For example, - // for go_library, this list contains "importpath". Attributes are matched - // in order. - MatchAttrs []string - - // NonEmptyAttrs is a set of attributes that, if present, disqualify a rule - // from being deleted after merge. - NonEmptyAttrs map[string]bool - - // SubstituteAttrs is a set of attributes that should be substituted - // after matching and before merging. For example, suppose generated rule A - // references B via an "embed" attribute, and B matches against rule C. - // The label for B in A's "embed" must be substituted with a label for C. - // "embed" would need to be in this set. - SubstituteAttrs map[string]bool - - // MergeableAttrs is a set of attributes that should be merged before - // dependency resolution. See rule.Merge. - MergeableAttrs map[string]bool - - // ResolveAttrs is a set of attributes that should be merged after - // dependency resolution. See rule.Merge. - ResolveAttrs map[string]bool -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/rule/value.go b/vendor/github.com/bazelbuild/bazel-gazelle/rule/value.go deleted file mode 100644 index 1edc6ff63a6..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/rule/value.go +++ /dev/null @@ -1,191 +0,0 @@ -/* Copyright 2016 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 rule - -import ( - "fmt" - "log" - "reflect" - "sort" - - bzl "github.com/bazelbuild/buildtools/build" -) - -// KeyValue represents a key-value pair. This gets converted into a -// rule attribute, i.e., a Skylark keyword argument. -type KeyValue struct { - Key string - Value interface{} -} - -// GlobValue represents a Bazel glob expression. -type GlobValue struct { - Patterns []string - Excludes []string -} - -// BzlExprValue is implemented by types that have custom translations -// to Starlark values. -type BzlExprValue interface { - BzlExpr() bzl.Expr -} - -// SelectStringListValue is a value that can be translated to a Bazel -// select expression that picks a string list based on a string condition. -type SelectStringListValue map[string][]string - -func (s SelectStringListValue) BzlExpr() bzl.Expr { - defaultKey := "//conditions:default" - keys := make([]string, 0, len(s)) - haveDefaultKey := false - for key := range s { - if key == defaultKey { - haveDefaultKey = true - } else { - keys = append(keys, key) - } - } - sort.Strings(keys) - if haveDefaultKey { - keys = append(keys, defaultKey) - } - - args := make([]bzl.Expr, 0, len(s)) - for _, key := range keys { - value := ExprFromValue(s[key]) - if key != defaultKey { - value.(*bzl.ListExpr).ForceMultiLine = true - } - args = append(args, &bzl.KeyValueExpr{ - Key: &bzl.StringExpr{Value: key}, - Value: value, - }) - } - sel := &bzl.CallExpr{ - X: &bzl.Ident{Name: "select"}, - List: []bzl.Expr{&bzl.DictExpr{List: args, ForceMultiLine: true}}, - } - return sel -} - -// 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). -// -// Converting unsupported types will cause a panic. -func ExprFromValue(val interface{}) bzl.Expr { - if e, ok := val.(bzl.Expr); ok { - return e - } - if be, ok := val.(BzlExprValue); ok { - return be.BzlExpr() - } - - rv := reflect.ValueOf(val) - switch rv.Kind() { - case reflect.Bool: - tok := "False" - if rv.Bool() { - tok = "True" - } - return &bzl.LiteralExpr{Token: tok} - - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return &bzl.LiteralExpr{Token: fmt.Sprintf("%d", val)} - - case reflect.Float32, reflect.Float64: - return &bzl.LiteralExpr{Token: fmt.Sprintf("%f", val)} - - case reflect.String: - return &bzl.StringExpr{Value: val.(string)} - - case reflect.Slice, reflect.Array: - var list []bzl.Expr - for i := 0; i < rv.Len(); i++ { - elem := ExprFromValue(rv.Index(i).Interface()) - list = append(list, elem) - } - return &bzl.ListExpr{List: list} - - case reflect.Map: - rkeys := rv.MapKeys() - sort.Sort(byString(rkeys)) - args := make([]bzl.Expr, len(rkeys)) - for i, rk := range rkeys { - k := &bzl.StringExpr{Value: mapKeyString(rk)} - v := ExprFromValue(rv.MapIndex(rk).Interface()) - if l, ok := v.(*bzl.ListExpr); ok { - l.ForceMultiLine = true - } - args[i] = &bzl.KeyValueExpr{Key: k, Value: v} - } - return &bzl.DictExpr{List: args, ForceMultiLine: true} - - case reflect.Struct: - switch val := val.(type) { - case GlobValue: - patternsValue := ExprFromValue(val.Patterns) - globArgs := []bzl.Expr{patternsValue} - if len(val.Excludes) > 0 { - excludesValue := ExprFromValue(val.Excludes) - globArgs = append(globArgs, &bzl.KeyValueExpr{ - Key: &bzl.StringExpr{Value: "excludes"}, - Value: excludesValue, - }) - } - return &bzl.CallExpr{ - X: &bzl.LiteralExpr{Token: "glob"}, - List: globArgs, - } - } - } - - log.Panicf("type not supported: %T", val) - return nil -} - -func mapKeyString(k reflect.Value) string { - switch s := k.Interface().(type) { - case string: - return s - default: - log.Panicf("unexpected map key: %v", k) - return "" - } -} - -type byString []reflect.Value - -var _ sort.Interface = byString{} - -func (s byString) Len() int { - return len(s) -} - -func (s byString) Less(i, j int) bool { - return mapKeyString(s[i]) < mapKeyString(s[j]) -} - -func (s byString) Swap(i, j int) { - s[i], s[j] = s[j], s[i] -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/walk/BUILD b/vendor/github.com/bazelbuild/bazel-gazelle/walk/BUILD deleted file mode 100644 index 9303fe800f5..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/walk/BUILD +++ /dev/null @@ -1,32 +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/kubernetes/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", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/walk/config.go b/vendor/github.com/bazelbuild/bazel-gazelle/walk/config.go deleted file mode 100644 index 22b355836f9..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/walk/config.go +++ /dev/null @@ -1,90 +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" - - "github.com/bazelbuild/bazel-gazelle/config" - gzflag "github.com/bazelbuild/bazel-gazelle/flag" - "github.com/bazelbuild/bazel-gazelle/rule" -) - -// TODO(#472): store location information to validate each exclude. They -// may be set in one directory and used in another. Excludes work on -// declared generated files, so we can't just stat. - -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 { - if base == ".git" { - return true - } - 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 -} diff --git a/vendor/github.com/bazelbuild/bazel-gazelle/walk/walk.go b/vendor/github.com/bazelbuild/bazel-gazelle/walk/walk.go deleted file mode 100644 index 672c82b2245..00000000000 --- a/vendor/github.com/bazelbuild/bazel-gazelle/walk/walk.go +++ /dev/null @@ -1,332 +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 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) - - if wc.isExcluded(rel, ".") { - return - } - - 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-, 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() -} diff --git a/vendor/github.com/bazelbuild/buildtools/CONTRIBUTORS b/vendor/github.com/bazelbuild/buildtools/CONTRIBUTORS deleted file mode 100644 index 2d919a47f9b..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/CONTRIBUTORS +++ /dev/null @@ -1,15 +0,0 @@ -# People who have agreed to one of the CLAs and can contribute patches. -# The AUTHORS file lists the copyright holders; this file -# lists people. For example, Google employees are listed here -# but not in AUTHORS, because Google holds the copyright. -# -# https://developers.google.com/open-source/cla/individual -# https://developers.google.com/open-source/cla/corporate -# -# Names should be added to this file as: -# Name -Paul Bethe -Russ Cox -Laurent Le Brun -Justine Alexandra Roberts Tunney -Nilton Volpato \ No newline at end of file diff --git a/vendor/github.com/bazelbuild/buildtools/api_proto/BUILD b/vendor/github.com/bazelbuild/buildtools/api_proto/BUILD deleted file mode 100644 index 18005665fa7..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/api_proto/BUILD +++ /dev/null @@ -1,24 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["api.gen.pb.go"], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/buildtools/api_proto", - importpath = "github.com/bazelbuild/buildtools/api_proto", - visibility = ["//visibility:public"], - deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/buildtools/api_proto/api.gen.pb.go b/vendor/github.com/bazelbuild/buildtools/api_proto/api.gen.pb.go deleted file mode 100644 index 98dd570832c..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/api_proto/api.gen.pb.go +++ /dev/null @@ -1,317 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: api_proto/api.proto - -package api_proto - -import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type Output_Record_Field_ERROR int32 - -const ( - Output_Record_Field_UNKNOWN Output_Record_Field_ERROR = 0 - Output_Record_Field_MISSING Output_Record_Field_ERROR = 1 -) - -var Output_Record_Field_ERROR_name = map[int32]string{ - 0: "UNKNOWN", - 1: "MISSING", -} - -var Output_Record_Field_ERROR_value = map[string]int32{ - "UNKNOWN": 0, - "MISSING": 1, -} - -func (x Output_Record_Field_ERROR) String() string { - return proto.EnumName(Output_Record_Field_ERROR_name, int32(x)) -} - -func (Output_Record_Field_ERROR) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_35e560d0f079cc1d, []int{0, 0, 0, 0} -} - -type Output struct { - Records []*Output_Record `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Output) Reset() { *m = Output{} } -func (m *Output) String() string { return proto.CompactTextString(m) } -func (*Output) ProtoMessage() {} -func (*Output) Descriptor() ([]byte, []int) { - return fileDescriptor_35e560d0f079cc1d, []int{0} -} - -func (m *Output) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Output.Unmarshal(m, b) -} -func (m *Output) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Output.Marshal(b, m, deterministic) -} -func (m *Output) XXX_Merge(src proto.Message) { - xxx_messageInfo_Output.Merge(m, src) -} -func (m *Output) XXX_Size() int { - return xxx_messageInfo_Output.Size(m) -} -func (m *Output) XXX_DiscardUnknown() { - xxx_messageInfo_Output.DiscardUnknown(m) -} - -var xxx_messageInfo_Output proto.InternalMessageInfo - -func (m *Output) GetRecords() []*Output_Record { - if m != nil { - return m.Records - } - return nil -} - -type Output_Record struct { - Fields []*Output_Record_Field `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Output_Record) Reset() { *m = Output_Record{} } -func (m *Output_Record) String() string { return proto.CompactTextString(m) } -func (*Output_Record) ProtoMessage() {} -func (*Output_Record) Descriptor() ([]byte, []int) { - return fileDescriptor_35e560d0f079cc1d, []int{0, 0} -} - -func (m *Output_Record) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Output_Record.Unmarshal(m, b) -} -func (m *Output_Record) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Output_Record.Marshal(b, m, deterministic) -} -func (m *Output_Record) XXX_Merge(src proto.Message) { - xxx_messageInfo_Output_Record.Merge(m, src) -} -func (m *Output_Record) XXX_Size() int { - return xxx_messageInfo_Output_Record.Size(m) -} -func (m *Output_Record) XXX_DiscardUnknown() { - xxx_messageInfo_Output_Record.DiscardUnknown(m) -} - -var xxx_messageInfo_Output_Record proto.InternalMessageInfo - -func (m *Output_Record) GetFields() []*Output_Record_Field { - if m != nil { - return m.Fields - } - return nil -} - -type Output_Record_Field struct { - // Types that are valid to be assigned to Value: - // *Output_Record_Field_Text - // *Output_Record_Field_Number - // *Output_Record_Field_Error - // *Output_Record_Field_List - Value isOutput_Record_Field_Value `protobuf_oneof:"value"` - QuoteWhenPrinting bool `protobuf:"varint,7,opt,name=quote_when_printing,json=quoteWhenPrinting,proto3" json:"quote_when_printing,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Output_Record_Field) Reset() { *m = Output_Record_Field{} } -func (m *Output_Record_Field) String() string { return proto.CompactTextString(m) } -func (*Output_Record_Field) ProtoMessage() {} -func (*Output_Record_Field) Descriptor() ([]byte, []int) { - return fileDescriptor_35e560d0f079cc1d, []int{0, 0, 0} -} - -func (m *Output_Record_Field) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Output_Record_Field.Unmarshal(m, b) -} -func (m *Output_Record_Field) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Output_Record_Field.Marshal(b, m, deterministic) -} -func (m *Output_Record_Field) XXX_Merge(src proto.Message) { - xxx_messageInfo_Output_Record_Field.Merge(m, src) -} -func (m *Output_Record_Field) XXX_Size() int { - return xxx_messageInfo_Output_Record_Field.Size(m) -} -func (m *Output_Record_Field) XXX_DiscardUnknown() { - xxx_messageInfo_Output_Record_Field.DiscardUnknown(m) -} - -var xxx_messageInfo_Output_Record_Field proto.InternalMessageInfo - -type isOutput_Record_Field_Value interface { - isOutput_Record_Field_Value() -} - -type Output_Record_Field_Text struct { - Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"` -} - -type Output_Record_Field_Number struct { - Number int32 `protobuf:"varint,2,opt,name=number,proto3,oneof"` -} - -type Output_Record_Field_Error struct { - Error Output_Record_Field_ERROR `protobuf:"varint,3,opt,name=error,proto3,enum=devtools.buildozer.Output_Record_Field_ERROR,oneof"` -} - -type Output_Record_Field_List struct { - List *RepeatedString `protobuf:"bytes,5,opt,name=list,proto3,oneof"` -} - -func (*Output_Record_Field_Text) isOutput_Record_Field_Value() {} - -func (*Output_Record_Field_Number) isOutput_Record_Field_Value() {} - -func (*Output_Record_Field_Error) isOutput_Record_Field_Value() {} - -func (*Output_Record_Field_List) isOutput_Record_Field_Value() {} - -func (m *Output_Record_Field) GetValue() isOutput_Record_Field_Value { - if m != nil { - return m.Value - } - return nil -} - -func (m *Output_Record_Field) GetText() string { - if x, ok := m.GetValue().(*Output_Record_Field_Text); ok { - return x.Text - } - return "" -} - -func (m *Output_Record_Field) GetNumber() int32 { - if x, ok := m.GetValue().(*Output_Record_Field_Number); ok { - return x.Number - } - return 0 -} - -func (m *Output_Record_Field) GetError() Output_Record_Field_ERROR { - if x, ok := m.GetValue().(*Output_Record_Field_Error); ok { - return x.Error - } - return Output_Record_Field_UNKNOWN -} - -func (m *Output_Record_Field) GetList() *RepeatedString { - if x, ok := m.GetValue().(*Output_Record_Field_List); ok { - return x.List - } - return nil -} - -func (m *Output_Record_Field) GetQuoteWhenPrinting() bool { - if m != nil { - return m.QuoteWhenPrinting - } - return false -} - -// XXX_OneofWrappers is for the internal use of the proto package. -func (*Output_Record_Field) XXX_OneofWrappers() []interface{} { - return []interface{}{ - (*Output_Record_Field_Text)(nil), - (*Output_Record_Field_Number)(nil), - (*Output_Record_Field_Error)(nil), - (*Output_Record_Field_List)(nil), - } -} - -type RepeatedString struct { - Strings []string `protobuf:"bytes,1,rep,name=strings,proto3" json:"strings,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *RepeatedString) Reset() { *m = RepeatedString{} } -func (m *RepeatedString) String() string { return proto.CompactTextString(m) } -func (*RepeatedString) ProtoMessage() {} -func (*RepeatedString) Descriptor() ([]byte, []int) { - return fileDescriptor_35e560d0f079cc1d, []int{1} -} - -func (m *RepeatedString) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RepeatedString.Unmarshal(m, b) -} -func (m *RepeatedString) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RepeatedString.Marshal(b, m, deterministic) -} -func (m *RepeatedString) XXX_Merge(src proto.Message) { - xxx_messageInfo_RepeatedString.Merge(m, src) -} -func (m *RepeatedString) XXX_Size() int { - return xxx_messageInfo_RepeatedString.Size(m) -} -func (m *RepeatedString) XXX_DiscardUnknown() { - xxx_messageInfo_RepeatedString.DiscardUnknown(m) -} - -var xxx_messageInfo_RepeatedString proto.InternalMessageInfo - -func (m *RepeatedString) GetStrings() []string { - if m != nil { - return m.Strings - } - return nil -} - -func init() { - proto.RegisterEnum("devtools.buildozer.Output_Record_Field_ERROR", Output_Record_Field_ERROR_name, Output_Record_Field_ERROR_value) - proto.RegisterType((*Output)(nil), "devtools.buildozer.Output") - proto.RegisterType((*Output_Record)(nil), "devtools.buildozer.Output.Record") - proto.RegisterType((*Output_Record_Field)(nil), "devtools.buildozer.Output.Record.Field") - proto.RegisterType((*RepeatedString)(nil), "devtools.buildozer.RepeatedString") -} - -func init() { proto.RegisterFile("api_proto/api.proto", fileDescriptor_35e560d0f079cc1d) } - -var fileDescriptor_35e560d0f079cc1d = []byte{ - // 346 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xc1, 0x6a, 0xe3, 0x30, - 0x10, 0x86, 0xad, 0x24, 0xb6, 0x37, 0x63, 0x08, 0x59, 0x65, 0x0f, 0x22, 0x27, 0xc7, 0x97, 0x35, - 0x0b, 0xab, 0x85, 0xec, 0xa5, 0xd0, 0x43, 0x21, 0x90, 0x36, 0xa1, 0xd4, 0x29, 0x0a, 0x25, 0xd0, - 0x4b, 0x70, 0x6a, 0x35, 0x11, 0xb8, 0x96, 0x2b, 0xcb, 0x69, 0xe9, 0x73, 0xf4, 0x21, 0xfa, 0x58, - 0x7d, 0x94, 0x62, 0x39, 0x09, 0x94, 0x16, 0xda, 0x93, 0xe6, 0x9f, 0x99, 0xef, 0xff, 0x85, 0x10, - 0xf4, 0xe2, 0x5c, 0x2c, 0x73, 0x25, 0xb5, 0xfc, 0x17, 0xe7, 0x82, 0x9a, 0x0a, 0xe3, 0x84, 0x6f, - 0xb5, 0x94, 0x69, 0x41, 0x57, 0xa5, 0x48, 0x13, 0xf9, 0xc4, 0x55, 0xf0, 0xd2, 0x04, 0x67, 0x56, - 0xea, 0xbc, 0xd4, 0xf8, 0x18, 0x5c, 0xc5, 0x6f, 0xa4, 0x4a, 0x0a, 0x82, 0xfc, 0x66, 0xe8, 0x0d, - 0x07, 0xf4, 0x23, 0x40, 0xeb, 0x65, 0xca, 0xcc, 0x26, 0xdb, 0x13, 0xfd, 0xd7, 0x06, 0x38, 0x75, - 0x0f, 0x9f, 0x80, 0x73, 0x2b, 0x78, 0x7a, 0xb0, 0xf9, 0xfd, 0xa5, 0x0d, 0x3d, 0xad, 0xf6, 0xd9, - 0x0e, 0xeb, 0x3f, 0x37, 0xc0, 0x36, 0x1d, 0xfc, 0x0b, 0x5a, 0x9a, 0x3f, 0x6a, 0x82, 0x7c, 0x14, - 0xb6, 0x27, 0x16, 0x33, 0x0a, 0x13, 0x70, 0xb2, 0xf2, 0x6e, 0xc5, 0x15, 0x69, 0xf8, 0x28, 0xb4, - 0x27, 0x16, 0xdb, 0x69, 0x3c, 0x06, 0x9b, 0x2b, 0x25, 0x15, 0x69, 0xfa, 0x28, 0xec, 0x0c, 0xff, - 0x7e, 0x33, 0x99, 0x8e, 0x19, 0x9b, 0xb1, 0x89, 0xc5, 0x6a, 0x1a, 0x1f, 0x41, 0x2b, 0x15, 0x85, - 0x26, 0xb6, 0x8f, 0x42, 0x6f, 0x18, 0x7c, 0xe6, 0xc2, 0x78, 0xce, 0x63, 0xcd, 0x93, 0xb9, 0x56, - 0x22, 0x5b, 0x57, 0x57, 0xab, 0x08, 0x4c, 0xa1, 0x77, 0x5f, 0x4a, 0xcd, 0x97, 0x0f, 0x1b, 0x9e, - 0x2d, 0x73, 0x25, 0x32, 0x2d, 0xb2, 0x35, 0x71, 0x7d, 0x14, 0xfe, 0x60, 0x3f, 0xcd, 0x68, 0xb1, - 0xe1, 0xd9, 0xe5, 0x6e, 0x10, 0x0c, 0xc0, 0x36, 0xd9, 0xd8, 0x03, 0xf7, 0x2a, 0x3a, 0x8f, 0x66, - 0x8b, 0xa8, 0x6b, 0x55, 0xe2, 0x62, 0x3a, 0x9f, 0x4f, 0xa3, 0xb3, 0x2e, 0x1a, 0xb9, 0x60, 0x6f, - 0xe3, 0xb4, 0xe4, 0xc1, 0x1f, 0xe8, 0xbc, 0x4f, 0xc5, 0x04, 0xdc, 0xc2, 0x54, 0xf5, 0x53, 0xb7, - 0xd9, 0x5e, 0x8e, 0xbc, 0xeb, 0xf6, 0xe1, 0x07, 0xac, 0x1c, 0x73, 0xfc, 0x7f, 0x0b, 0x00, 0x00, - 0xff, 0xff, 0xa1, 0xc3, 0xf5, 0x19, 0x15, 0x02, 0x00, 0x00, -} diff --git a/vendor/github.com/bazelbuild/buildtools/api_proto/api.proto b/vendor/github.com/bazelbuild/buildtools/api_proto/api.proto deleted file mode 100644 index 390b960e25f..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/api_proto/api.proto +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ -syntax = "proto3"; - -package devtools.buildozer; - -option go_package = "api_proto"; - -message Output { - repeated Record records = 1; - message Record { - repeated Field fields = 1; - message Field { - oneof value { - string text = 1; - int32 number = 2; - ERROR error = 3; - RepeatedString list = 5; - } - // Used internally by Buildozer to decide whether a field should be quoted - // when printing. This does not affect the contents of 'value'. - bool quote_when_printing = 7; - - enum ERROR { - UNKNOWN = 0; - MISSING = 1; - } - } - } -} - -message RepeatedString { - repeated string strings = 1; -} diff --git a/vendor/github.com/bazelbuild/buildtools/build/BUILD b/vendor/github.com/bazelbuild/buildtools/build/BUILD deleted file mode 100644 index bca95ccc59b..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/BUILD +++ /dev/null @@ -1,33 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "lex.go", - "parse.y.go", - "print.go", - "quote.go", - "rewrite.go", - "rule.go", - "syntax.go", - "walk.go", - ], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/buildtools/build", - importpath = "github.com/bazelbuild/buildtools/build", - visibility = ["//visibility:public"], - deps = ["//vendor/github.com/bazelbuild/buildtools/tables:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/buildtools/build/build_defs.bzl b/vendor/github.com/bazelbuild/buildtools/build/build_defs.bzl deleted file mode 100644 index 91ac9e9825a..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/build_defs.bzl +++ /dev/null @@ -1,133 +0,0 @@ -"""Provides go_yacc and genfile_check_test - -Copyright 2016 Google Inc. 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. -""" - -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) > /dev/null"), - visibility = visibility, - ) - -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 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 = r"""cat >$@ <<'eof' -#!/bin/bash -# Script generated by @com_github_bazelbuild_buildtools//build:build_defs.bzl - -# --- begin runfiles.bash initialization --- -# Copy-pasted from Bazel's Bash runfiles library (tools/bash/runfiles/runfiles.bash). -set -euo pipefail -if [[ ! -d "$${RUNFILES_DIR:-/dev/null}" && ! -f "$${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then - if [[ -f "$$0.runfiles_manifest" ]]; then - export RUNFILES_MANIFEST_FILE="$$0.runfiles_manifest" - elif [[ -f "$$0.runfiles/MANIFEST" ]]; then - export RUNFILES_MANIFEST_FILE="$$0.runfiles/MANIFEST" - elif [[ -f "$$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then - export RUNFILES_DIR="$$0.runfiles" - fi -fi -if [[ -f "$${RUNFILES_DIR:-/dev/null}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then - source "$${RUNFILES_DIR}/bazel_tools/tools/bash/runfiles/runfiles.bash" -elif [[ -f "$${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then - source "$$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \ - "$$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)" -else - echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash" - exit 1 -fi -# --- end runfiles.bash initialization --- - -[[ "$$1" = external/* ]] && F1="$${1#external/}" || F1="$$TEST_WORKSPACE/$$1" -[[ "$$2" = external/* ]] && F2="$${2#external/}" || F2="$$TEST_WORKSPACE/$$2" -F1="$$(rlocation "$$F1")" -F2="$$(rlocation "$$F2")" -diff -q "$$F1" "$$F2" -eof -""", - ) - native.sh_test( - name = src + "_checkshtest", - size = "small", - srcs = [src + "_check.sh"], - deps = ["@bazel_tools//tools/bash/runfiles"], - 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) diff --git a/vendor/github.com/bazelbuild/buildtools/build/lex.go b/vendor/github.com/bazelbuild/buildtools/build/lex.go deleted file mode 100644 index 9876b28d1da..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/lex.go +++ /dev/null @@ -1,862 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ -// Lexical scanning for BUILD file parser. - -package build - -import ( - "bytes" - "fmt" - "path/filepath" - "sort" - "strings" - "unicode/utf8" -) - -// 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 general Starlark files - TypeDefault FileType = 1 << iota - // TypeBuild represents BUILD files - TypeBuild - // TypeWorkspace represents WORKSPACE files - TypeWorkspace - // TypeBzl represents .bzl files - TypeBzl -) - -func (t FileType) String() string { - switch t { - case TypeDefault: - return "default" - case TypeBuild: - return "BUILD" - case TypeWorkspace: - return "WORKSPACE" - case TypeBzl: - return ".bzl" - } - 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 ParseBuild(filename string, data []byte) (*File, error) { - in := newInput(filename, data) - 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 -} - -// ParseBzl parses a file, marks it as a .bzl file and returns the corresponding parse tree. -// -// The filename is used only for generating error messages. -func ParseBzl(filename string, data []byte) (*File, error) { - in := newInput(filename, data) - f, err := in.parse() - if f != nil { - f.Type = TypeBzl - } - return f, err -} - -// ParseDefault parses a file, marks it as a generic Starlark 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 TypeDefault - } - basename := strings.ToLower(filepath.Base(filename)) - if strings.HasSuffix(basename, ".oss") { - basename = basename[:len(basename)-4] - } - ext := filepath.Ext(basename) - switch ext { - case ".bzl": - return TypeBzl - case ".sky": - return TypeDefault - } - base := basename[:len(basename)-len(ext)] - switch { - case ext == ".build" || base == "build" || strings.HasPrefix(base, "build."): - return TypeBuild - case ext == ".workspace" || base == "workspace" || strings.HasPrefix(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) - case TypeBzl: - return ParseBzl(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 = "" - } - 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 - 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 - parseError error // error encountered during parsing - - // Comment assignment state. - pre []Expr // all expressions, in preorder traversal - post []Expr // all expressions, in postorder traversal -} - -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 - // and for programmer bugs like array index errors. - // Turn both into error returns. Catching bug panics is - // especially important when processing many files. - defer func() { - if e := recover(); e != nil { - if e == in.parseError { - err = in.parseError - } else { - err = ParseError{Message: fmt.Sprintf("internal error: %v", e), Filename: in.filename, Pos: in.pos} - } - } - }() - - // Invoke the parser generated from parse.y. - yyParse(in) - if in.parseError != nil { - return nil, in.parseError - } - in.file.Path = in.filename - - // Assign comments to nearby syntax. - in.assignComments() - - return in.file, nil -} - -// Error is called to report an error. -// When called by the generated code s is always "syntax error". -// Error does not return: it panics. -func (in *input) Error(s string) { - if s == "syntax error" && in.lastToken != "" { - s += " near " + in.lastToken - } - in.parseError = ParseError{Message: s, Filename: in.filename, Pos: in.pos} - panic(in.parseError) -} - -// eof reports whether the input has reached end of file. -func (in *input) eof() bool { - return len(in.remaining) == 0 -} - -// peekRune returns the next rune in the input without consuming it. -func (in *input) peekRune() int { - if len(in.remaining) == 0 { - return 0 - } - r, _ := utf8.DecodeRune(in.remaining) - return int(r) -} - -// readRune consumes and returns the next rune in the input. -func (in *input) readRune() int { - if len(in.remaining) == 0 { - in.Error("internal lexer error: readRune at EOF") - } - r, size := utf8.DecodeRune(in.remaining) - in.remaining = in.remaining[size:] - if r == '\n' { - in.pos.Line++ - in.pos.LineRune = 1 - } else { - in.pos.LineRune++ - } - in.pos.Byte += size - return int(r) -} - -// startToken marks the beginning of the next input token. -// It must be followed by a call to endToken, once the token has -// been consumed using readRune. -func (in *input) startToken(val *yySymType) { - in.token = in.remaining - val.tok = "" - val.pos = in.pos -} - -// yySymType (used in the next few functions) is defined by the -// generated parser. It is a struct containing all the fields listed -// in parse.y's %union [sic] section. - -// endToken marks the end of an input token. -// It records the actual token string in val.tok if the caller -// has not done that already. -func (in *input) endToken(val *yySymType) { - if val.tok == "" { - tok := string(in.token[:len(in.token)-len(in.remaining)]) - val.tok = tok - in.lastToken = val.tok - } -} - -// Lex is called from the generated parser to obtain the next input token. -// It returns the token value (either a rune like '+' or a symbolic token _FOR) -// and sets val to the data associated with the token. -// -// For all our input tokens, the associated data is -// val.Pos (the position where the token begins) -// and val.Token (the input string corresponding to the token). -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() { - // 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.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 - } - - // 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 {, 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.Replace(prefix, []byte{' '}, []byte{}, -1) - isSuffix := true - if len(prefix) == 0 || - (len(prefix) == 2 && prefix[0] == ')' && prefix[1] == ':') || - prefix[len(prefix)-1] == '[' || - prefix[len(prefix)-1] == '(' || - prefix[len(prefix)-1] == '{' { - isSuffix = false - } - - // Consume comment without the \n it ends with. - in.startToken(val) - for len(in.remaining) > 0 && in.peekRune() != '\n' { - in.readRune() - } - - in.endToken(val) - - val.tok = strings.TrimRight(val.tok, "\n") - in.lastToken = "comment" - - // 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.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.lineComments = append(in.lineComments, Comment{val.pos, ""}) - } - 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 together with the \n. - in.readRune() - in.readRune() - continue - } - - // Found non-space non-comment. - 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) - - // End of file. - if in.eof() { - in.lastToken = "EOF" - return _EOF - } - - // Punctuation tokens. - switch c := in.peekRune(); c { - case '[', '(', '{': - in.depth++ - in.readRune() - return c - - case ']', ')', '}': - in.depth-- - in.readRune() - return c - - case '.', ':', ';', ',': // single-char tokens - in.readRune() - return c - - case '<', '>', '=', '!', '+', '-', '*', '/', '%', '|', '&', '~', '^': // possibly followed by = - in.readRune() - - if c == '~' { - // unary bitwise not, shouldn't be followed by anything - return c - } - - if c == '*' && in.peekRune() == '*' { - // double asterisk - in.readRune() - return _STAR_STAR - } - - if c == in.peekRune() { - switch c { - case '/': - // integer division - in.readRune() - c = _INT_DIV - case '<': - // left shift - in.readRune() - c = _BIT_LSH - case '>': - // right shift - in.readRune() - c = _BIT_RSH - } - } - - if in.peekRune() == '=' { - in.readRune() - switch c { - case '<': - return _LE - case '>': - return _GE - case '=': - return _EQ - case '!': - return _NE - default: - return _AUGM - } - } - return c - - case 'r': // possible beginning of raw quoted string - if len(in.remaining) < 2 || in.remaining[1] != '"' && in.remaining[1] != '\'' { - break - } - in.readRune() - c = in.peekRune() - fallthrough - - case '"', '\'': // quoted string - quote := c - if len(in.remaining) >= 3 && in.remaining[0] == byte(quote) && in.remaining[1] == byte(quote) && in.remaining[2] == byte(quote) { - // Triple-quoted string. - in.readRune() - in.readRune() - in.readRune() - var c1, c2, c3 int - for { - if in.eof() { - in.pos = val.pos - in.Error("unexpected EOF in string") - } - c1, c2, c3 = c2, c3, in.readRune() - if c1 == quote && c2 == quote && c3 == quote { - break - } - if c3 == '\\' { - if in.eof() { - in.pos = val.pos - in.Error("unexpected EOF in string") - } - in.readRune() - } - } - } else { - in.readRune() - for { - if in.eof() { - in.pos = val.pos - in.Error("unexpected EOF in string") - } - if in.peekRune() == '\n' { - in.Error("unexpected newline in string") - } - c := in.readRune() - if c == quote { - break - } - if c == '\\' { - if in.eof() { - in.pos = val.pos - in.Error("unexpected EOF in string") - } - in.readRune() - } - } - } - in.endToken(val) - s, triple, err := Unquote(val.tok) - if err != nil { - in.Error(fmt.Sprint(err)) - } - val.str = s - val.triple = triple - return _STRING - } - - // Checked all punctuation. Must be identifier token. - if c := in.peekRune(); !isIdent(c) { - in.Error(fmt.Sprintf("unexpected input character %#q", c)) - } - - // Scan over alphanumeric identifier. - for { - c := in.peekRune() - if !isIdent(c) { - break - } - in.readRune() - } - - // Call endToken to set val.tok to identifier we just scanned, - // so we can look to see if val.tok is a keyword. - in.endToken(val) - if k := keywordToken[val.tok]; k != 0 { - return k - } - switch val.tok { - case "pass": - return _PASS - case "break": - return _BREAK - case "continue": - return _CONTINUE - } - if len(val.tok) > 0 && val.tok[0] >= '0' && val.tok[0] <= '9' { - return _NUMBER - } - return _IDENT -} - -// isIdent reports whether c is an identifier rune. -// We treat all non-ASCII runes as identifier runes. -func isIdent(c int) bool { - return '0' <= c && c <= '9' || - 'A' <= c && c <= 'Z' || - 'a' <= c && c <= 'z' || - c == '_' || - c >= 0x80 -} - -// keywordToken records the special tokens for -// strings that should not be treated as ordinary identifiers. -var keywordToken = map[string]int{ - "and": _AND, - "for": _FOR, - "if": _IF, - "else": _ELSE, - "elif": _ELIF, - "in": _IN, - "is": _IS, - "lambda": _LAMBDA, - "load": _LOAD, - "not": _NOT, - "or": _OR, - "def": _DEF, - "return": _RETURN, -} - -// Comment assignment. -// We build two lists of all subexpressions, preorder and postorder. -// The preorder list is ordered by start location, with outer expressions first. -// The postorder list is ordered by end location, with outer expressions last. -// We use the preorder list to assign each whole-line comment to the syntax -// immediately following it, and we use the postorder list to assign each -// end-of-line comment to the syntax immediately preceding it. - -// order walks the expression adding it and its subexpressions to the -// preorder and postorder lists. -func (in *input) order(v Expr) { - if v != nil { - in.pre = append(in.pre, v) - } - switch v := v.(type) { - default: - panic(fmt.Errorf("order: unexpected type %T", v)) - case nil: - // nothing - case *End: - // nothing - case *File: - for _, stmt := range v.Stmt { - in.order(stmt) - } - case *CommentBlock: - // nothing - case *CallExpr: - in.order(v.X) - for _, x := range v.List { - in.order(x) - } - in.order(&v.End) - 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: - for _, x := range v.List { - in.order(x) - } - in.order(&v.End) - case *Comprehension: - in.order(v.Body) - for _, c := range v.Clauses { - in.order(c) - } - in.order(&v.End) - case *SetExpr: - for _, x := range v.List { - in.order(x) - } - in.order(&v.End) - case *ForClause: - in.order(v.Vars) - in.order(v.X) - case *IfClause: - in.order(v.Cond) - case *KeyValueExpr: - in.order(v.Key) - in.order(v.Value) - case *DictExpr: - for _, x := range v.List { - in.order(x) - } - in.order(&v.End) - case *TupleExpr: - for _, x := range v.List { - in.order(x) - } - if !v.NoBrackets { - in.order(&v.End) - } - case *UnaryExpr: - in.order(v.X) - case *BinaryExpr: - in.order(v.X) - in.order(v.Y) - case *AssignExpr: - in.order(v.LHS) - in.order(v.RHS) - case *ConditionalExpr: - in.order(v.Then) - in.order(v.Test) - in.order(v.Else) - case *ParenExpr: - in.order(v.X) - in.order(&v.End) - case *SliceExpr: - in.order(v.X) - 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 _, 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) - } - } - if v != nil { - in.post = append(in.post, v) - } -} - -// assignComments attaches comments to nearby syntax. -func (in *input) assignComments() { - // Generate preorder and postorder lists. - in.order(in.file) - in.assignSuffixComments() - in.assignLineComments() -} - -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 or to block statements - switch x.(type) { - case *File, *DefStmt, *IfStmt, *ForStmt, *CommentBlock: - continue - } - - _, end := x.Span() - xcom := x.Comment() - for len(suffix) > 0 && end.Byte <= suffix[len(suffix)-1].Start.Byte { - xcom.Suffix = append(xcom.Suffix, suffix[len(suffix)-1]) - suffix = suffix[:len(suffix)-1] - } - } - - // We assigned suffix comments in reverse. - // If multiple suffix comments were appended to the same - // expression node, they are now in reverse. Fix that. - for _, x := range in.post { - reverseComments(x.Comment().Suffix) - } - - // Remaining suffix comments go at beginning of file. - 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 { - list[i], list[j] = list[j], list[i] - } -} diff --git a/vendor/github.com/bazelbuild/buildtools/build/parse.y b/vendor/github.com/bazelbuild/buildtools/build/parse.y deleted file mode 100644 index aa7590ebe51..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/parse.y +++ /dev/null @@ -1,1217 +0,0 @@ -// BUILD file parser. - -// This is a yacc grammar. Its lexer is in lex.go. -// -// For a good introduction to writing yacc grammars, see -// Kernighan and Pike's book The Unix Programming Environment. -// -// The definitive yacc manual is -// Stephen C. Johnson and Ravi Sethi, "Yacc: A Parser Generator", -// online at http://plan9.bell-labs.com/sys/doc/yacc.pdf. - -%{ -package build -%} - -// The generated parser puts these fields in a struct named yySymType. -// (The name %union is historical, but it is inaccurate for Go.) -%union { - // input tokens - tok string // raw input syntax - str string // decoding of quoted string - pos Position // position of token - triple bool // was string triple quoted? - - // partial syntax trees - expr Expr - exprs []Expr - string *StringExpr - strings []*StringExpr - ifstmt *IfStmt - loadarg *struct{from Ident; to Ident} - loadargs []*struct{from Ident; to Ident} - - // supporting information - comma Position // position of trailing comma in list, if present - lastStmt Expr // most recent rule, to attach line comments to -} - -// These declarations set the type for a $ reference ($$, $1, $2, ...) -// based on the kind of symbol it refers to. Other fields can be referred -// to explicitly, as in $1. -// -// %token is for input tokens generated by the lexer. -// %type is for higher-level grammar rules defined here. -// -// It is possible to put multiple tokens per line, but it is easier to -// keep ordered using a sparser one-per-line list. - -%token '%' -%token '(' -%token ')' -%token '*' -%token '+' -%token ',' -%token '-' -%token '.' -%token '/' -%token ':' -%token '<' -%token '=' -%token '>' -%token '[' -%token ']' -%token '{' -%token '}' -%token '|' -%token '&' -%token '^' -%token '~' - -// By convention, yacc token names are all caps. -// However, we do not want to export them from the Go package -// we are creating, so prefix them all with underscores. - -%token _AUGM // augmented assignment -%token _AND // keyword and -%token _COMMENT // top-level # comment -%token _EOF // end of file -%token _EQ // operator == -%token _FOR // keyword for -%token _GE // operator >= -%token _IDENT // non-keyword identifier -%token _NUMBER // number -%token _IF // keyword if -%token _ELSE // keyword else -%token _ELIF // keyword elif -%token _IN // keyword in -%token _IS // keyword is -%token _LAMBDA // keyword lambda -%token _LOAD // keyword load -%token _LE // operator <= -%token _NE // operator != -%token _STAR_STAR // operator ** -%token _INT_DIV // operator // -%token _BIT_LSH // bitwise operator << -%token _BIT_RSH // bitwise operator >> -%token _NOT // keyword not -%token _OR // keyword or -%token _STRING // quoted string -%token _DEF // keyword def -%token _RETURN // keyword return -%token _PASS // keyword pass -%token _BREAK // keyword break -%token _CONTINUE // keyword continue -%token _INDENT // indentation -%token _UNINDENT // unindentation - -%type comma_opt -%type argument -%type arguments -%type arguments_opt -%type parameter -%type parameters -%type parameters_opt -%type test -%type test_opt -%type tests_opt -%type primary_expr -%type expr -%type expr_opt -%type tests -%type exprs -%type exprs_opt -%type loop_vars -%type for_clause -%type for_clause_with_if_clauses_opt -%type for_clauses_with_if_clauses_opt -%type ident -%type number -%type stmts -%type stmt // a simple_stmt or a for/if/def block -%type block_stmt // a single for/if/def statement -%type if_else_block // a complete if-elif-else block -%type if_chain // an elif-elif-else chain -%type elif // `elif` or `else if` token(s) -%type simple_stmt // One or many small_stmts on one line, e.g. 'a = f(x); return str(a)' -%type small_stmt // A single statement, e.g. 'a = f(x)' -%type small_stmts_continuation // A sequence of `';' small_stmt` -%type keyvalue -%type keyvalues -%type keyvalues_no_comma -%type string -%type strings -%type suite -%type comments -%type load_argument -%type load_arguments - -// Operator precedence. -// Operators listed lower in the table bind tighter. - -// We tag rules with this fake, low precedence to indicate -// that when the rule is involved in a shift/reduce -// conflict, we prefer that the parser shift (try for a longer parse). -// Shifting is the default resolution anyway, but stating it explicitly -// silences yacc's warning for that specific case. -%left ShiftInstead - -%left '\n' -%left _ASSERT -// '=' and augmented assignments have the lowest precedence -// e.g. "x = a if c > 0 else 'bar'" -// followed by -// 'if' and 'else' which have lower precedence than all other operators. -// e.g. "a, b if c > 0 else 'foo'" is either a tuple of (a,b) or 'foo' -// and not a tuple of "(a, (b if ... ))" -%left '=' _AUGM -%left _IF _ELSE _ELIF -%left ',' -%left ':' -%left _IS -%left _OR -%left _AND -%left '<' '>' _EQ _NE _LE _GE _NOT _IN -%left '|' -%left '^' -%left '&' -%left _BIT_LSH _BIT_RSH -%left '+' '-' -%left '*' '/' '%' _INT_DIV -%left '.' '[' '(' -%right _UNARY -%left _STRING - -%% - -// Grammar rules. -// -// A note on names: if foo is a rule, then foos is a sequence of foos -// (with interleaved commas or other syntax as appropriate) -// and foo_opt is an optional foo. - -file: - stmts _EOF - { - yylex.(*input).file = &File{Stmt: $1} - return 0 - } - -suite: - '\n' comments _INDENT stmts _UNINDENT - { - statements := $4 - if $2 != nil { - // $2 can only contain *CommentBlock objects, each of them contains a non-empty After slice - cb := $2[len($2)-1].(*CommentBlock) - // $4 can't be empty and can't start with a comment - stmt := $4[0] - start, _ := stmt.Span() - if start.Line - cb.After[len(cb.After)-1].Start.Line == 1 { - // The first statement of $4 starts on the next line after the last comment of $2. - // Attach the last comment to the first statement - stmt.Comment().Before = cb.After - $2 = $2[:len($2)-1] - } - statements = append($2, $4...) - } - $$ = statements - $$ = $4 - } -| simple_stmt linebreaks_opt - { - $$ = $1 - } - -linebreaks_opt: -| linebreaks_opt '\n' - -comments: - { - $$ = nil - $$ = nil - } -| comments _COMMENT '\n' - { - $$ = $1 - $$ = $1 - if $$ == nil { - cb := &CommentBlock{Start: $2} - $$ = append($$, cb) - $$ = cb - } - com := $$.Comment() - com.After = append(com.After, Comment{Start: $2, Token: $2}) - } -| comments '\n' - { - $$ = $1 - $$ = nil - } - -stmts: - { - $$ = nil - $$ = nil - } -| stmts stmt - { - // If this statement follows a comment block, - // attach the comments to the statement. - if cb, ok := $1.(*CommentBlock); ok { - $$ = append($1[:len($1)-1], $2...) - $2[0].Comment().Before = cb.After - $$ = $2 - break - } - - // Otherwise add to list. - $$ = append($1, $2...) - $$ = $2 - - // Consider this input: - // - // foo() - // # bar - // baz() - // - // If we've just parsed baz(), the # bar is attached to - // foo() as an After comment. Make it a Before comment - // for baz() instead. - if x := $1; x != nil { - com := x.Comment() - // stmt is never empty - $2[0].Comment().Before = com.After - com.After = nil - } - } -| stmts '\n' - { - // Blank line; sever last rule from future comments. - $$ = $1 - $$ = nil - } -| stmts _COMMENT '\n' - { - $$ = $1 - $$ = $1 - if $$ == nil { - cb := &CommentBlock{Start: $2} - $$ = append($$, cb) - $$ = cb - } - com := $$.Comment() - com.After = append(com.After, Comment{Start: $2, Token: $2}) - } - -stmt: - simple_stmt - { - $$ = $1 - $$ = $1[len($1)-1] - } -| block_stmt - { - $$ = []Expr{$1} - $$ = $1 - if cbs := extractTrailingComments($1); len(cbs) > 0 { - $$ = append($$, cbs...) - $$ = cbs[len(cbs)-1] - if $1 == nil { - $$ = nil - } - } - } - -block_stmt: - _DEF _IDENT '(' parameters_opt ')' ':' suite - { - $$ = &DefStmt{ - Function: Function{ - StartPos: $1, - Params: $4, - Body: $7, - }, - Name: $2, - ColonPos: $6, - ForceCompact: forceCompact($3, $4, $5), - ForceMultiLine: forceMultiLine($3, $4, $5), - } - $$ = $7 - } -| _FOR loop_vars _IN expr ':' suite - { - $$ = &ForStmt{ - For: $1, - Vars: $2, - X: $4, - Body: $6, - } - $$ = $6 - } -| if_else_block - { - $$ = $1 - $$ = $1 - } - -// One or several if-elif-elif statements -if_chain: - _IF expr ':' suite - { - $$ = &IfStmt{ - If: $1, - Cond: $2, - True: $4, - } - $$ = $4 - } -| if_chain elif expr ':' suite - { - $$ = $1 - inner := $1 - for len(inner.False) == 1 { - inner = inner.False[0].(*IfStmt) - } - inner.ElsePos = End{Pos: $2} - inner.False = []Expr{ - &IfStmt{ - If: $2, - Cond: $3, - True: $5, - }, - } - $$ = $5 - } - -// A complete if-elif-elif-else chain -if_else_block: - if_chain -| if_chain _ELSE ':' suite - { - $$ = $1 - inner := $1 - for len(inner.False) == 1 { - inner = inner.False[0].(*IfStmt) - } - inner.ElsePos = End{Pos: $2} - inner.False = $4 - $$ = $4 - } - -elif: - _ELSE _IF -| _ELIF - -simple_stmt: - small_stmt small_stmts_continuation semi_opt '\n' - { - $$ = append([]Expr{$1}, $2...) - $$ = $$[len($$)-1] - } - -small_stmts_continuation: - { - $$ = []Expr{} - } -| small_stmts_continuation ';' small_stmt - { - $$ = append($1, $3) - } - -small_stmt: - expr %prec ShiftInstead -| _RETURN expr - { - $$ = &ReturnStmt{ - Return: $1, - Result: $2, - } - } -| _RETURN - { - $$ = &ReturnStmt{ - Return: $1, - } - } -| expr '=' expr { $$ = binary($1, $2, $2, $3) } -| expr _AUGM expr { $$ = binary($1, $2, $2, $3) } -| _PASS - { - $$ = &BranchStmt{ - Token: $1, - TokenPos: $1, - } - } -| _BREAK - { - $$ = &BranchStmt{ - Token: $1, - TokenPos: $1, - } - } -| _CONTINUE - { - $$ = &BranchStmt{ - Token: $1, - TokenPos: $1, - } - } - -semi_opt: -| ';' - -primary_expr: - ident -| number -| primary_expr '.' _IDENT - { - $$ = &DotExpr{ - X: $1, - Dot: $2, - NamePos: $3, - Name: $3, - } - } -| _LOAD '(' string ',' load_arguments comma_opt ')' - { - load := &LoadStmt{ - Load: $1, - Module: $3, - Rparen: End{Pos: $7}, - ForceCompact: $1.Line == $7.Line, - } - for _, arg := range $5 { - load.From = append(load.From, &arg.from) - load.To = append(load.To, &arg.to) - } - $$ = load - } -| primary_expr '(' arguments_opt ')' - { - $$ = &CallExpr{ - X: $1, - ListStart: $2, - List: $3, - End: End{Pos: $4}, - ForceCompact: forceCompact($2, $3, $4), - ForceMultiLine: forceMultiLine($2, $3, $4), - } - } -| primary_expr '[' expr ']' - { - $$ = &IndexExpr{ - X: $1, - IndexStart: $2, - Y: $3, - End: $4, - } - } -| primary_expr '[' expr_opt ':' test_opt ']' - { - $$ = &SliceExpr{ - X: $1, - SliceStart: $2, - From: $3, - FirstColon: $4, - To: $5, - End: $6, - } - } -| primary_expr '[' expr_opt ':' test_opt ':' test_opt ']' - { - $$ = &SliceExpr{ - X: $1, - SliceStart: $2, - From: $3, - FirstColon: $4, - To: $5, - SecondColon: $6, - Step: $7, - End: $8, - } - } -| strings %prec ShiftInstead - { - if len($1) == 1 { - $$ = $1[0] - break - } - $$ = $1[0] - for _, x := range $1[1:] { - _, end := $$.Span() - $$ = binary($$, end, "+", x) - } - } -| '[' tests_opt ']' - { - $$ = &ListExpr{ - Start: $1, - List: $2, - End: End{Pos: $3}, - ForceMultiLine: forceMultiLine($1, $2, $3), - } - } -| '[' test for_clauses_with_if_clauses_opt ']' - { - $$ = &Comprehension{ - Curly: false, - Lbrack: $1, - Body: $2, - Clauses: $3, - End: End{Pos: $4}, - ForceMultiLine: forceMultiLineComprehension($1, $2, $3, $4), - } - } -| '{' keyvalue for_clauses_with_if_clauses_opt '}' - { - $$ = &Comprehension{ - Curly: true, - Lbrack: $1, - Body: $2, - Clauses: $3, - End: End{Pos: $4}, - ForceMultiLine: forceMultiLineComprehension($1, $2, $3, $4), - } - } -| '{' keyvalues '}' - { - $$ = &DictExpr{ - Start: $1, - List: $2, - End: End{Pos: $3}, - ForceMultiLine: forceMultiLine($1, $2, $3), - } - } -| '{' tests comma_opt '}' // TODO: remove, not supported - { - $$ = &SetExpr{ - Start: $1, - List: $2, - End: End{Pos: $4}, - ForceMultiLine: forceMultiLine($1, $2, $4), - } - } -| '(' tests_opt ')' - { - if len($2) == 1 && $2.Line == 0 { - // Just a parenthesized expression, not a tuple. - $$ = &ParenExpr{ - Start: $1, - X: $2[0], - End: End{Pos: $3}, - ForceMultiLine: forceMultiLine($1, $2, $3), - } - } else { - $$ = &TupleExpr{ - Start: $1, - List: $2, - End: End{Pos: $3}, - ForceCompact: forceCompact($1, $2, $3), - ForceMultiLine: forceMultiLine($1, $2, $3), - } - } - } - -arguments_opt: - { - $$ = nil - } -| arguments comma_opt - { - $$ = $1 - } - -arguments: - argument - { - $$ = []Expr{$1} - } -| arguments ',' argument - { - $$ = append($1, $3) - } - -argument: - test -| ident '=' test - { - $$ = binary($1, $2, $2, $3) - } -| '*' test - { - $$ = unary($1, $1, $2) - } -| _STAR_STAR test - { - $$ = unary($1, $1, $2) - } - -load_arguments: - load_argument { - $$ = []*struct{from Ident; to Ident}{$1} - } -| load_arguments ',' load_argument - { - $1 = append($1, $3) - $$ = $1 - } - -load_argument: - string { - start := $1.Start.add("'") - if $1.TripleQuote { - start = start.add("''") - } - $$ = &struct{from Ident; to Ident}{ - from: Ident{ - Name: $1.Value, - NamePos: start, - }, - to: Ident{ - Name: $1.Value, - NamePos: start, - }, - } - } -| ident '=' string - { - start := $3.Start.add("'") - if $3.TripleQuote { - start = start.add("''") - } - $$ = &struct{from Ident; to Ident}{ - from: Ident{ - Name: $3.Value, - NamePos: start, - }, - to: *$1.(*Ident), - } - } - -parameters_opt: - { - $$ = nil - } -| parameters comma_opt - { - $$ = $1 - } - -parameters: - parameter - { - $$ = []Expr{$1} - } -| parameters ',' parameter - { - $$ = append($1, $3) - } - -parameter: - ident -| ident '=' test - { - $$ = binary($1, $2, $2, $3) - } -| '*' ident - { - $$ = unary($1, $1, $2) - } -| '*' - { - $$ = unary($1, $1, nil) - } -| _STAR_STAR ident - { - $$ = unary($1, $1, $2) - } - -expr: - test -| expr ',' test - { - tuple, ok := $1.(*TupleExpr) - if !ok || !tuple.NoBrackets { - tuple = &TupleExpr{ - List: []Expr{$1}, - NoBrackets: true, - ForceCompact: true, - ForceMultiLine: false, - } - } - tuple.List = append(tuple.List, $3) - $$ = tuple - } - -expr_opt: - { - $$ = nil - } -| expr - -exprs: - expr - { - $$ = []Expr{$1} - } -| exprs ',' expr - { - $$ = append($1, $3) - } - -exprs_opt: - { - $$ = nil - } -| exprs comma_opt - { - $$ = $1 - } - -test: - primary_expr -| _LAMBDA exprs_opt ':' expr // TODO: remove, not supported - { - $$ = &LambdaExpr{ - Function: Function{ - StartPos: $1, - Params: $2, - Body: []Expr{$4}, - }, - } - } -| _NOT test %prec _UNARY { $$ = unary($1, $1, $2) } -| '-' test %prec _UNARY { $$ = unary($1, $1, $2) } -| '+' test %prec _UNARY { $$ = unary($1, $1, $2) } -| '~' test %prec _UNARY { $$ = unary($1, $1, $2) } -| test '*' test { $$ = binary($1, $2, $2, $3) } -| test '%' test { $$ = binary($1, $2, $2, $3) } -| test '/' test { $$ = binary($1, $2, $2, $3) } -| test _INT_DIV test { $$ = binary($1, $2, $2, $3) } -| test '+' test { $$ = binary($1, $2, $2, $3) } -| test '-' test { $$ = binary($1, $2, $2, $3) } -| test '<' test { $$ = binary($1, $2, $2, $3) } -| test '>' test { $$ = binary($1, $2, $2, $3) } -| test _EQ test { $$ = binary($1, $2, $2, $3) } -| test _LE test { $$ = binary($1, $2, $2, $3) } -| test _NE test { $$ = binary($1, $2, $2, $3) } -| test _GE test { $$ = binary($1, $2, $2, $3) } -| test _IN test { $$ = binary($1, $2, $2, $3) } -| test _NOT _IN test { $$ = binary($1, $2, "not in", $4) } -| test _OR test { $$ = binary($1, $2, $2, $3) } -| test _AND test { $$ = binary($1, $2, $2, $3) } -| test '|' test { $$ = binary($1, $2, $2, $3) } -| test '&' test { $$ = binary($1, $2, $2, $3) } -| test '^' test { $$ = binary($1, $2, $2, $3) } -| test _BIT_LSH test { $$ = binary($1, $2, $2, $3) } -| test _BIT_RSH test { $$ = binary($1, $2, $2, $3) } -| test _IS test - { - if b, ok := $3.(*UnaryExpr); ok && b.Op == "not" { - $$ = binary($1, $2, "is not", b.X) - } else { - $$ = binary($1, $2, $2, $3) - } - } -| test _IF test _ELSE test - { - $$ = &ConditionalExpr{ - Then: $1, - IfStart: $2, - Test: $3, - ElseStart: $4, - Else: $5, - } - } - -tests: - test - { - $$ = []Expr{$1} - } -| tests ',' test - { - $$ = append($1, $3) - } - -test_opt: - { - $$ = nil - } -| test - -tests_opt: - { - $$, $$ = nil, Position{} - } -| tests comma_opt - { - $$, $$ = $1, $2 - } - -// comma_opt is an optional comma. If the comma is present, -// the rule's value is the position of the comma. Otherwise -// the rule's value is the zero position. Tracking this -// lets us distinguish (x) and (x,). -comma_opt: - { - $$ = Position{} - } -| ',' - -keyvalue: - test ':' test { - $$ = &KeyValueExpr{ - Key: $1, - Colon: $2, - Value: $3, - } - } - -keyvalues_no_comma: - keyvalue - { - $$ = []Expr{$1} - } -| keyvalues_no_comma ',' keyvalue - { - $$ = append($1, $3) - } - -keyvalues: - { - $$ = nil - } -| keyvalues_no_comma - { - $$ = $1 - } -| keyvalues_no_comma ',' - { - $$ = $1 - } - -loop_vars: - primary_expr -| loop_vars ',' primary_expr - { - tuple, ok := $1.(*TupleExpr) - if !ok || !tuple.NoBrackets { - tuple = &TupleExpr{ - List: []Expr{$1}, - NoBrackets: true, - ForceCompact: true, - ForceMultiLine: false, - } - } - tuple.List = append(tuple.List, $3) - $$ = tuple - } - -string: - _STRING - { - $$ = &StringExpr{ - Start: $1, - Value: $1, - TripleQuote: $1, - End: $1.add($1), - Token: $1, - } - } - -strings: - string - { - $$ = []*StringExpr{$1} - } -| strings string - { - $$ = append($1, $2) - } - -ident: - _IDENT - { - $$ = &Ident{NamePos: $1, Name: $1} - } - -number: - _NUMBER - { - $$ = &LiteralExpr{Start: $1, Token: $1} - } - -for_clause: - _FOR loop_vars _IN test - { - $$ = &ForClause{ - For: $1, - Vars: $2, - In: $3, - X: $4, - } - } - -for_clause_with_if_clauses_opt: - for_clause { - $$ = []Expr{$1} - } -| for_clause_with_if_clauses_opt _IF test { - $$ = append($1, &IfClause{ - If: $2, - Cond: $3, - }) - } - -for_clauses_with_if_clauses_opt: - for_clause_with_if_clauses_opt - { - $$ = $1 - } -| for_clauses_with_if_clauses_opt for_clause_with_if_clauses_opt { - $$ = append($1, $2...) - } - -%% - -// Go helper code. - -// unary returns a unary expression with the given -// position, operator, and subexpression. -func unary(pos Position, op string, x Expr) Expr { - return &UnaryExpr{ - OpStart: pos, - Op: op, - X: x, - } -} - -// binary returns a binary expression with the given -// operands, position, and operator. -func binary(x Expr, pos Position, op string, y Expr) Expr { - _, xend := x.Span() - ystart, _ := y.Span() - - switch op { - case "=", "+=", "-=", "*=", "/=", "//=", "%=", "|=": - return &AssignExpr{ - LHS: x, - OpPos: pos, - Op: op, - LineBreak: xend.Line < ystart.Line, - RHS: y, - } - } - - return &BinaryExpr{ - X: x, - OpStart: pos, - Op: op, - LineBreak: xend.Line < ystart.Line, - Y: y, - } -} - -// isSimpleExpression returns whether an expression is simple and allowed to exist in -// compact forms of sequences. -// The formal criteria are the following: an expression is considered simple if it's -// a literal (variable, string or a number), a literal with a unary operator or an empty sequence. -func isSimpleExpression(expr *Expr) bool { - switch x := (*expr).(type) { - case *LiteralExpr, *StringExpr, *Ident: - return true - case *UnaryExpr: - _, literal := x.X.(*LiteralExpr) - _, ident := x.X.(*Ident) - return literal || ident - case *ListExpr: - return len(x.List) == 0 - case *TupleExpr: - return len(x.List) == 0 - case *DictExpr: - return len(x.List) == 0 - case *SetExpr: - return len(x.List) == 0 - default: - return false - } -} - -// forceCompact returns the setting for the ForceCompact field for a call or tuple. -// -// NOTE 1: The field is called ForceCompact, not ForceSingleLine, -// because it only affects the formatting associated with the call or tuple syntax, -// not the formatting of the arguments. For example: -// -// call([ -// 1, -// 2, -// 3, -// ]) -// -// is still a compact call even though it runs on multiple lines. -// -// In contrast the multiline form puts a linebreak after the (. -// -// call( -// [ -// 1, -// 2, -// 3, -// ], -// ) -// -// NOTE 2: Because of NOTE 1, we cannot use start and end on the -// same line as a signal for compact mode: the formatting of an -// embedded list might move the end to a different line, which would -// then look different on rereading and cause buildifier not to be -// idempotent. Instead, we have to look at properties guaranteed -// to be preserved by the reformatting, namely that the opening -// paren and the first expression are on the same line and that -// each subsequent expression begins on the same line as the last -// one ended (no line breaks after comma). -func forceCompact(start Position, list []Expr, end Position) bool { - if len(list) <= 1 { - // The call or tuple will probably be compact anyway; don't force it. - return false - } - - // If there are any named arguments or non-string, non-literal - // arguments, cannot force compact mode. - line := start.Line - for _, x := range list { - start, end := x.Span() - if start.Line != line { - return false - } - line = end.Line - if !isSimpleExpression(&x) { - return false - } - } - return end.Line == line -} - -// forceMultiLine returns the setting for the ForceMultiLine field. -func forceMultiLine(start Position, list []Expr, end Position) bool { - if len(list) > 1 { - // The call will be multiline anyway, because it has multiple elements. Don't force it. - return false - } - - if len(list) == 0 { - // Empty list: use position of brackets. - return start.Line != end.Line - } - - // Single-element list. - // Check whether opening bracket is on different line than beginning of - // element, or closing bracket is on different line than end of element. - elemStart, elemEnd := list[0].Span() - return start.Line != elemStart.Line || end.Line != elemEnd.Line -} - -// forceMultiLineComprehension returns the setting for the ForceMultiLine field for a comprehension. -func forceMultiLineComprehension(start Position, expr Expr, clauses []Expr, end Position) bool { - // Return true if there's at least one line break between start, expr, each clause, and end - exprStart, exprEnd := expr.Span() - if start.Line != exprStart.Line { - return true - } - previousEnd := exprEnd - for _, clause := range clauses { - clauseStart, clauseEnd := clause.Span() - if previousEnd.Line != clauseStart.Line { - return true - } - previousEnd = clauseEnd - } - return previousEnd.Line != end.Line -} - -// extractTrailingComments extracts trailing comments of an indented block starting with the first -// comment line with indentation less than the block indentation. -// The comments can either belong to CommentBlock statements or to the last non-comment statement -// as After-comments. -func extractTrailingComments(stmt Expr) []Expr { - body := getLastBody(stmt) - var comments []Expr - if body != nil && len(*body) > 0 { - // Get the current indentation level - start, _ := (*body)[0].Span() - indentation := start.LineRune - - // Find the last non-comment statement - lastNonCommentIndex := -1 - for i, stmt := range *body { - if _, ok := stmt.(*CommentBlock); !ok { - lastNonCommentIndex = i - } - } - if lastNonCommentIndex == -1 { - return comments - } - - // Iterate over the trailing comments, find the first comment line that's not indented enough, - // dedent it and all the following comments. - for i := lastNonCommentIndex; i < len(*body); i++ { - stmt := (*body)[i] - if comment := extractDedentedComment(stmt, indentation); comment != nil { - // This comment and all the following CommentBlock statements are to be extracted. - comments = append(comments, comment) - comments = append(comments, (*body)[i+1:]...) - *body = (*body)[:i+1] - // If the current statement is a CommentBlock statement without any comment lines - // it should be removed too. - if i > lastNonCommentIndex && len(stmt.Comment().After) == 0 { - *body = (*body)[:i] - } - } - } - } - return comments -} - -// extractDedentedComment extract the first comment line from `stmt` which indentation is smaller -// than `indentation`, and all following comment lines, and returns them in a newly created -// CommentBlock statement. -func extractDedentedComment(stmt Expr, indentation int) Expr { - for i, line := range stmt.Comment().After { - // line.Start.LineRune == 0 can't exist in parsed files, it indicates that the comment line - // has been added by an AST modification. Don't take such lines into account. - if line.Start.LineRune > 0 && line.Start.LineRune < indentation { - // This and all the following lines should be dedented - cb := &CommentBlock{ - Start: line.Start, - Comments: Comments{After: stmt.Comment().After[i:]}, - } - stmt.Comment().After = stmt.Comment().After[:i] - return cb - } - } - return nil -} - -// getLastBody returns the last body of a block statement (the only body for For- and DefStmt -// objects, the last in a if-elif-else chain -func getLastBody(stmt Expr) *[]Expr { - switch block := stmt.(type) { - case *DefStmt: - return &block.Body - case *ForStmt: - return &block.Body - case *IfStmt: - if len(block.False) == 0 { - return &block.True - } else if len(block.False) == 1 { - if next, ok := block.False[0].(*IfStmt); ok { - // Recursively find the last block of the chain - return getLastBody(next) - } - } - return &block.False - } - return nil -} diff --git a/vendor/github.com/bazelbuild/buildtools/build/parse.y.go b/vendor/github.com/bazelbuild/buildtools/build/parse.y.go deleted file mode 100644 index ae72e87ac2c..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/parse.y.go +++ /dev/null @@ -1,1986 +0,0 @@ -//line build/parse.y:13 -package build - -import __yyfmt__ "fmt" - -//line build/parse.y:13 - -//line build/parse.y:18 -type yySymType struct { - yys int - // input tokens - tok string // raw input syntax - str string // decoding of quoted string - pos Position // position of token - triple bool // was string triple quoted? - - // partial syntax trees - expr Expr - exprs []Expr - string *StringExpr - strings []*StringExpr - ifstmt *IfStmt - loadarg *struct { - from Ident - to Ident - } - loadargs []*struct { - from Ident - to Ident - } - - // supporting information - comma Position // position of trailing comma in list, if present - lastStmt Expr // most recent rule, to attach line comments to -} - -const _AUGM = 57346 -const _AND = 57347 -const _COMMENT = 57348 -const _EOF = 57349 -const _EQ = 57350 -const _FOR = 57351 -const _GE = 57352 -const _IDENT = 57353 -const _NUMBER = 57354 -const _IF = 57355 -const _ELSE = 57356 -const _ELIF = 57357 -const _IN = 57358 -const _IS = 57359 -const _LAMBDA = 57360 -const _LOAD = 57361 -const _LE = 57362 -const _NE = 57363 -const _STAR_STAR = 57364 -const _INT_DIV = 57365 -const _BIT_LSH = 57366 -const _BIT_RSH = 57367 -const _NOT = 57368 -const _OR = 57369 -const _STRING = 57370 -const _DEF = 57371 -const _RETURN = 57372 -const _PASS = 57373 -const _BREAK = 57374 -const _CONTINUE = 57375 -const _INDENT = 57376 -const _UNINDENT = 57377 -const ShiftInstead = 57378 -const _ASSERT = 57379 -const _UNARY = 57380 - -var yyToknames = [...]string{ - "$end", - "error", - "$unk", - "'%'", - "'('", - "')'", - "'*'", - "'+'", - "','", - "'-'", - "'.'", - "'/'", - "':'", - "'<'", - "'='", - "'>'", - "'['", - "']'", - "'{'", - "'}'", - "'|'", - "'&'", - "'^'", - "'~'", - "_AUGM", - "_AND", - "_COMMENT", - "_EOF", - "_EQ", - "_FOR", - "_GE", - "_IDENT", - "_NUMBER", - "_IF", - "_ELSE", - "_ELIF", - "_IN", - "_IS", - "_LAMBDA", - "_LOAD", - "_LE", - "_NE", - "_STAR_STAR", - "_INT_DIV", - "_BIT_LSH", - "_BIT_RSH", - "_NOT", - "_OR", - "_STRING", - "_DEF", - "_RETURN", - "_PASS", - "_BREAK", - "_CONTINUE", - "_INDENT", - "_UNINDENT", - "ShiftInstead", - "'\\n'", - "_ASSERT", - "_UNARY", - "';'", -} -var yyStatenames = [...]string{} - -const yyEofCode = 1 -const yyErrCode = 2 -const yyInitialStackSize = 16 - -//line build/parse.y:977 - -// Go helper code. - -// unary returns a unary expression with the given -// position, operator, and subexpression. -func unary(pos Position, op string, x Expr) Expr { - return &UnaryExpr{ - OpStart: pos, - Op: op, - X: x, - } -} - -// binary returns a binary expression with the given -// operands, position, and operator. -func binary(x Expr, pos Position, op string, y Expr) Expr { - _, xend := x.Span() - ystart, _ := y.Span() - - switch op { - case "=", "+=", "-=", "*=", "/=", "//=", "%=", "|=": - return &AssignExpr{ - LHS: x, - OpPos: pos, - Op: op, - LineBreak: xend.Line < ystart.Line, - RHS: y, - } - } - - return &BinaryExpr{ - X: x, - OpStart: pos, - Op: op, - LineBreak: xend.Line < ystart.Line, - Y: y, - } -} - -// isSimpleExpression returns whether an expression is simple and allowed to exist in -// compact forms of sequences. -// The formal criteria are the following: an expression is considered simple if it's -// a literal (variable, string or a number), a literal with a unary operator or an empty sequence. -func isSimpleExpression(expr *Expr) bool { - switch x := (*expr).(type) { - case *LiteralExpr, *StringExpr, *Ident: - return true - case *UnaryExpr: - _, literal := x.X.(*LiteralExpr) - _, ident := x.X.(*Ident) - return literal || ident - case *ListExpr: - return len(x.List) == 0 - case *TupleExpr: - return len(x.List) == 0 - case *DictExpr: - return len(x.List) == 0 - case *SetExpr: - return len(x.List) == 0 - default: - return false - } -} - -// forceCompact returns the setting for the ForceCompact field for a call or tuple. -// -// NOTE 1: The field is called ForceCompact, not ForceSingleLine, -// because it only affects the formatting associated with the call or tuple syntax, -// not the formatting of the arguments. For example: -// -// call([ -// 1, -// 2, -// 3, -// ]) -// -// is still a compact call even though it runs on multiple lines. -// -// In contrast the multiline form puts a linebreak after the (. -// -// call( -// [ -// 1, -// 2, -// 3, -// ], -// ) -// -// NOTE 2: Because of NOTE 1, we cannot use start and end on the -// same line as a signal for compact mode: the formatting of an -// embedded list might move the end to a different line, which would -// then look different on rereading and cause buildifier not to be -// idempotent. Instead, we have to look at properties guaranteed -// to be preserved by the reformatting, namely that the opening -// paren and the first expression are on the same line and that -// each subsequent expression begins on the same line as the last -// one ended (no line breaks after comma). -func forceCompact(start Position, list []Expr, end Position) bool { - if len(list) <= 1 { - // The call or tuple will probably be compact anyway; don't force it. - return false - } - - // If there are any named arguments or non-string, non-literal - // arguments, cannot force compact mode. - line := start.Line - for _, x := range list { - start, end := x.Span() - if start.Line != line { - return false - } - line = end.Line - if !isSimpleExpression(&x) { - return false - } - } - return end.Line == line -} - -// forceMultiLine returns the setting for the ForceMultiLine field. -func forceMultiLine(start Position, list []Expr, end Position) bool { - if len(list) > 1 { - // The call will be multiline anyway, because it has multiple elements. Don't force it. - return false - } - - if len(list) == 0 { - // Empty list: use position of brackets. - return start.Line != end.Line - } - - // Single-element list. - // Check whether opening bracket is on different line than beginning of - // element, or closing bracket is on different line than end of element. - elemStart, elemEnd := list[0].Span() - return start.Line != elemStart.Line || end.Line != elemEnd.Line -} - -// forceMultiLineComprehension returns the setting for the ForceMultiLine field for a comprehension. -func forceMultiLineComprehension(start Position, expr Expr, clauses []Expr, end Position) bool { - // Return true if there's at least one line break between start, expr, each clause, and end - exprStart, exprEnd := expr.Span() - if start.Line != exprStart.Line { - return true - } - previousEnd := exprEnd - for _, clause := range clauses { - clauseStart, clauseEnd := clause.Span() - if previousEnd.Line != clauseStart.Line { - return true - } - previousEnd = clauseEnd - } - return previousEnd.Line != end.Line -} - -// extractTrailingComments extracts trailing comments of an indented block starting with the first -// comment line with indentation less than the block indentation. -// The comments can either belong to CommentBlock statements or to the last non-comment statement -// as After-comments. -func extractTrailingComments(stmt Expr) []Expr { - body := getLastBody(stmt) - var comments []Expr - if body != nil && len(*body) > 0 { - // Get the current indentation level - start, _ := (*body)[0].Span() - indentation := start.LineRune - - // Find the last non-comment statement - lastNonCommentIndex := -1 - for i, stmt := range *body { - if _, ok := stmt.(*CommentBlock); !ok { - lastNonCommentIndex = i - } - } - if lastNonCommentIndex == -1 { - return comments - } - - // Iterate over the trailing comments, find the first comment line that's not indented enough, - // dedent it and all the following comments. - for i := lastNonCommentIndex; i < len(*body); i++ { - stmt := (*body)[i] - if comment := extractDedentedComment(stmt, indentation); comment != nil { - // This comment and all the following CommentBlock statements are to be extracted. - comments = append(comments, comment) - comments = append(comments, (*body)[i+1:]...) - *body = (*body)[:i+1] - // If the current statement is a CommentBlock statement without any comment lines - // it should be removed too. - if i > lastNonCommentIndex && len(stmt.Comment().After) == 0 { - *body = (*body)[:i] - } - } - } - } - return comments -} - -// extractDedentedComment extract the first comment line from `stmt` which indentation is smaller -// than `indentation`, and all following comment lines, and returns them in a newly created -// CommentBlock statement. -func extractDedentedComment(stmt Expr, indentation int) Expr { - for i, line := range stmt.Comment().After { - // line.Start.LineRune == 0 can't exist in parsed files, it indicates that the comment line - // has been added by an AST modification. Don't take such lines into account. - if line.Start.LineRune > 0 && line.Start.LineRune < indentation { - // This and all the following lines should be dedented - cb := &CommentBlock{ - Start: line.Start, - Comments: Comments{After: stmt.Comment().After[i:]}, - } - stmt.Comment().After = stmt.Comment().After[:i] - return cb - } - } - return nil -} - -// getLastBody returns the last body of a block statement (the only body for For- and DefStmt -// objects, the last in a if-elif-else chain -func getLastBody(stmt Expr) *[]Expr { - switch block := stmt.(type) { - case *DefStmt: - return &block.Body - case *ForStmt: - return &block.Body - case *IfStmt: - if len(block.False) == 0 { - return &block.True - } else if len(block.False) == 1 { - if next, ok := block.False[0].(*IfStmt); ok { - // Recursively find the last block of the chain - return getLastBody(next) - } - } - return &block.False - } - return nil -} - -//line yacctab:1 -var yyExca = [...]int{ - -1, 1, - 1, -1, - -2, 0, -} - -const yyPrivate = 57344 - -const yyLast = 818 - -var yyAct = [...]int{ - - 19, 212, 27, 171, 36, 209, 7, 2, 162, 134, - 143, 147, 89, 41, 9, 97, 21, 169, 146, 222, - 233, 224, 158, 38, 80, 81, 82, 83, 42, 37, - 120, 34, 87, 92, 95, 85, 188, 51, 34, 164, - 50, 54, 131, 55, 40, 52, 103, 221, 37, 149, - 223, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 34, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 192, 165, 135, 53, 136, 33, - 51, 153, 13, 50, 48, 49, 88, 100, 52, 144, - 100, 31, 51, 32, 86, 50, 54, 46, 55, 151, - 52, 163, 154, 73, 105, 79, 34, 35, 152, 66, - 67, 68, 159, 45, 29, 216, 239, 167, 99, 91, - 53, 172, 181, 37, 186, 106, 101, 102, 94, 45, - 104, 191, 53, 69, 70, 43, 149, 226, 179, 180, - 75, 149, 225, 145, 176, 44, 74, 229, 174, 199, - 45, 190, 76, 178, 202, 217, 193, 195, 187, 139, - 182, 45, 141, 189, 187, 168, 42, 200, 201, 194, - 228, 45, 197, 198, 206, 130, 185, 177, 135, 208, - 136, 45, 166, 210, 156, 150, 203, 207, 214, 215, - 213, 142, 235, 196, 175, 157, 98, 84, 96, 205, - 219, 163, 1, 211, 204, 51, 30, 218, 50, 54, - 93, 55, 90, 52, 39, 47, 18, 230, 12, 8, - 220, 4, 227, 67, 183, 184, 28, 210, 148, 232, - 236, 214, 234, 213, 237, 231, 7, 33, 77, 78, - 25, 140, 24, 160, 161, 53, 69, 70, 132, 31, - 133, 32, 0, 0, 0, 0, 26, 0, 0, 6, - 0, 0, 11, 0, 34, 35, 20, 0, 0, 0, - 0, 22, 29, 0, 0, 33, 0, 0, 25, 23, - 24, 37, 10, 14, 15, 16, 17, 31, 238, 32, - 5, 0, 0, 0, 26, 0, 0, 6, 3, 0, - 11, 0, 34, 35, 20, 0, 0, 0, 0, 22, - 29, 0, 0, 33, 0, 0, 25, 23, 24, 37, - 10, 14, 15, 16, 17, 31, 0, 32, 5, 0, - 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, - 34, 35, 0, 0, 0, 0, 0, 22, 29, 0, - 0, 0, 0, 0, 0, 23, 0, 37, 0, 14, - 15, 16, 17, 0, 51, 0, 170, 50, 54, 0, - 55, 0, 52, 155, 56, 0, 57, 0, 0, 0, - 0, 66, 67, 68, 0, 0, 65, 0, 0, 58, - 0, 61, 0, 0, 72, 0, 0, 62, 71, 0, - 0, 59, 60, 0, 53, 69, 70, 63, 64, 51, - 0, 0, 50, 54, 0, 55, 0, 52, 0, 56, - 0, 57, 0, 0, 0, 0, 66, 67, 68, 0, - 0, 65, 0, 0, 58, 0, 61, 0, 0, 72, - 173, 0, 62, 71, 0, 0, 59, 60, 0, 53, - 69, 70, 63, 64, 51, 0, 0, 50, 54, 0, - 55, 0, 52, 0, 56, 0, 57, 0, 0, 0, - 0, 66, 67, 68, 0, 0, 65, 0, 0, 58, - 149, 61, 0, 0, 72, 0, 0, 62, 71, 0, - 0, 59, 60, 0, 53, 69, 70, 63, 64, 51, - 0, 0, 50, 54, 0, 55, 0, 52, 0, 56, - 0, 57, 0, 0, 0, 0, 66, 67, 68, 0, - 0, 65, 0, 0, 58, 0, 61, 0, 0, 72, - 0, 0, 62, 71, 0, 0, 59, 60, 0, 53, - 69, 70, 63, 64, 51, 0, 0, 50, 54, 0, - 55, 0, 52, 0, 56, 0, 57, 0, 0, 0, - 0, 66, 67, 68, 51, 0, 65, 50, 54, 58, - 55, 61, 52, 0, 0, 0, 0, 62, 71, 0, - 0, 59, 60, 0, 53, 69, 70, 63, 64, 33, - 0, 0, 25, 0, 24, 0, 0, 0, 0, 0, - 0, 31, 0, 32, 53, 69, 70, 0, 26, 0, - 0, 0, 0, 0, 0, 0, 34, 35, 0, 0, - 0, 0, 51, 22, 29, 50, 54, 0, 55, 0, - 52, 23, 56, 37, 57, 14, 15, 16, 17, 66, - 67, 68, 0, 0, 65, 0, 0, 58, 0, 61, - 0, 0, 0, 0, 0, 62, 0, 0, 0, 59, - 60, 0, 53, 69, 70, 63, 64, 51, 0, 0, - 50, 54, 0, 55, 0, 52, 0, 56, 0, 57, - 0, 0, 0, 0, 66, 67, 68, 0, 0, 65, - 0, 0, 58, 0, 61, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 59, 60, 0, 53, 69, 70, - 63, 51, 0, 0, 50, 54, 0, 55, 0, 52, - 0, 56, 0, 57, 0, 0, 0, 0, 66, 67, - 68, 0, 0, 0, 0, 0, 58, 0, 61, 0, - 0, 0, 0, 0, 62, 0, 0, 0, 59, 60, - 0, 53, 69, 70, 63, 33, 0, 137, 25, 0, - 24, 0, 51, 0, 0, 50, 54, 31, 55, 32, - 52, 0, 0, 33, 26, 0, 25, 0, 24, 0, - 67, 68, 34, 35, 0, 31, 0, 32, 0, 22, - 29, 0, 26, 138, 0, 0, 0, 23, 0, 37, - 34, 35, 53, 69, 70, 0, 0, 22, 29, 0, - 0, 0, 0, 0, 0, 23, 0, 37, -} -var yyPact = [...]int{ - - -1000, -1000, 270, -1000, -1000, -1000, -35, -1000, -1000, -1000, - 12, 74, -1000, 120, 768, -1000, -1000, -1000, 49, 495, - 768, 135, 768, 768, 768, 768, 768, -1000, -1000, 192, - -20, 768, 768, 768, -1000, -1000, -1000, -1000, -1000, -46, - 191, 81, 135, 768, 768, 768, 172, 768, 91, -1000, - 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, - 768, 768, 768, -7, 768, 768, 768, 768, 768, 768, - 768, 768, 768, 162, 10, 750, 768, 149, 182, 172, - -1000, -1000, -1000, -1000, -20, -1000, 125, 450, 176, 19, - 61, 176, 360, 175, 189, 495, -36, 584, 32, 768, - 74, 172, 172, 540, 152, 308, -1000, -1000, -1000, -1000, - -1000, 76, 76, 88, 88, 88, 88, 88, 88, 88, - 768, 663, 707, 758, 560, 201, 33, 33, 618, 405, - 308, -1000, 188, 168, -1000, 495, 138, 768, 768, 104, - 147, 768, 768, -1000, 167, -1000, 106, 2, -1000, 74, - 768, -1000, 111, -1000, 54, 768, 768, -1000, -1000, -1000, - 187, 164, -1000, 134, 6, 6, 141, 135, 308, -1000, - -1000, -1000, 88, 768, -1000, -1000, -1000, 750, 768, 495, - 495, -1000, 768, -1000, -1000, -1, -1000, 2, 768, 78, - 495, -1000, -1000, 495, -1000, 360, 142, -1000, 32, 768, - -1000, -1000, 308, -1000, -8, -37, 540, -1000, 495, 124, - 495, 161, -1000, -1000, 132, 540, 768, 308, -1000, 495, - -1000, -1000, -38, -1000, -1000, -1000, 768, 186, -1, -20, - 540, -1000, 232, -1000, 98, -1000, -1000, -1000, -1000, -1000, -} -var yyPgo = [...]int{ - - 0, 10, 9, 250, 248, 8, 244, 243, 0, 5, - 94, 16, 82, 241, 86, 239, 238, 13, 228, 11, - 18, 2, 226, 7, 221, 219, 218, 216, 215, 3, - 14, 214, 12, 212, 210, 4, 206, 17, 204, 1, - 203, 202, 199, 198, -} -var yyR1 = [...]int{ - - 0, 41, 37, 37, 42, 42, 38, 38, 38, 23, - 23, 23, 23, 24, 24, 25, 25, 25, 27, 27, - 26, 26, 28, 28, 29, 31, 31, 30, 30, 30, - 30, 30, 30, 30, 30, 43, 43, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 4, 4, 3, 3, 2, 2, 2, 2, - 40, 40, 39, 39, 7, 7, 6, 6, 5, 5, - 5, 5, 5, 12, 12, 13, 13, 15, 15, 16, - 16, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 14, 14, 9, 9, 10, 10, 1, 1, 32, 34, - 34, 33, 33, 33, 17, 17, 35, 36, 36, 21, - 22, 18, 19, 19, 20, 20, -} -var yyR2 = [...]int{ - - 0, 2, 5, 2, 0, 2, 0, 3, 2, 0, - 2, 2, 3, 1, 1, 7, 6, 1, 4, 5, - 1, 4, 2, 1, 4, 0, 3, 1, 2, 1, - 3, 3, 1, 1, 1, 0, 1, 1, 1, 3, - 7, 4, 4, 6, 8, 1, 3, 4, 4, 3, - 4, 3, 0, 2, 1, 3, 1, 3, 2, 2, - 1, 3, 1, 3, 0, 2, 1, 3, 1, 3, - 2, 1, 2, 1, 3, 0, 1, 1, 3, 0, - 2, 1, 4, 2, 2, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 4, 3, 3, 3, 3, 3, 3, 3, 3, 5, - 1, 3, 0, 1, 0, 2, 0, 1, 3, 1, - 3, 0, 1, 2, 1, 3, 1, 1, 2, 1, - 1, 4, 1, 3, 1, 2, -} -var yyChk = [...]int{ - - -1000, -41, -23, 28, -24, 58, 27, -29, -25, -30, - 50, 30, -26, -12, 51, 52, 53, 54, -27, -8, - 34, -11, 39, 47, 10, 8, 24, -21, -22, 40, - -36, 17, 19, 5, 32, 33, -35, 49, 58, -31, - 32, -17, -11, 15, 25, 9, -12, -28, 35, 36, - 7, 4, 12, 44, 8, 10, 14, 16, 29, 41, - 42, 31, 37, 47, 48, 26, 21, 22, 23, 45, - 46, 38, 34, -12, 11, 5, 17, -16, -15, -12, - -8, -8, -8, -8, 5, -35, -10, -8, -14, -32, - -33, -14, -8, -34, -10, -8, -43, 61, 5, 37, - 9, -12, -12, -8, -12, 13, 34, -8, -8, -8, - -8, -8, -8, -8, -8, -8, -8, -8, -8, -8, - 37, -8, -8, -8, -8, -8, -8, -8, -8, -8, - 13, 32, -4, -3, -2, -8, -21, 7, 43, -12, - -13, 13, 9, -1, -35, 18, -20, -19, -18, 30, - 9, -1, -20, 20, -1, 13, 9, 6, 58, -30, - -7, -6, -5, -21, 7, 43, -12, -11, 13, -37, - 58, -29, -8, 35, -37, 6, -1, 9, 15, -8, - -8, 18, 13, -12, -12, 9, 18, -19, 34, -17, - -8, 20, 20, -8, -32, -8, 6, -1, 9, 15, - -21, -21, 13, -37, -38, -42, -8, -2, -8, -9, - -8, -40, -39, -35, -21, -8, 37, 13, -5, -8, - -37, 55, 27, 58, 58, 18, 13, -1, 9, 15, - -8, -37, -23, 58, -9, 6, -39, -35, 56, 18, -} -var yyDef = [...]int{ - - 9, -2, 0, 1, 10, 11, 0, 13, 14, 25, - 0, 0, 17, 27, 29, 32, 33, 34, 20, 73, - 0, 81, 79, 0, 0, 0, 0, 37, 38, 0, - 45, 114, 121, 114, 129, 130, 127, 126, 12, 35, - 0, 0, 124, 0, 0, 0, 28, 0, 0, 23, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 52, 75, 0, 116, 77, - 83, 84, 85, 86, 0, 128, 0, 110, 116, 119, - 0, 116, 110, 122, 0, 110, 0, 36, 64, 0, - 0, 30, 31, 74, 0, 0, 22, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, - 0, 101, 102, 103, 104, 105, 106, 107, 108, 0, - 0, 39, 0, 116, 54, 56, 37, 0, 0, 76, - 0, 0, 117, 80, 0, 46, 0, 134, 132, 0, - 117, 115, 0, 49, 0, 0, 123, 51, 24, 26, - 0, 116, 66, 68, 71, 0, 0, 125, 0, 21, - 6, 4, 100, 0, 18, 41, 53, 117, 0, 58, - 59, 42, 112, 82, 78, 0, 47, 135, 0, 0, - 111, 48, 50, 118, 120, 0, 0, 65, 117, 0, - 70, 72, 0, 19, 0, 3, 109, 55, 57, 0, - 113, 116, 60, 62, 0, 133, 0, 0, 67, 69, - 16, 9, 0, 8, 5, 43, 112, 0, 117, 0, - 131, 15, 0, 7, 0, 40, 61, 63, 2, 44, -} -var yyTok1 = [...]int{ - - 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 58, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 4, 22, 3, - 5, 6, 7, 8, 9, 10, 11, 12, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 13, 61, - 14, 15, 16, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 17, 3, 18, 23, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 19, 21, 20, 24, -} -var yyTok2 = [...]int{ - - 2, 3, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 59, 60, -} -var yyTok3 = [...]int{ - 0, -} - -var yyErrorMessages = [...]struct { - state int - token int - msg string -}{} - -//line yaccpar:1 - -/* parser for yacc output */ - -var ( - yyDebug = 0 - yyErrorVerbose = false -) - -type yyLexer interface { - Lex(lval *yySymType) int - Error(s string) -} - -type yyParser interface { - Parse(yyLexer) int - Lookahead() int -} - -type yyParserImpl struct { - lval yySymType - stack [yyInitialStackSize]yySymType - char int -} - -func (p *yyParserImpl) Lookahead() int { - return p.char -} - -func yyNewParser() yyParser { - return &yyParserImpl{} -} - -const yyFlag = -1000 - -func yyTokname(c int) string { - if c >= 1 && c-1 < len(yyToknames) { - if yyToknames[c-1] != "" { - return yyToknames[c-1] - } - } - return __yyfmt__.Sprintf("tok-%v", c) -} - -func yyStatname(s int) string { - if s >= 0 && s < len(yyStatenames) { - if yyStatenames[s] != "" { - return yyStatenames[s] - } - } - return __yyfmt__.Sprintf("state-%v", s) -} - -func yyErrorMessage(state, lookAhead int) string { - const TOKSTART = 4 - - if !yyErrorVerbose { - return "syntax error" - } - - for _, e := range yyErrorMessages { - if e.state == state && e.token == lookAhead { - return "syntax error: " + e.msg - } - } - - res := "syntax error: unexpected " + yyTokname(lookAhead) - - // To match Bison, suggest at most four expected tokens. - expected := make([]int, 0, 4) - - // Look for shiftable tokens. - base := yyPact[state] - for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { - if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok { - if len(expected) == cap(expected) { - return res - } - expected = append(expected, tok) - } - } - - if yyDef[state] == -2 { - i := 0 - for yyExca[i] != -1 || yyExca[i+1] != state { - i += 2 - } - - // Look for tokens that we accept or reduce. - for i += 2; yyExca[i] >= 0; i += 2 { - tok := yyExca[i] - if tok < TOKSTART || yyExca[i+1] == 0 { - continue - } - if len(expected) == cap(expected) { - return res - } - expected = append(expected, tok) - } - - // If the default action is to accept or reduce, give up. - if yyExca[i+1] != 0 { - return res - } - } - - for i, tok := range expected { - if i == 0 { - res += ", expecting " - } else { - res += " or " - } - res += yyTokname(tok) - } - return res -} - -func yylex1(lex yyLexer, lval *yySymType) (char, token int) { - token = 0 - char = lex.Lex(lval) - if char <= 0 { - token = yyTok1[0] - goto out - } - if char < len(yyTok1) { - token = yyTok1[char] - goto out - } - if char >= yyPrivate { - if char < yyPrivate+len(yyTok2) { - token = yyTok2[char-yyPrivate] - goto out - } - } - for i := 0; i < len(yyTok3); i += 2 { - token = yyTok3[i+0] - if token == char { - token = yyTok3[i+1] - goto out - } - } - -out: - if token == 0 { - token = yyTok2[1] /* unknown char */ - } - if yyDebug >= 3 { - __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) - } - return char, token -} - -func yyParse(yylex yyLexer) int { - return yyNewParser().Parse(yylex) -} - -func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { - var yyn int - var yyVAL yySymType - var yyDollar []yySymType - _ = yyDollar // silence set and not used - yyS := yyrcvr.stack[:] - - Nerrs := 0 /* number of errors */ - Errflag := 0 /* error recovery flag */ - yystate := 0 - yyrcvr.char = -1 - yytoken := -1 // yyrcvr.char translated into internal numbering - defer func() { - // Make sure we report no lookahead when not parsing. - yystate = -1 - yyrcvr.char = -1 - yytoken = -1 - }() - yyp := -1 - goto yystack - -ret0: - return 0 - -ret1: - return 1 - -yystack: - /* put a state and value onto the stack */ - if yyDebug >= 4 { - __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate)) - } - - yyp++ - if yyp >= len(yyS) { - nyys := make([]yySymType, len(yyS)*2) - copy(nyys, yyS) - yyS = nyys - } - yyS[yyp] = yyVAL - yyS[yyp].yys = yystate - -yynewstate: - yyn = yyPact[yystate] - if yyn <= yyFlag { - goto yydefault /* simple state */ - } - if yyrcvr.char < 0 { - yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) - } - yyn += yytoken - if yyn < 0 || yyn >= yyLast { - goto yydefault - } - yyn = yyAct[yyn] - if yyChk[yyn] == yytoken { /* valid shift */ - yyrcvr.char = -1 - yytoken = -1 - yyVAL = yyrcvr.lval - yystate = yyn - if Errflag > 0 { - Errflag-- - } - goto yystack - } - -yydefault: - /* default state action */ - yyn = yyDef[yystate] - if yyn == -2 { - if yyrcvr.char < 0 { - yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) - } - - /* look through exception table */ - xi := 0 - for { - if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate { - break - } - xi += 2 - } - for xi += 2; ; xi += 2 { - yyn = yyExca[xi+0] - if yyn < 0 || yyn == yytoken { - break - } - } - yyn = yyExca[xi+1] - if yyn < 0 { - goto ret0 - } - } - if yyn == 0 { - /* error ... attempt to resume parsing */ - switch Errflag { - case 0: /* brand new error */ - yylex.Error(yyErrorMessage(yystate, yytoken)) - Nerrs++ - if yyDebug >= 1 { - __yyfmt__.Printf("%s", yyStatname(yystate)) - __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken)) - } - fallthrough - - case 1, 2: /* incompletely recovered error ... try again */ - Errflag = 3 - - /* find a state where "error" is a legal shift action */ - for yyp >= 0 { - yyn = yyPact[yyS[yyp].yys] + yyErrCode - if yyn >= 0 && yyn < yyLast { - yystate = yyAct[yyn] /* simulate a shift of "error" */ - if yyChk[yystate] == yyErrCode { - goto yystack - } - } - - /* the current p has no shift on "error", pop stack */ - if yyDebug >= 2 { - __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) - } - yyp-- - } - /* there is no state on the stack with an error shift ... abort */ - goto ret1 - - case 3: /* no shift yet; clobber input char */ - if yyDebug >= 2 { - __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken)) - } - if yytoken == yyEofCode { - goto ret1 - } - yyrcvr.char = -1 - yytoken = -1 - goto yynewstate /* try again in the same state */ - } - } - - /* reduction by production yyn */ - if yyDebug >= 2 { - __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate)) - } - - yynt := yyn - yypt := yyp - _ = yypt // guard against "declared and not used" - - yyp -= yyR2[yyn] - // yyp is now the index of $0. Perform the default action. Iff the - // reduced production is ε, $1 is possibly out of range. - if yyp+1 >= len(yyS) { - nyys := make([]yySymType, len(yyS)*2) - copy(nyys, yyS) - yyS = nyys - } - yyVAL = yyS[yyp+1] - - /* consult goto table to find next state */ - yyn = yyR1[yyn] - yyg := yyPgo[yyn] - yyj := yyg + yyS[yyp].yys + 1 - - if yyj >= yyLast { - yystate = yyAct[yyg] - } else { - yystate = yyAct[yyj] - if yyChk[yystate] != -yyn { - yystate = yyAct[yyg] - } - } - // dummy call; replaced with literal code - switch yynt { - - case 1: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:195 - { - yylex.(*input).file = &File{Stmt: yyDollar[1].exprs} - return 0 - } - case 2: - yyDollar = yyS[yypt-5 : yypt+1] -//line build/parse.y:202 - { - statements := yyDollar[4].exprs - if yyDollar[2].exprs != nil { - // $2 can only contain *CommentBlock objects, each of them contains a non-empty After slice - cb := yyDollar[2].exprs[len(yyDollar[2].exprs)-1].(*CommentBlock) - // $4 can't be empty and can't start with a comment - stmt := yyDollar[4].exprs[0] - start, _ := stmt.Span() - if start.Line-cb.After[len(cb.After)-1].Start.Line == 1 { - // The first statement of $4 starts on the next line after the last comment of $2. - // Attach the last comment to the first statement - stmt.Comment().Before = cb.After - yyDollar[2].exprs = yyDollar[2].exprs[:len(yyDollar[2].exprs)-1] - } - statements = append(yyDollar[2].exprs, yyDollar[4].exprs...) - } - yyVAL.exprs = statements - yyVAL.lastStmt = yyDollar[4].lastStmt - } - case 3: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:222 - { - yyVAL.exprs = yyDollar[1].exprs - } - case 6: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:230 - { - yyVAL.exprs = nil - yyVAL.lastStmt = nil - } - case 7: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:235 - { - yyVAL.exprs = yyDollar[1].exprs - yyVAL.lastStmt = yyDollar[1].lastStmt - if yyVAL.lastStmt == nil { - cb := &CommentBlock{Start: yyDollar[2].pos} - yyVAL.exprs = append(yyVAL.exprs, cb) - yyVAL.lastStmt = cb - } - com := yyVAL.lastStmt.Comment() - com.After = append(com.After, Comment{Start: yyDollar[2].pos, Token: yyDollar[2].tok}) - } - case 8: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:247 - { - yyVAL.exprs = yyDollar[1].exprs - yyVAL.lastStmt = nil - } - case 9: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:253 - { - yyVAL.exprs = nil - yyVAL.lastStmt = nil - } - case 10: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:258 - { - // If this statement follows a comment block, - // attach the comments to the statement. - if cb, ok := yyDollar[1].lastStmt.(*CommentBlock); ok { - yyVAL.exprs = append(yyDollar[1].exprs[:len(yyDollar[1].exprs)-1], yyDollar[2].exprs...) - yyDollar[2].exprs[0].Comment().Before = cb.After - yyVAL.lastStmt = yyDollar[2].lastStmt - break - } - - // Otherwise add to list. - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[2].exprs...) - yyVAL.lastStmt = yyDollar[2].lastStmt - - // Consider this input: - // - // foo() - // # bar - // baz() - // - // If we've just parsed baz(), the # bar is attached to - // foo() as an After comment. Make it a Before comment - // for baz() instead. - if x := yyDollar[1].lastStmt; x != nil { - com := x.Comment() - // stmt is never empty - yyDollar[2].exprs[0].Comment().Before = com.After - com.After = nil - } - } - case 11: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:289 - { - // Blank line; sever last rule from future comments. - yyVAL.exprs = yyDollar[1].exprs - yyVAL.lastStmt = nil - } - case 12: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:295 - { - yyVAL.exprs = yyDollar[1].exprs - yyVAL.lastStmt = yyDollar[1].lastStmt - if yyVAL.lastStmt == nil { - cb := &CommentBlock{Start: yyDollar[2].pos} - yyVAL.exprs = append(yyVAL.exprs, cb) - yyVAL.lastStmt = cb - } - com := yyVAL.lastStmt.Comment() - com.After = append(com.After, Comment{Start: yyDollar[2].pos, Token: yyDollar[2].tok}) - } - case 13: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:309 - { - yyVAL.exprs = yyDollar[1].exprs - yyVAL.lastStmt = yyDollar[1].exprs[len(yyDollar[1].exprs)-1] - } - case 14: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:314 - { - yyVAL.exprs = []Expr{yyDollar[1].expr} - yyVAL.lastStmt = yyDollar[1].expr - if cbs := extractTrailingComments(yyDollar[1].expr); len(cbs) > 0 { - yyVAL.exprs = append(yyVAL.exprs, cbs...) - yyVAL.lastStmt = cbs[len(cbs)-1] - if yyDollar[1].lastStmt == nil { - yyVAL.lastStmt = nil - } - } - } - case 15: - yyDollar = yyS[yypt-7 : yypt+1] -//line build/parse.y:328 - { - yyVAL.expr = &DefStmt{ - Function: Function{ - StartPos: yyDollar[1].pos, - Params: yyDollar[4].exprs, - Body: yyDollar[7].exprs, - }, - Name: yyDollar[2].tok, - ColonPos: yyDollar[6].pos, - ForceCompact: forceCompact(yyDollar[3].pos, yyDollar[4].exprs, yyDollar[5].pos), - ForceMultiLine: forceMultiLine(yyDollar[3].pos, yyDollar[4].exprs, yyDollar[5].pos), - } - yyVAL.lastStmt = yyDollar[7].lastStmt - } - case 16: - yyDollar = yyS[yypt-6 : yypt+1] -//line build/parse.y:343 - { - yyVAL.expr = &ForStmt{ - For: yyDollar[1].pos, - Vars: yyDollar[2].expr, - X: yyDollar[4].expr, - Body: yyDollar[6].exprs, - } - yyVAL.lastStmt = yyDollar[6].lastStmt - } - case 17: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:353 - { - yyVAL.expr = yyDollar[1].ifstmt - yyVAL.lastStmt = yyDollar[1].lastStmt - } - case 18: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:361 - { - yyVAL.ifstmt = &IfStmt{ - If: yyDollar[1].pos, - Cond: yyDollar[2].expr, - True: yyDollar[4].exprs, - } - yyVAL.lastStmt = yyDollar[4].lastStmt - } - case 19: - yyDollar = yyS[yypt-5 : yypt+1] -//line build/parse.y:370 - { - yyVAL.ifstmt = yyDollar[1].ifstmt - inner := yyDollar[1].ifstmt - for len(inner.False) == 1 { - inner = inner.False[0].(*IfStmt) - } - inner.ElsePos = End{Pos: yyDollar[2].pos} - inner.False = []Expr{ - &IfStmt{ - If: yyDollar[2].pos, - Cond: yyDollar[3].expr, - True: yyDollar[5].exprs, - }, - } - yyVAL.lastStmt = yyDollar[5].lastStmt - } - case 21: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:391 - { - yyVAL.ifstmt = yyDollar[1].ifstmt - inner := yyDollar[1].ifstmt - for len(inner.False) == 1 { - inner = inner.False[0].(*IfStmt) - } - inner.ElsePos = End{Pos: yyDollar[2].pos} - inner.False = yyDollar[4].exprs - yyVAL.lastStmt = yyDollar[4].lastStmt - } - case 24: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:408 - { - yyVAL.exprs = append([]Expr{yyDollar[1].expr}, yyDollar[2].exprs...) - yyVAL.lastStmt = yyVAL.exprs[len(yyVAL.exprs)-1] - } - case 25: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:414 - { - yyVAL.exprs = []Expr{} - } - case 26: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:418 - { - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) - } - case 28: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:425 - { - yyVAL.expr = &ReturnStmt{ - Return: yyDollar[1].pos, - Result: yyDollar[2].expr, - } - } - case 29: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:432 - { - yyVAL.expr = &ReturnStmt{ - Return: yyDollar[1].pos, - } - } - case 30: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:437 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 31: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:438 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 32: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:440 - { - yyVAL.expr = &BranchStmt{ - Token: yyDollar[1].tok, - TokenPos: yyDollar[1].pos, - } - } - case 33: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:447 - { - yyVAL.expr = &BranchStmt{ - Token: yyDollar[1].tok, - TokenPos: yyDollar[1].pos, - } - } - case 34: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:454 - { - yyVAL.expr = &BranchStmt{ - Token: yyDollar[1].tok, - TokenPos: yyDollar[1].pos, - } - } - case 39: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:468 - { - yyVAL.expr = &DotExpr{ - X: yyDollar[1].expr, - Dot: yyDollar[2].pos, - NamePos: yyDollar[3].pos, - Name: yyDollar[3].tok, - } - } - case 40: - yyDollar = yyS[yypt-7 : yypt+1] -//line build/parse.y:477 - { - load := &LoadStmt{ - Load: yyDollar[1].pos, - Module: yyDollar[3].string, - Rparen: End{Pos: yyDollar[7].pos}, - ForceCompact: yyDollar[1].pos.Line == yyDollar[7].pos.Line, - } - for _, arg := range yyDollar[5].loadargs { - load.From = append(load.From, &arg.from) - load.To = append(load.To, &arg.to) - } - yyVAL.expr = load - } - case 41: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:491 - { - yyVAL.expr = &CallExpr{ - X: yyDollar[1].expr, - ListStart: yyDollar[2].pos, - List: yyDollar[3].exprs, - End: End{Pos: yyDollar[4].pos}, - ForceCompact: forceCompact(yyDollar[2].pos, yyDollar[3].exprs, yyDollar[4].pos), - ForceMultiLine: forceMultiLine(yyDollar[2].pos, yyDollar[3].exprs, yyDollar[4].pos), - } - } - case 42: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:502 - { - yyVAL.expr = &IndexExpr{ - X: yyDollar[1].expr, - IndexStart: yyDollar[2].pos, - Y: yyDollar[3].expr, - End: yyDollar[4].pos, - } - } - case 43: - yyDollar = yyS[yypt-6 : yypt+1] -//line build/parse.y:511 - { - yyVAL.expr = &SliceExpr{ - X: yyDollar[1].expr, - SliceStart: yyDollar[2].pos, - From: yyDollar[3].expr, - FirstColon: yyDollar[4].pos, - To: yyDollar[5].expr, - End: yyDollar[6].pos, - } - } - case 44: - yyDollar = yyS[yypt-8 : yypt+1] -//line build/parse.y:522 - { - yyVAL.expr = &SliceExpr{ - X: yyDollar[1].expr, - SliceStart: yyDollar[2].pos, - From: yyDollar[3].expr, - FirstColon: yyDollar[4].pos, - To: yyDollar[5].expr, - SecondColon: yyDollar[6].pos, - Step: yyDollar[7].expr, - End: yyDollar[8].pos, - } - } - case 45: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:535 - { - if len(yyDollar[1].strings) == 1 { - yyVAL.expr = yyDollar[1].strings[0] - break - } - yyVAL.expr = yyDollar[1].strings[0] - for _, x := range yyDollar[1].strings[1:] { - _, end := yyVAL.expr.Span() - yyVAL.expr = binary(yyVAL.expr, end, "+", x) - } - } - case 46: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:547 - { - yyVAL.expr = &ListExpr{ - Start: yyDollar[1].pos, - List: yyDollar[2].exprs, - End: End{Pos: yyDollar[3].pos}, - ForceMultiLine: forceMultiLine(yyDollar[1].pos, yyDollar[2].exprs, yyDollar[3].pos), - } - } - case 47: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:556 - { - yyVAL.expr = &Comprehension{ - Curly: false, - Lbrack: yyDollar[1].pos, - Body: yyDollar[2].expr, - Clauses: yyDollar[3].exprs, - End: End{Pos: yyDollar[4].pos}, - ForceMultiLine: forceMultiLineComprehension(yyDollar[1].pos, yyDollar[2].expr, yyDollar[3].exprs, yyDollar[4].pos), - } - } - case 48: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:567 - { - yyVAL.expr = &Comprehension{ - Curly: true, - Lbrack: yyDollar[1].pos, - Body: yyDollar[2].expr, - Clauses: yyDollar[3].exprs, - End: End{Pos: yyDollar[4].pos}, - ForceMultiLine: forceMultiLineComprehension(yyDollar[1].pos, yyDollar[2].expr, yyDollar[3].exprs, yyDollar[4].pos), - } - } - case 49: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:578 - { - yyVAL.expr = &DictExpr{ - Start: yyDollar[1].pos, - List: yyDollar[2].exprs, - End: End{Pos: yyDollar[3].pos}, - ForceMultiLine: forceMultiLine(yyDollar[1].pos, yyDollar[2].exprs, yyDollar[3].pos), - } - } - case 50: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:587 - { - yyVAL.expr = &SetExpr{ - Start: yyDollar[1].pos, - List: yyDollar[2].exprs, - End: End{Pos: yyDollar[4].pos}, - ForceMultiLine: forceMultiLine(yyDollar[1].pos, yyDollar[2].exprs, yyDollar[4].pos), - } - } - case 51: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:596 - { - if len(yyDollar[2].exprs) == 1 && yyDollar[2].comma.Line == 0 { - // Just a parenthesized expression, not a tuple. - yyVAL.expr = &ParenExpr{ - Start: yyDollar[1].pos, - X: yyDollar[2].exprs[0], - End: End{Pos: yyDollar[3].pos}, - ForceMultiLine: forceMultiLine(yyDollar[1].pos, yyDollar[2].exprs, yyDollar[3].pos), - } - } else { - yyVAL.expr = &TupleExpr{ - Start: yyDollar[1].pos, - List: yyDollar[2].exprs, - End: End{Pos: yyDollar[3].pos}, - ForceCompact: forceCompact(yyDollar[1].pos, yyDollar[2].exprs, yyDollar[3].pos), - ForceMultiLine: forceMultiLine(yyDollar[1].pos, yyDollar[2].exprs, yyDollar[3].pos), - } - } - } - case 52: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:617 - { - yyVAL.exprs = nil - } - case 53: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:621 - { - yyVAL.exprs = yyDollar[1].exprs - } - case 54: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:627 - { - yyVAL.exprs = []Expr{yyDollar[1].expr} - } - case 55: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:631 - { - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) - } - case 57: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:638 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 58: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:642 - { - yyVAL.expr = unary(yyDollar[1].pos, yyDollar[1].tok, yyDollar[2].expr) - } - case 59: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:646 - { - yyVAL.expr = unary(yyDollar[1].pos, yyDollar[1].tok, yyDollar[2].expr) - } - case 60: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:651 - { - yyVAL.loadargs = []*struct { - from Ident - to Ident - }{yyDollar[1].loadarg} - } - case 61: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:655 - { - yyDollar[1].loadargs = append(yyDollar[1].loadargs, yyDollar[3].loadarg) - yyVAL.loadargs = yyDollar[1].loadargs - } - case 62: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:661 - { - start := yyDollar[1].string.Start.add("'") - if yyDollar[1].string.TripleQuote { - start = start.add("''") - } - yyVAL.loadarg = &struct { - from Ident - to Ident - }{ - from: Ident{ - Name: yyDollar[1].string.Value, - NamePos: start, - }, - to: Ident{ - Name: yyDollar[1].string.Value, - NamePos: start, - }, - } - } - case 63: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:678 - { - start := yyDollar[3].string.Start.add("'") - if yyDollar[3].string.TripleQuote { - start = start.add("''") - } - yyVAL.loadarg = &struct { - from Ident - to Ident - }{ - from: Ident{ - Name: yyDollar[3].string.Value, - NamePos: start, - }, - to: *yyDollar[1].expr.(*Ident), - } - } - case 64: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:693 - { - yyVAL.exprs = nil - } - case 65: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:697 - { - yyVAL.exprs = yyDollar[1].exprs - } - case 66: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:703 - { - yyVAL.exprs = []Expr{yyDollar[1].expr} - } - case 67: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:707 - { - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) - } - case 69: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:714 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 70: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:718 - { - yyVAL.expr = unary(yyDollar[1].pos, yyDollar[1].tok, yyDollar[2].expr) - } - case 71: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:722 - { - yyVAL.expr = unary(yyDollar[1].pos, yyDollar[1].tok, nil) - } - case 72: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:726 - { - yyVAL.expr = unary(yyDollar[1].pos, yyDollar[1].tok, yyDollar[2].expr) - } - case 74: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:733 - { - tuple, ok := yyDollar[1].expr.(*TupleExpr) - if !ok || !tuple.NoBrackets { - tuple = &TupleExpr{ - List: []Expr{yyDollar[1].expr}, - NoBrackets: true, - ForceCompact: true, - ForceMultiLine: false, - } - } - tuple.List = append(tuple.List, yyDollar[3].expr) - yyVAL.expr = tuple - } - case 75: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:748 - { - yyVAL.expr = nil - } - case 77: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:755 - { - yyVAL.exprs = []Expr{yyDollar[1].expr} - } - case 78: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:759 - { - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) - } - case 79: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:764 - { - yyVAL.exprs = nil - } - case 80: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:768 - { - yyVAL.exprs = yyDollar[1].exprs - } - case 82: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:775 - { - yyVAL.expr = &LambdaExpr{ - Function: Function{ - StartPos: yyDollar[1].pos, - Params: yyDollar[2].exprs, - Body: []Expr{yyDollar[4].expr}, - }, - } - } - case 83: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:784 - { - yyVAL.expr = unary(yyDollar[1].pos, yyDollar[1].tok, yyDollar[2].expr) - } - case 84: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:785 - { - yyVAL.expr = unary(yyDollar[1].pos, yyDollar[1].tok, yyDollar[2].expr) - } - case 85: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:786 - { - yyVAL.expr = unary(yyDollar[1].pos, yyDollar[1].tok, yyDollar[2].expr) - } - case 86: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:787 - { - yyVAL.expr = unary(yyDollar[1].pos, yyDollar[1].tok, yyDollar[2].expr) - } - case 87: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:788 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 88: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:789 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 89: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:790 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 90: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:791 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 91: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:792 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 92: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:793 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 93: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:794 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 94: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:795 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 95: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:796 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 96: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:797 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 97: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:798 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 98: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:799 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 99: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:800 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 100: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:801 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, "not in", yyDollar[4].expr) - } - case 101: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:802 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 102: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:803 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 103: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:804 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 104: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:805 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 105: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:806 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 106: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:807 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 107: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:808 - { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - case 108: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:810 - { - if b, ok := yyDollar[3].expr.(*UnaryExpr); ok && b.Op == "not" { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, "is not", b.X) - } else { - yyVAL.expr = binary(yyDollar[1].expr, yyDollar[2].pos, yyDollar[2].tok, yyDollar[3].expr) - } - } - case 109: - yyDollar = yyS[yypt-5 : yypt+1] -//line build/parse.y:818 - { - yyVAL.expr = &ConditionalExpr{ - Then: yyDollar[1].expr, - IfStart: yyDollar[2].pos, - Test: yyDollar[3].expr, - ElseStart: yyDollar[4].pos, - Else: yyDollar[5].expr, - } - } - case 110: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:830 - { - yyVAL.exprs = []Expr{yyDollar[1].expr} - } - case 111: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:834 - { - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) - } - case 112: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:839 - { - yyVAL.expr = nil - } - case 114: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:845 - { - yyVAL.exprs, yyVAL.comma = nil, Position{} - } - case 115: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:849 - { - yyVAL.exprs, yyVAL.comma = yyDollar[1].exprs, yyDollar[2].pos - } - case 116: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:858 - { - yyVAL.pos = Position{} - } - case 118: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:864 - { - yyVAL.expr = &KeyValueExpr{ - Key: yyDollar[1].expr, - Colon: yyDollar[2].pos, - Value: yyDollar[3].expr, - } - } - case 119: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:874 - { - yyVAL.exprs = []Expr{yyDollar[1].expr} - } - case 120: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:878 - { - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) - } - case 121: - yyDollar = yyS[yypt-0 : yypt+1] -//line build/parse.y:883 - { - yyVAL.exprs = nil - } - case 122: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:887 - { - yyVAL.exprs = yyDollar[1].exprs - } - case 123: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:891 - { - yyVAL.exprs = yyDollar[1].exprs - } - case 125: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:898 - { - tuple, ok := yyDollar[1].expr.(*TupleExpr) - if !ok || !tuple.NoBrackets { - tuple = &TupleExpr{ - List: []Expr{yyDollar[1].expr}, - NoBrackets: true, - ForceCompact: true, - ForceMultiLine: false, - } - } - tuple.List = append(tuple.List, yyDollar[3].expr) - yyVAL.expr = tuple - } - case 126: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:914 - { - yyVAL.string = &StringExpr{ - Start: yyDollar[1].pos, - Value: yyDollar[1].str, - TripleQuote: yyDollar[1].triple, - End: yyDollar[1].pos.add(yyDollar[1].tok), - Token: yyDollar[1].tok, - } - } - case 127: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:926 - { - yyVAL.strings = []*StringExpr{yyDollar[1].string} - } - case 128: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:930 - { - yyVAL.strings = append(yyDollar[1].strings, yyDollar[2].string) - } - case 129: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:936 - { - yyVAL.expr = &Ident{NamePos: yyDollar[1].pos, Name: yyDollar[1].tok} - } - case 130: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:942 - { - yyVAL.expr = &LiteralExpr{Start: yyDollar[1].pos, Token: yyDollar[1].tok} - } - case 131: - yyDollar = yyS[yypt-4 : yypt+1] -//line build/parse.y:948 - { - yyVAL.expr = &ForClause{ - For: yyDollar[1].pos, - Vars: yyDollar[2].expr, - In: yyDollar[3].pos, - X: yyDollar[4].expr, - } - } - case 132: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:958 - { - yyVAL.exprs = []Expr{yyDollar[1].expr} - } - case 133: - yyDollar = yyS[yypt-3 : yypt+1] -//line build/parse.y:961 - { - yyVAL.exprs = append(yyDollar[1].exprs, &IfClause{ - If: yyDollar[2].pos, - Cond: yyDollar[3].expr, - }) - } - case 134: - yyDollar = yyS[yypt-1 : yypt+1] -//line build/parse.y:970 - { - yyVAL.exprs = yyDollar[1].exprs - } - case 135: - yyDollar = yyS[yypt-2 : yypt+1] -//line build/parse.y:973 - { - yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[2].exprs...) - } - } - goto yystack /* stack new state and value */ -} diff --git a/vendor/github.com/bazelbuild/buildtools/build/print.go b/vendor/github.com/bazelbuild/buildtools/build/print.go deleted file mode 100644 index 900e39f067f..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/print.go +++ /dev/null @@ -1,926 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ -// Printing of syntax trees. - -package build - -import ( - "bytes" - "fmt" - "strings" -) - -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{fileType: f.Type} - pr.file(f) - return pr.Bytes() -} - -// FormatString returns the string form of the given expression. -func FormatString(x Expr) string { - 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) - default: - pr.expr(x, precLow) - } - return pr.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. -func (p *printer) printf(format string, args ...interface{}) { - fmt.Fprintf(p, format, args...) -} - -// indent returns the position on the current line, in bytes, 0-indexed. -func (p *printer) indent() int { - b := p.Bytes() - n := 0 - for n < len(b) && b[len(b)-1-n] != '\n' { - n++ - } - return n -} - -// newline ends the current line, flushing end-of-line comments. -// It must only be called when printing a newline is known to be safe: -// when not inside an expression or when p.depth > 0. -// 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 { - if i > 0 { - p.trim() - p.printf("\n%*s", p.margin, "") - } - p.printf("%s", strings.TrimSpace(com.Token)) - } - p.comment = p.comment[:0] - } - - p.trim() - 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() { - if p.depth == 0 { - // Cannot have both final \ and comments. - p.printf(" \\\n%*s", p.margin, "") - return - } - - // Safe to use newline. - p.newline() -} - -// trim removes trailing spaces from the current line. -func (p *printer) trim() { - // Remove trailing space from line we're about to end. - b := p.Bytes() - n := len(b) - for n > 0 && b[n-1] == ' ' { - n-- - } - p.Truncate(n) -} - -// file formats the given file into the print buffer. -func (p *printer) file(f *File) { - for _, com := range f.Before { - p.printf("%s", strings.TrimSpace(com.Token)) - 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(rawStmts []Expr) { - // rawStmts may contain nils if a refactoring tool replaces an actual statement with nil. - // It means the statements don't exist anymore, just ignore them. - - stmts := []Expr{} - for _, stmt := range rawStmts { - if stmt != nil { - stmts = append(stmts, stmt) - } - } - - 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 (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 == TypeBuild || p.fileType == TypeWorkspace) && 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 - } -} - -// 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 - } - return p1.Line != p2.Line -} - -// Expression formatting. - -// The expression formatter must introduce parentheses to force the -// meaning described by the parse tree. We preserve parentheses in the -// input, so extra parentheses are only needed if we have edited the tree. -// -// For example consider these expressions: -// (1) "x" "y" % foo -// (2) "x" + "y" % foo -// (3) "x" + ("y" % foo) -// (4) ("x" + "y") % foo -// When we parse (1), we represent the concatenation as an addition. -// However, if we print the addition back out without additional parens, -// as in (2), it has the same meaning as (3), which is not the original -// meaning. To preserve the original meaning we must add parens as in (4). -// -// To allow arbitrary rewrites to be formatted properly, we track full -// operator precedence while printing instead of just handling this one -// case of string concatenation. -// -// The precedences are assigned values low to high. A larger number -// binds tighter than a smaller number. All binary operators bind -// left-to-right. -const ( - precLow = iota - precAssign - precColon - precIfElse - precOr - precAnd - precCmp - precBitwiseOr - precBitwiseXor - precBitwiseAnd - precBitwiseShift - precAdd - precMultiply - precUnary - precSuffix -) - -// opPrec gives the precedence for operators found in a BinaryExpr. -var opPrec = map[string]int{ - "or": precOr, - "and": precAnd, - "in": precCmp, - "not in": precCmp, - "<": precCmp, - ">": precCmp, - "==": precCmp, - "!=": precCmp, - "<=": precCmp, - ">=": precCmp, - "+": precAdd, - "-": precAdd, - "*": precMultiply, - "/": precMultiply, - "//": precMultiply, - "%": precMultiply, - "|": precBitwiseOr, - "&": precBitwiseAnd, - "^": precBitwiseXor, - "<<": precBitwiseShift, - ">>": precBitwiseShift, -} - -// expr prints the expression v to the print buffer. -// The value outerPrec gives the precedence of the operator -// outside expr. If that operator binds tighter than v's operator, -// expr must introduce parentheses to preserve the meaning -// of the parse tree (see above). -func (p *printer) expr(v Expr, outerPrec int) { - // Emit line-comments preceding this expression. - // If we are in the middle of an expression but not inside ( ) [ ] { } - // then we cannot just break the line: we'd have to end it with a \. - // However, even then we can't emit line comments since that would - // end the expression. This is only a concern if we have rewritten - // the parse tree. If comments were okay before this expression in - // the original input they're still okay now, in the absense of rewrites. - // - // 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. - p.trim() - if p.indent() > 0 { - // There's other text on the line. Start a new line. - p.printf("\n") - } - // Re-indent to margin. - p.printf("%*s", p.margin, "") - for _, com := range before { - p.printf("%s", strings.TrimSpace(com.Token)) - p.newline() - } - } - - // Do we introduce parentheses? - // The result depends on the kind of expression. - // Each expression type that might need parentheses - // calls addParen with its own precedence. - // If parentheses are necessary, addParen prints the - // opening parenthesis and sets parenthesized so that - // the code after the switch can print the closing one. - parenthesized := false - addParen := func(prec int) { - if prec < outerPrec { - p.printf("(") - p.depth++ - parenthesized = true - } - } - - switch v := v.(type) { - default: - panic(fmt.Errorf("printer: unexpected type %T", v)) - - 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 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 - } - } - - p.printf("%s", quote(v.Value, v.TripleQuote)) - - 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) - p.expr(v.X, precSuffix) - p.printf("[") - p.expr(v.Y, precLow) - p.printf("]") - - case *KeyValueExpr: - p.expr(v.Key, precLow) - p.printf(": ") - p.expr(v.Value, precLow) - - case *SliceExpr: - addParen(precSuffix) - p.expr(v.X, precSuffix) - p.printf("[") - if v.From != nil { - p.expr(v.From, precLow) - } - p.printf(":") - 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("]") - - case *UnaryExpr: - addParen(precUnary) - if v.Op == "not" { - p.printf("not ") // Requires a space after it. - } else { - p.printf("%s", v.Op) - } - // Use the next precedence level (precSuffix), so that nested unary expressions are parenthesized, - // for example: `not (-(+(~foo)))` instead of `not -+~foo` - if v.X != nil { - p.expr(v.X, precSuffix) - } - - case *LambdaExpr: - addParen(precColon) - p.printf("lambda ") - for i, param := range v.Params { - if i > 0 { - p.printf(", ") - } - p.expr(param, precLow) - } - p.printf(": ") - p.expr(v.Body[0], precLow) // lambdas should have exactly one statement - - case *BinaryExpr: - // Precedence: use the precedence of the operator. - // Since all binary expressions format left-to-right, - // it is okay for the left side to reuse the same operator - // without parentheses, so we use prec for v.X. - // For the same reason, the right side cannot reuse the same - // operator, or else a parse tree for a + (b + c), where the ( ) are - // not present in the source, will format as a + b + c, which - // means (a + b) + c. Treat the right expression as appearing - // in a context one precedence level higher: use prec+1 for v.Y. - // - // Line breaks: if we are to break the line immediately after - // the operator, introduce a margin at the current column, - // so that the second operand lines up with the first one and - // also so that neither operand can use space to the left. - // If the operator is an =, indent the right side another 4 spaces. - prec := opPrec[v.Op] - addParen(prec) - m := p.margin - if v.LineBreak { - p.margin = p.indent() - } - - p.expr(v.X, prec) - p.printf(" %s", v.Op) - if v.LineBreak { - p.breakline() - } else { - p.printf(" ") - } - p.expr(v.Y, prec+1) - p.margin = m - - case *AssignExpr: - addParen(precAssign) - m := p.margin - if v.LineBreak { - p.margin = p.indent() + listIndentation - } - - p.expr(v.LHS, precAssign) - p.printf(" %s", v.Op) - if v.LineBreak { - p.breakline() - } else { - p.printf(" ") - } - p.expr(v.RHS, precAssign+1) - p.margin = m - - case *ParenExpr: - 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.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 = &AssignExpr{ - LHS: to, - Op: "=", - RHS: from.asString(), - } - } - args = append(args, arg) - } - p.seq("()", &v.Load, &args, &v.Rparen, modeLoad, v.ForceCompact, false) - - case *ListExpr: - 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: - 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("{}", &v.Start, &list, &v.End, modeDict, false, v.ForceMultiLine) - - case *Comprehension: - p.listFor(v) - - case *ConditionalExpr: - addParen(precSuffix) - p.expr(v.Then, precIfElse) - p.printf(" if ") - p.expr(v.Test, precIfElse) - p.printf(" else ") - 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 or if the next "if" statement - // has a before-comment. - if len(block.False) != 1 { - break - } - next, ok := block.False[0].(*IfStmt) - if !ok { - break - } - if len(block.ElsePos.Comment().Suffix) == 0 && len(next.Comment().Before) == 0 { - 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. - if parenthesized { - p.depth-- - p.printf(")") - } - - // Queue end-of-line comments for printing when we - // reach the end of the line. - p.comment = append(p.comment, v.Comment().Suffix...) -} - -// A seqMode describes a formatting mode for a sequence of values, -// like a list or call arguments. -type seqMode int - -const ( - _ seqMode = iota - - modeCall // f(x) - modeList // [x] - 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 || (len(x.Comment().Suffix) > 0 && mode != modeDef) { - return false - } - } - if end != nil && len(end.Before) > 0 { - return false - } - - // Implicit tuples are always compact - if mode == modeSeq { - return true - } - - // In the Default and .bzl printing modes 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 || p.fileType == TypeBzl || 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. Unless a sequence is new, - // then use multiline mode if ForceMultiLine mode was set. - previousEnd := start - isNewSeq := start.Line == 0 - for _, x := range *list { - start, end := x.Span() - isNewSeq = isNewSeq && start.Line == 0 - if isDifferentLines(&start, previousEnd) { - return false - } - if end.Line != 0 { - previousEnd = &end - } - } - if end != nil { - isNewSeq = isNewSeq && end.Pos.Line == 0 - if isDifferentLines(previousEnd, &end.Pos) { - return false - } - } - if !isNewSeq { - return true - } - // Use the forceMultiline value for new sequences. - return !forceMultiLine - } - // 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, start *Position, list *[]Expr, end *End, mode seqMode, forceCompact, forceMultiLine bool) { - if mode != modeSeq { - p.printf("%s", brack[:1]) - } - p.depth++ - defer func() { - p.depth-- - if mode != modeSeq { - p.printf("%s", brack[1:]) - } - }() - - if p.useCompactMode(start, list, end, mode, forceCompact, forceMultiLine) { - for i, x := range *list { - if i > 0 { - p.printf(", ") - } - p.expr(x, precLow) - } - // Single-element tuple must end with comma, to mark it as a tuple. - if len(*list) == 1 && mode == modeTuple { - p.printf(",") - } - 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 -= indentation - // in modeDef print the closing bracket on the same line - if mode != modeDef { - p.newline() - } -} - -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). -// The single-line form is: -// [x for y in z if c] -// -// and the multi-line form is: -// [ -// x -// for y in z -// if c -// ] -// -func (p *printer) listFor(v *Comprehension) { - multiLine := v.ForceMultiLine || len(v.End.Before) > 0 - - // space breaks the line in multiline mode - // or else prints a space. - space := func() { - if multiLine { - p.breakline() - } else { - p.printf(" ") - } - } - - open, close := "[", "]" - if v.Curly { - open, close = "{", "}" - } - p.depth++ - p.printf("%s", open) - - if multiLine { - p.margin += listIndentation - p.newline() - } - - p.expr(v.Body, precLow) - - for _, c := range v.Clauses { - space() - p.expr(c, precLow) - } - - if multiLine { - for _, com := range v.End.Before { - p.newline() - p.printf("%s", strings.TrimSpace(com.Token)) - } - p.margin -= listIndentation - p.newline() - } - - p.printf("%s", close) - p.depth-- -} - -func (p *printer) isTopLevel() bool { - return p.margin == 0 -} diff --git a/vendor/github.com/bazelbuild/buildtools/build/quote.go b/vendor/github.com/bazelbuild/buildtools/build/quote.go deleted file mode 100644 index 901f16bc68c..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/quote.go +++ /dev/null @@ -1,262 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ -// Python quoted strings. - -package build - -import ( - "bytes" - "fmt" - "strconv" - "strings" -) - -// unesc maps single-letter chars following \ to their actual values. -var unesc = [256]byte{ - 'a': '\a', - 'b': '\b', - 'f': '\f', - 'n': '\n', - 'r': '\r', - 't': '\t', - 'v': '\v', - '\\': '\\', - '\'': '\'', - '"': '"', -} - -// esc maps escape-worthy bytes to the char that should follow \. -var esc = [256]byte{ - '\a': 'a', - '\b': 'b', - '\f': 'f', - '\n': 'n', - '\r': 'r', - '\t': 't', - '\v': 'v', - '\\': '\\', - '\'': '\'', - '"': '"', -} - -// notEsc is a list of characters that can follow a \ in a string value -// without having to escape the \. That is, since ( is in this list, we -// quote the Go string "foo\\(bar" as the Python literal "foo\(bar". -// This really does happen in BUILD files, especially in strings -// being used as shell arguments containing regular expressions. -const notEsc = " !#$%&()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~" - -// Unquote unquotes the quoted string, returning the actual -// string value, whether the original was triple-quoted, and -// an error describing invalid input. -func Unquote(quoted string) (s string, triple bool, err error) { - // Check for raw prefix: means don't interpret the inner \. - raw := false - if strings.HasPrefix(quoted, "r") { - raw = true - quoted = quoted[1:] - } - - if len(quoted) < 2 { - err = fmt.Errorf("string literal too short") - return - } - - if quoted[0] != '"' && quoted[0] != '\'' || quoted[0] != quoted[len(quoted)-1] { - err = fmt.Errorf("string literal has invalid quotes") - } - - // Check for triple quoted string. - quote := quoted[0] - if len(quoted) >= 6 && quoted[1] == quote && quoted[2] == quote && quoted[:3] == quoted[len(quoted)-3:] { - triple = true - quoted = quoted[3 : len(quoted)-3] - } else { - quoted = quoted[1 : len(quoted)-1] - } - - // Now quoted is the quoted data, but no quotes. - // If we're in raw mode or there are no escapes, we're done. - if raw || !strings.Contains(quoted, `\`) { - s = quoted - return - } - - // Otherwise process quoted string. - // Each iteration processes one escape sequence along with the - // plain text leading up to it. - var buf bytes.Buffer - for { - // Remove prefix before escape sequence. - i := strings.Index(quoted, `\`) - if i < 0 { - i = len(quoted) - } - buf.WriteString(quoted[:i]) - quoted = quoted[i:] - - if len(quoted) == 0 { - break - } - - // Process escape sequence. - if len(quoted) == 1 { - err = fmt.Errorf(`truncated escape sequence \`) - return - } - - switch quoted[1] { - default: - // In Python, if \z (for some byte z) is not a known escape sequence - // then it appears as literal text in the string. - buf.WriteString(quoted[:2]) - quoted = quoted[2:] - - case '\n': - // Ignore the escape and the line break. - quoted = quoted[2:] - - case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', '\'', '"': - // One-char escape - buf.WriteByte(unesc[quoted[1]]) - quoted = quoted[2:] - - case '0', '1', '2', '3', '4', '5', '6', '7': - // Octal escape, up to 3 digits. - n := int(quoted[1] - '0') - quoted = quoted[2:] - for i := 1; i < 3; i++ { - if len(quoted) == 0 || quoted[0] < '0' || '7' < quoted[0] { - break - } - n = n*8 + int(quoted[0]-'0') - quoted = quoted[1:] - } - if n >= 256 { - // NOTE: Python silently discards the high bit, - // so that '\541' == '\141' == 'a'. - // Let's see if we can avoid doing that in BUILD files. - err = fmt.Errorf(`invalid escape sequence \%03o`, n) - return - } - buf.WriteByte(byte(n)) - - case 'x': - // Hexadecimal escape, exactly 2 digits. - if len(quoted) < 4 { - err = fmt.Errorf(`truncated escape sequence %s`, quoted) - return - } - n, err1 := strconv.ParseInt(quoted[2:4], 16, 0) - if err1 != nil { - err = fmt.Errorf(`invalid escape sequence %s`, quoted[:4]) - return - } - buf.WriteByte(byte(n)) - quoted = quoted[4:] - } - } - - s = buf.String() - return -} - -// indexByte returns the index of the first instance of b in s, or else -1. -func indexByte(s string, b byte) int { - for i := 0; i < len(s); i++ { - if s[i] == b { - return i - } - } - return -1 -} - -// hex is a list of the hexadecimal digits, for use in quoting. -// We always print lower-case hexadecimal. -const hex = "0123456789abcdef" - -// quote returns the quoted form of the string value "x". -// If triple is true, quote uses the triple-quoted form """x""". -func quote(unquoted string, triple bool) string { - q := `"` - if triple { - q = `"""` - } - - var buf bytes.Buffer - buf.WriteString(q) - - for i := 0; i < len(unquoted); i++ { - c := unquoted[i] - if c == '"' && triple && (i+1 < len(unquoted) && unquoted[i+1] != '"' || i+2 < len(unquoted) && unquoted[i+2] != '"') { - // Can pass up to two quotes through, because they are followed by a non-quote byte. - buf.WriteByte(c) - if i+1 < len(unquoted) && unquoted[i+1] == '"' { - buf.WriteByte(c) - i++ - } - continue - } - if triple && c == '\n' { - // Can allow newline in triple-quoted string. - buf.WriteByte(c) - continue - } - if c == '\'' { - // Can allow ' since we always use ". - buf.WriteByte(c) - continue - } - if c == '\\' { - if i+1 < len(unquoted) && indexByte(notEsc, unquoted[i+1]) >= 0 { - // Can pass \ through when followed by a byte that - // known not to be a valid escape sequence and also - // that does not trigger an escape sequence of its own. - // Use this, because various BUILD files do. - buf.WriteByte('\\') - buf.WriteByte(unquoted[i+1]) - i++ - continue - } - } - if esc[c] != 0 { - buf.WriteByte('\\') - buf.WriteByte(esc[c]) - continue - } - if c < 0x20 || c >= 0x80 { - // BUILD files are supposed to be Latin-1, so escape all control and high bytes. - // I'd prefer to use \x here, but Blaze does not implement - // \x in quoted strings (b/7272572). - buf.WriteByte('\\') - buf.WriteByte(hex[c>>6]) // actually octal but reusing hex digits 0-7. - buf.WriteByte(hex[(c>>3)&7]) - buf.WriteByte(hex[c&7]) - /* - buf.WriteByte('\\') - buf.WriteByte('x') - buf.WriteByte(hex[c>>4]) - buf.WriteByte(hex[c&0xF]) - */ - continue - } - buf.WriteByte(c) - continue - } - - buf.WriteString(q) - return buf.String() -} diff --git a/vendor/github.com/bazelbuild/buildtools/build/rewrite.go b/vendor/github.com/bazelbuild/buildtools/build/rewrite.go deleted file mode 100644 index 50fb7015a1a..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/rewrite.go +++ /dev/null @@ -1,1002 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ -// Rewriting of high-level (not purely syntactic) BUILD constructs. - -package build - -import ( - "github.com/bazelbuild/buildtools/tables" - "path" - "path/filepath" - "regexp" - "sort" - "strings" -) - -// For debugging: flag to disable certain rewrites. -var DisableRewrites []string - -// disabled reports whether the named rewrite is disabled. -func disabled(name string) bool { - for _, x := range DisableRewrites { - if name == x { - return true - } - } - return false -} - -// For debugging: allow sorting of these lists even with sorting otherwise disabled. -var AllowSort []string - -// allowedSort reports whether sorting is allowed in the named context. -func allowedSort(name string) bool { - for _, x := range AllowSort { - if name == x { - return true - } - } - return false -} - -// Rewrite applies the high-level Buildifier rewrites to f, modifying it in place. -// If info is non-nil, Rewrite updates it with information about the rewrite. -func Rewrite(f *File, info *RewriteInfo) { - // Allocate an info so that helpers can assume it's there. - if info == nil { - info = new(RewriteInfo) - } - - for _, r := range rewrites { - if !disabled(r.name) { - 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 - SortLoad int // number of load argument lists sorted - FormatDocstrings int // number of reindented docstrings - ReorderArguments int // number of reordered function call arguments - EditOctal int // number of edited octals - Log []string // log entries - may change -} - -// Stats returns a map with statistics about applied rewrites -func (info *RewriteInfo) Stats() map[string]int { - return map[string]int{ - "label": info.EditLabel, - "callname": info.NameCall, - "callsort": info.SortCall, - "listsort": info.SortStringList, - "unsafesort": info.UnsafeSort, - "sortload": info.SortLoad, - "formatdocstrings": info.FormatDocstrings, - "reorderarguments": info.ReorderArguments, - "editoctal": info.EditOctal, - } -} - -// Each rewrite function can be either applied for BUILD files, other files (such as .bzl), -// or all files. -const ( - scopeDefault = TypeDefault | TypeBzl // .bzl and generic Starlark files - 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) - scope FileType -}{ - {"callsort", sortCallArgs, scopeBuild}, - {"label", fixLabels, scopeBuild}, - {"listsort", sortStringLists, scopeBoth}, - {"multiplus", fixMultilinePlus, scopeBuild}, - {"loadsort", sortAllLoadArgs, scopeBoth}, - {"formatdocstrings", formatDocstrings, scopeBoth}, - {"reorderarguments", reorderArguments, scopeBoth}, - {"editoctal", editOctals, 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 -// with a comment containing "buildifier: leave-alone". -func leaveAlone(stk []Expr, final Expr) bool { - for _, x := range stk { - if leaveAlone1(x) { - return true - } - } - if final != nil && leaveAlone1(final) { - return true - } - return false -} - -// hasComment reports whether x is marked with a comment that -// after being converted to lower case, contains the specified text. -func hasComment(x Expr, text string) bool { - for _, com := range x.Comment().Before { - if strings.Contains(strings.ToLower(com.Token), text) { - return true - } - } - return false -} - -// leaveAlone1 reports whether x is marked with a comment containing -// "buildifier: leave-alone", case-insensitive. -func leaveAlone1(x Expr) bool { - return hasComment(x, "buildifier: leave-alone") -} - -// doNotSort reports whether x is marked with a comment containing -// "do not sort", case-insensitive. -func doNotSort(x Expr) bool { - return hasComment(x, "do not sort") -} - -// keepSorted reports whether x is marked with a comment containing -// "keep sorted", case-insensitive. -func keepSorted(x Expr) bool { - return hasComment(x, "keep sorted") -} - -// fixLabels rewrites labels into a canonical form. -// -// 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 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) { - add, ok := (*p).(*BinaryExpr) - if !ok || add.Op != "+" { - return - } - str1, ok := add.X.(*StringExpr) - if !ok || !strings.HasPrefix(str1.Value, "//") || strings.Contains(str1.Value, " ") { - return - } - str2, ok := add.Y.(*StringExpr) - if !ok || strings.Contains(str2.Value, " ") { - return - } - info.EditLabel++ - str1.Value += str2.Value - - // Deleting nodes add and str2. - // Merge comments from add, str1, and str2 and save in str1. - com1 := add.Comment() - com2 := str1.Comment() - com3 := str2.Comment() - com1.Before = append(com1.Before, com2.Before...) - com1.Before = append(com1.Before, com3.Before...) - com1.Suffix = append(com1.Suffix, com2.Suffix...) - com1.Suffix = append(com1.Suffix, com3.Suffix...) - *str1.Comment() = *com1 - - *p = str1 - } - - 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[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++ - } - } - - Walk(f, func(v Expr, stk []Expr) { - switch v := v.(type) { - case *CallExpr: - if leaveAlone(stk, v) { - return - } - for i := range v.List { - if leaveAlone1(v.List[i]) { - continue - } - as, ok := v.List[i].(*AssignExpr) - if !ok { - continue - } - key, ok := as.LHS.(*Ident) - if !ok || !tables.IsLabelArg[key.Name] || tables.LabelBlacklist[callName(v)+"."+key.Name] { - continue - } - if leaveAlone1(as.RHS) { - continue - } - if list, ok := as.RHS.(*ListExpr); ok { - for i := range list.List { - if leaveAlone1(list.List[i]) { - continue - } - joinLabel(&list.List[i]) - shortenLabel(list.List[i]) - } - } - if set, ok := as.RHS.(*SetExpr); ok { - for i := range set.List { - if leaveAlone1(set.List[i]) { - continue - } - joinLabel(&set.List[i]) - shortenLabel(set.List[i]) - } - } else { - joinLabel(&as.RHS) - shortenLabel(as.RHS) - } - } - } - }) -} - -// 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.(*Ident) - if !ok { - return "" - } - return rule.Name -} - -// sortCallArgs sorts lists of named arguments to a call. -func sortCallArgs(f *File, info *RewriteInfo) { - Walk(f, func(v Expr, stk []Expr) { - call, ok := v.(*CallExpr) - if !ok { - return - } - if leaveAlone(stk, call) { - return - } - rule := callName(call) - if rule == "" { - return - } - - // Find the tail of the argument list with named arguments. - start := len(call.List) - for start > 0 && argName(call.List[start-1]) != "" { - start-- - } - - // Record information about each arg into a sortable list. - var args namedArgs - for i, x := range call.List[start:] { - name := argName(x) - args = append(args, namedArg{ruleNamePriority(rule, name), name, i, x}) - } - - // Sort the list and put the args back in the new order. - if sort.IsSorted(args) { - return - } - info.SortCall++ - sort.Sort(args) - for i, x := range args { - call.List[start+i] = x.expr - } - }) -} - -// ruleNamePriority maps a rule argument name to its sorting priority. -// It could use the auto-generated per-rule tables but for now it just -// falls back to the original list. -func ruleNamePriority(rule, arg string) int { - ruleArg := rule + "." + arg - if val, ok := tables.NamePriority[ruleArg]; ok { - return val - } - return tables.NamePriority[arg] - /* - list := ruleArgOrder[rule] - if len(list) == 0 { - return tables.NamePriority[arg] - } - for i, x := range list { - if x == arg { - return i - } - } - return len(list) - */ -} - -// If x is of the form key=value, argName returns the string key. -// Otherwise argName returns "". -func argName(x Expr) string { - if as, ok := x.(*AssignExpr); ok { - if id, ok := as.LHS.(*Ident); ok { - return id.Name - } - } - return "" -} - -// A namedArg records information needed for sorting -// a named call argument into its proper position. -type namedArg struct { - priority int // kind of name; first sort key - name string // name; second sort key - index int // original index; final sort key - expr Expr // name=value argument -} - -// namedArgs is a slice of namedArg that implements sort.Interface -type namedArgs []namedArg - -func (x namedArgs) Len() int { return len(x) } -func (x namedArgs) Swap(i, j int) { x[i], x[j] = x[j], x[i] } - -func (x namedArgs) Less(i, j int) bool { - p := x[i] - q := x[j] - if p.priority != q.priority { - return p.priority < q.priority - } - if p.name != q.name { - return p.name < q.name - } - return p.index < q.index -} - -// sortStringLists sorts lists of string literals used as specific rule arguments. -func sortStringLists(f *File, info *RewriteInfo) { - Walk(f, func(v Expr, stk []Expr) { - switch v := v.(type) { - case *CallExpr: - if leaveAlone(stk, v) { - return - } - rule := callName(v) - for _, arg := range v.List { - if leaveAlone1(arg) { - continue - } - as, ok := arg.(*AssignExpr) - if !ok || leaveAlone1(as) || doNotSort(as) { - continue - } - key, ok := as.LHS.(*Ident) - if !ok { - continue - } - context := rule + "." + key.Name - if !tables.IsSortableListArg[key.Name] || tables.SortableBlacklist[context] || f.Type == TypeDefault || f.Type == TypeBzl { - continue - } - if disabled("unsafesort") && !tables.SortableWhitelist[context] && !allowedSort(context) { - continue - } - sortStringList(as.RHS, info, context) - } - case *AssignExpr: - if disabled("unsafesort") { - return - } - // "keep sorted" comment on x = list forces sorting of list. - as := v - if keepSorted(as) { - sortStringList(as.RHS, info, "?") - } - case *KeyValueExpr: - if disabled("unsafesort") { - return - } - // "keep sorted" before key: list also forces sorting of list. - if keepSorted(v) { - sortStringList(v.Value, info, "?") - } - case *ListExpr: - if disabled("unsafesort") { - return - } - // "keep sorted" comment above first list element also forces sorting of list. - if len(v.List) > 0 && (keepSorted(v) || keepSorted(v.List[0])) { - sortStringList(v, info, "?") - } - } - }) -} - -// SortStringList sorts x, a list of strings. -func SortStringList(x Expr) { - sortStringList(x, nil, "") -} - -// sortStringList sorts x, a list of strings. -// The list is broken by non-strings and by blank lines and comments into chunks. -// Each chunk is sorted in place. -func sortStringList(x Expr, info *RewriteInfo, context string) { - list, ok := x.(*ListExpr) - if !ok || len(list.List) < 2 || doNotSort(list.List[0]) { - return - } - - 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 - // lists that say explicitly, in some form or another, why they - // cannot be sorted. For example, many cc_test rules require - // certain order in their deps attributes. - if !forceSort { - if line, _ := hasComments(list); line { - return - } - } - - // Sort chunks of the list with no intervening blank lines or comments. - for i := 0; i < len(list.List); { - if _, ok := list.List[i].(*StringExpr); !ok { - i++ - continue - } - - j := i + 1 - for ; j < len(list.List); j++ { - if str, ok := list.List[j].(*StringExpr); !ok || len(str.Before) > 0 { - break - } - } - - var chunk []stringSortKey - for index, x := range list.List[i:j] { - chunk = append(chunk, makeSortKey(index, x.(*StringExpr))) - } - if !sort.IsSorted(byStringExpr(chunk)) || !isUniq(chunk) { - if info != nil { - info.SortStringList++ - if !tables.SortableWhitelist[context] { - info.UnsafeSort++ - info.Log = append(info.Log, "sort:"+context) - } - } - before := chunk[0].x.Comment().Before - chunk[0].x.Comment().Before = nil - - sort.Sort(byStringExpr(chunk)) - chunk = uniq(chunk) - - chunk[0].x.Comment().Before = before - for offset, key := range chunk { - list.List[i+offset] = key.x - } - list.List = append(list.List[:(i+len(chunk))], list.List[j:]...) - } - - i = j - } -} - -// uniq removes duplicates from a list, which must already be sorted. -// It edits the list in place. -func uniq(sortedList []stringSortKey) []stringSortKey { - out := sortedList[:0] - for _, sk := range sortedList { - if len(out) == 0 || sk.value != out[len(out)-1].value { - out = append(out, sk) - } - } - return out -} - -// isUniq reports whether the sorted list only contains unique elements. -func isUniq(list []stringSortKey) bool { - for i := range list { - if i+1 < len(list) && list[i].value == list[i+1].value { - return false - } - } - return true -} - -// If stk describes a call argument like rule(arg=...), callArgName -// returns the name of that argument, formatted as "rule.arg". -func callArgName(stk []Expr) string { - n := len(stk) - if n < 2 { - return "" - } - arg := argName(stk[n-1]) - if arg == "" { - return "" - } - call, ok := stk[n-2].(*CallExpr) - if !ok { - return "" - } - rule, ok := call.X.(*Ident) - if !ok { - return "" - } - return rule.Name + "." + arg -} - -// A stringSortKey records information about a single string literal to be -// sorted. The strings are first grouped into four phases: most strings, -// strings beginning with ":", strings beginning with "//", and strings -// beginning with "@". The next significant part of the comparison is the list -// of elements in the value, where elements are split at `.' and `:'. Finally -// we compare by value and break ties by original index. -type stringSortKey struct { - phase int - split []string - value string - original int - x Expr -} - -func makeSortKey(index int, x *StringExpr) stringSortKey { - key := stringSortKey{ - value: x.Value, - original: index, - x: x, - } - - switch { - case strings.HasPrefix(x.Value, ":"): - key.phase = 1 - case strings.HasPrefix(x.Value, "//") || (tables.StripLabelLeadingSlashes && !strings.HasPrefix(x.Value, "@")): - key.phase = 2 - case strings.HasPrefix(x.Value, "@"): - key.phase = 3 - } - - key.split = strings.Split(strings.Replace(x.Value, ":", ".", -1), ".") - return key -} - -// byStringExpr implements sort.Interface for a list of stringSortKey. -type byStringExpr []stringSortKey - -func (x byStringExpr) Len() int { return len(x) } -func (x byStringExpr) Swap(i, j int) { x[i], x[j] = x[j], x[i] } - -func (x byStringExpr) Less(i, j int) bool { - xi := x[i] - xj := x[j] - - if xi.phase != xj.phase { - return xi.phase < xj.phase - } - for k := 0; k < len(xi.split) && k < len(xj.split); k++ { - if xi.split[k] != xj.split[k] { - return xi.split[k] < xj.split[k] - } - } - if len(xi.split) != len(xj.split) { - return len(xi.split) < len(xj.split) - } - if xi.value != xj.value { - return xi.value < xj.value - } - return xi.original < xj.original -} - -// fixMultilinePlus turns -// -// ... + -// [ ... ] -// -// ... + -// call(...) -// -// into -// ... + [ -// ... -// ] -// -// ... + call( -// ... -// ) -// -// which typically works better with our aggressively compact formatting. -func fixMultilinePlus(f *File, info *RewriteInfo) { - - // List manipulation helpers. - // As a special case, we treat f([...]) as a list, mainly - // for glob. - - // isList reports whether x is a list. - var isList func(x Expr) bool - isList = func(x Expr) bool { - switch x := x.(type) { - case *ListExpr: - return true - case *CallExpr: - if len(x.List) == 1 { - return isList(x.List[0]) - } - } - return false - } - - // isMultiLine reports whether x is a multiline list. - var isMultiLine func(Expr) bool - isMultiLine = func(x Expr) bool { - switch x := x.(type) { - case *ListExpr: - return x.ForceMultiLine || len(x.List) > 1 - case *CallExpr: - if x.ForceMultiLine || len(x.List) > 1 && !x.ForceCompact { - return true - } - if len(x.List) == 1 { - return isMultiLine(x.List[0]) - } - } - return false - } - - // forceMultiLine tries to force the list x to use a multiline form. - // It reports whether it was successful. - var forceMultiLine func(Expr) bool - forceMultiLine = func(x Expr) bool { - switch x := x.(type) { - case *ListExpr: - // Already multi line? - if x.ForceMultiLine { - return true - } - // If this is a list containing a list, force the - // inner list to be multiline instead. - if len(x.List) == 1 && forceMultiLine(x.List[0]) { - return true - } - x.ForceMultiLine = true - return true - - case *CallExpr: - if len(x.List) == 1 { - return forceMultiLine(x.List[0]) - } - } - return false - } - - skip := map[Expr]bool{} - Walk(f, func(v Expr, stk []Expr) { - if skip[v] { - return - } - bin, ok := v.(*BinaryExpr) - if !ok || bin.Op != "+" { - return - } - - // Found a +. - // w + x + y + z parses as ((w + x) + y) + z, - // so chase down the left side to make a list of - // all the things being added together, separated - // by the BinaryExprs that join them. - // Mark them as "skip" so that when Walk recurses - // into the subexpressions, we won't reprocess them. - var all []Expr - for { - all = append(all, bin.Y, bin) - bin1, ok := bin.X.(*BinaryExpr) - if !ok || bin1.Op != "+" { - break - } - bin = bin1 - skip[bin] = true - } - all = append(all, bin.X) - - // Because the outermost expression was the - // rightmost one, the list is backward. Reverse it. - for i, j := 0, len(all)-1; i < j; i, j = i+1, j-1 { - all[i], all[j] = all[j], all[i] - } - - // The 'all' slice is alternating addends and BinaryExpr +'s: - // w, +, x, +, y, +, z - // If there are no lists involved, don't rewrite anything. - haveList := false - for i := 0; i < len(all); i += 2 { - if isList(all[i]) { - haveList = true - break - } - } - if !haveList { - return - } - - // Okay, there are lists. - // Consider each + next to a line break. - for i := 1; i < len(all); i += 2 { - bin := all[i].(*BinaryExpr) - if !bin.LineBreak { - continue - } - - // We're going to break the line after the +. - // If it is followed by a list, force that to be - // multiline instead. - if forceMultiLine(all[i+1]) { - bin.LineBreak = false - continue - } - - // If the previous list was multiline already, - // don't bother with the line break after - // the +. - if isMultiLine(all[i-1]) { - bin.LineBreak = false - continue - } - } - }) -} - -// sortAllLoadArgs sorts all load arguments in the file -func sortAllLoadArgs(f *File, info *RewriteInfo) { - Walk(f, func(v Expr, stk []Expr) { - if load, ok := v.(*LoadStmt); ok { - if SortLoadArgs(load) { - info.SortLoad++ - } - } - }) -} - -// hasComments reports whether any comments are associated with -// the list or its elements. -func hasComments(list *ListExpr) (line, suffix bool) { - com := list.Comment() - if len(com.Before) > 0 || len(com.After) > 0 || len(list.End.Before) > 0 { - line = true - } - if len(com.Suffix) > 0 { - suffix = true - } - for _, elem := range list.List { - com := elem.Comment() - if len(com.Before) > 0 { - line = true - } - if len(com.Suffix) > 0 { - suffix = true - } - } - 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 -} - -// SortLoadArgs sorts a load statement arguments (lexicographically, but positional first) -func SortLoadArgs(load *LoadStmt) bool { - args := loadArgs{From: load.From, To: load.To} - sort.Sort(args) - return args.modified -} - -// 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 *AssignExpr: - 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++ - } - }) -} - -// editOctals inserts 'o' into octal numbers to make it more obvious they are octal -// 0123 -> 0o123 -func editOctals(f *File, info *RewriteInfo) { - Walk(f, func(expr Expr, stack []Expr) { - l, ok := expr.(*LiteralExpr) - if !ok { - return - } - if len(l.Token) > 1 && l.Token[0] == '0' && l.Token[1] >= '0' && l.Token[1] <= '9' { - l.Token = "0o" + l.Token[1:] - info.EditOctal++ - } - }) -} diff --git a/vendor/github.com/bazelbuild/buildtools/build/rule.go b/vendor/github.com/bazelbuild/buildtools/build/rule.go deleted file mode 100644 index 7fe24344256..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/rule.go +++ /dev/null @@ -1,338 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ - -// Rule-level API for inspecting and modifying a build.File syntax tree. - -package build - -import ( - "path/filepath" - "strings" -) - -// A Rule represents a single BUILD rule. -type Rule struct { - 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 { - 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 { - continue - } - start, end := call.X.Span() - if start.Line <= linenum && linenum <= end.Line { - return f.Rule(call) - } - } - return nil -} - -// DelRules removes rules with the given kind and name from the file. -// An empty kind matches all kinds; an empty name matches all names. -// It returns the number of rules that were deleted. -func (f *File) DelRules(kind, name string) int { - var i int - for _, stmt := range f.Stmt { - if call, ok := stmt.(*CallExpr); ok { - r := f.Rule(call) - if (kind == "" || r.Kind() == kind) && - (name == "" || r.Name() == name) { - continue - } - } - f.Stmt[i] = stmt - i++ - } - n := len(f.Stmt) - i - f.Stmt = f.Stmt[:i] - 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 -// empty string will be returned -func (r *Rule) Kind() string { - var names []string - expr := r.Call.X - for { - x, ok := expr.(*DotExpr) - if !ok { - break - } - names = append(names, x.Name) - expr = x.X - } - x, ok := expr.(*Ident) - if !ok { - return "" - } - 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] - } - return strings.Join(names, ".") -} - -// SetKind changes rule's kind (such as "go_library"). -func (r *Rule) SetKind(kind string) { - names := strings.Split(kind, ".") - var expr Expr - expr = &Ident{Name: names[0]} - for _, name := range names[1:] { - expr = &DotExpr{X: expr, Name: name} - } - r.Call.X = expr -} - -// ExplicitName returns the rule's target name if it's explicitly provided as a string value, "" otherwise. -func (r *Rule) ExplicitName() string { - return r.AttrString("name") -} - -// Name returns the rule's target name. -// 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 { - explicitName := r.ExplicitName() - if explicitName == "" && r.Kind() != "package" { - return r.ImplicitName - } - return explicitName -} - -// AttrKeys returns the keys of all the rule's attributes. -func (r *Rule) AttrKeys() []string { - var keys []string - for _, expr := range r.Call.List { - if as, ok := expr.(*AssignExpr); ok { - if keyExpr, ok := as.LHS.(*Ident); ok { - keys = append(keys, keyExpr.Name) - } - } - } - return keys -} - -// AttrDefn returns the AssignExpr defining the rule's attribute with the given key. -// If the rule has no such attribute, AttrDefn returns nil. -func (r *Rule) AttrDefn(key string) *AssignExpr { - for _, kv := range r.Call.List { - as, ok := kv.(*AssignExpr) - if !ok { - continue - } - k, ok := as.LHS.(*Ident) - if !ok || k.Name != key { - continue - } - return as - } - return nil -} - -// Attr returns the value of the rule's attribute with the given key -// (such as "name" or "deps"). -// If the rule has no such attribute, Attr returns nil. -func (r *Rule) Attr(key string) Expr { - as := r.AttrDefn(key) - if as == nil { - return nil - } - return as.RHS -} - -// DelAttr deletes the rule's attribute with the named key. -// It returns the old value of the attribute, or nil if the attribute was not found. -func (r *Rule) DelAttr(key string) Expr { - list := r.Call.List - for i, kv := range list { - as, ok := kv.(*AssignExpr) - if !ok { - continue - } - k, ok := as.LHS.(*Ident) - if !ok || k.Name != key { - continue - } - copy(list[i:], list[i+1:]) - r.Call.List = list[:len(list)-1] - return as.RHS - } - return nil -} - -// SetAttr sets the rule's attribute with the given key to value. -// If the rule has no attribute with the key, SetAttr appends -// one to the end of the rule's attribute list. -func (r *Rule) SetAttr(key string, val Expr) { - as := r.AttrDefn(key) - if as != nil { - as.RHS = val - return - } - - r.Call.List = append(r.Call.List, - &AssignExpr{ - LHS: &Ident{Name: key}, - Op: "=", - RHS: val, - }, - ) -} - -// AttrLiteral returns the literal form of the rule's attribute -// with the given key (such as "cc_api_version"), only when -// that value is an identifier or number. -// 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 { - value := r.Attr(key) - if ident, ok := value.(*Ident); ok { - return ident.Name - } - if literal, ok := value.(*LiteralExpr); ok { - return literal.Token - } - return "" -} - -// AttrString returns the value of the rule's attribute -// with the given key (such as "name"), as a string. -// If the rule has no such attribute or the attribute has a non-string value, -// Attr returns the empty string. -func (r *Rule) AttrString(key string) string { - str, ok := r.Attr(key).(*StringExpr) - if !ok { - return "" - } - return str.Value -} - -// AttrStrings returns the value of the rule's attribute -// with the given key (such as "srcs"), as a []string. -// If the rule has no such attribute or the attribute is not -// a list of strings, AttrStrings returns a nil slice. -func (r *Rule) AttrStrings(key string) []string { - return Strings(r.Attr(key)) -} - -// Strings returns expr as a []string. -// If expr is not a list of string literals, -// Strings returns a nil slice instead. -// If expr is an empty list of string literals, -// returns a non-nil empty slice. -// (this allows differentiating between these two cases) -func Strings(expr Expr) []string { - list, ok := expr.(*ListExpr) - if !ok { - return nil - } - all := []string{} // not nil - for _, l := range list.List { - str, ok := l.(*StringExpr) - if !ok { - return nil - } - all = append(all, str.Value) - } - return all -} diff --git a/vendor/github.com/bazelbuild/buildtools/build/syntax.go b/vendor/github.com/bazelbuild/buildtools/build/syntax.go deleted file mode 100644 index b7688219a8e..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/syntax.go +++ /dev/null @@ -1,571 +0,0 @@ -/* -Copyright 2016 Google Inc. 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 build implements parsing and printing of BUILD files. -package build - -// Syntax data structure definitions. - -import ( - "strings" - "unicode/utf8" -) - -// A Position describes the position between two bytes of input. -type Position struct { - Line int // line in input (starting at 1) - LineRune int // rune in line (starting at 1) - Byte int // byte in input (starting at 0) -} - -// add returns the position at the end of s, assuming it starts at p. -func (p Position) add(s string) Position { - p.Byte += len(s) - if n := strings.Count(s, "\n"); n > 0 { - p.Line += n - s = s[strings.LastIndex(s, "\n")+1:] - p.LineRune = 1 - } - p.LineRune += utf8.RuneCountInString(s) - return p -} - -// An Expr represents an input element. -type Expr interface { - // Span returns the start and end position of the expression, - // excluding leading or trailing comments. - Span() (start, end Position) - - // Comment returns the comments attached to the expression. - // This method would normally be named 'Comments' but that - // would interfere with embedding a type of the same name. - Comment() *Comments -} - -// A Comment represents a single # comment. -type Comment struct { - Start Position - Token string // without trailing newline -} - -// Comments collects the comments associated with an expression. -type Comments struct { - Before []Comment // whole-line comments before this expression - Suffix []Comment // end-of-line comments after this expression - - // For top-level expressions only, After lists whole-line - // comments following the expression. - After []Comment -} - -// Comment returns the receiver. This isn't useful by itself, but -// a Comments struct is embedded into all the expression -// implementation types, and this gives each of those a Comment -// method to satisfy the Expr interface. -func (c *Comments) Comment() *Comments { - return c -} - -// stmtsEnd returns the end position of the last non-nil statement -func stmtsEnd(stmts []Expr) Position { - for i := len(stmts) - 1; i >= 0; i-- { - if stmts[i] != nil { - _, end := stmts[i].Span() - return end - } - } - return Position{} -} - -// A File represents an entire BUILD or .bzl file. -type File struct { - Path string // file path, relative to workspace directory - Pkg string // optional; the package of the file - Type FileType - Comments - Stmt []Expr -} - -// DisplayPath returns the filename if it's not empty, "" otherwise -func (f *File) DisplayPath() string { - if f.Path == "" { - return "" - } - return f.Path -} - -func (f *File) Span() (start, end Position) { - if len(f.Stmt) == 0 { - p := Position{Line: 1, LineRune: 1} - return p, p - } - start = Position{} - end = stmtsEnd(f.Stmt) - return start, end -} - -// A CommentBlock represents a top-level block of comments separate -// from any rule. -type CommentBlock struct { - Comments - Start Position -} - -func (x *CommentBlock) Span() (start, end Position) { - return x.Start, x.Start -} - -// An Ident represents an identifier. -type Ident struct { - Comments - NamePos Position - Name string -} - -func (x *Ident) Span() (start, end Position) { - return x.NamePos, x.NamePos.add(x.Name) -} - -// BranchStmt represents a `pass`, `break`, or `continue` 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 - Token string // identifier token -} - -func (x *LiteralExpr) Span() (start, end Position) { - return x.Start, x.Start.add(x.Token) -} - -// A StringExpr represents a single literal string. -type StringExpr struct { - Comments - Start Position - Value string // string value (decoded) - TripleQuote bool // triple quote output - End Position - - // To allow specific formatting of string literals, - // at least within our requirements, record the - // preferred form of Value. This field is a hint: - // it is only used if it is a valid quoted form for Value. - Token string -} - -func (x *StringExpr) Span() (start, end Position) { - return x.Start, x.End -} - -// An End represents the end of a parenthesized or bracketed expression. -// It is a place to hang comments. -type End struct { - Comments - Pos Position -} - -func (x *End) Span() (start, end Position) { - return x.Pos, x.Pos.add(")") -} - -// A CallExpr represents a function call expression: X(List). -type CallExpr struct { - Comments - X Expr - ListStart Position // position of ( - List []Expr - End // position of ) - ForceCompact bool // force compact (non-multiline) form when printing - ForceMultiLine bool // force multiline form when printing -} - -func (x *CallExpr) Span() (start, end Position) { - start, _ = x.X.Span() - return start, x.End.Pos.add(")") -} - -// A DotExpr represents a field selector: X.Name. -type DotExpr struct { - Comments - X Expr - Dot Position - NamePos Position - Name string -} - -func (x *DotExpr) Span() (start, end Position) { - start, _ = x.X.Span() - return start, x.NamePos.add(x.Name) -} - -// 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 - End -} - -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 - Vars Expr - In Position - X Expr -} - -func (x *ForClause) Span() (start, end Position) { - _, end = x.X.Span() - return x.For, end -} - -// An IfClause represents an if clause in a list comprehension: if Cond. -type IfClause struct { - Comments - If Position - Cond Expr -} - -func (x *IfClause) Span() (start, end Position) { - _, end = x.Cond.Span() - return x.If, end -} - -// A KeyValueExpr represents a dictionary entry: Key: Value. -type KeyValueExpr struct { - Comments - Key Expr - Colon Position - Value Expr -} - -func (x *KeyValueExpr) Span() (start, end Position) { - start, _ = x.Key.Span() - _, end = x.Value.Span() - return start, end -} - -// A DictExpr represents a dictionary literal: { List }. -type DictExpr struct { - Comments - Start Position - List []Expr // all *KeyValueExprs - End - ForceMultiLine bool // force multiline form when printing -} - -func (x *DictExpr) Span() (start, end Position) { - return x.Start, x.End.Pos.add("}") -} - -// A ListExpr represents a list literal: [ List ]. -type ListExpr struct { - Comments - Start Position - List []Expr - End - ForceMultiLine bool // force multiline form when printing -} - -func (x *ListExpr) Span() (start, end Position) { - return x.Start, x.End.Pos.add("]") -} - -// A SetExpr represents a set literal: { List }. -type SetExpr struct { - Comments - Start Position - List []Expr - 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) { - 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. -type UnaryExpr struct { - Comments - OpStart Position - Op string - X Expr -} - -func (x *UnaryExpr) Span() (start, end Position) { - if x.X == nil { - return x.OpStart, x.OpStart - } - _, end = x.X.Span() - return x.OpStart, end -} - -// A BinaryExpr represents a binary expression: X Op Y. -type BinaryExpr struct { - Comments - X Expr - OpStart Position - Op string - LineBreak bool // insert line break between Op and Y - Y Expr -} - -func (x *BinaryExpr) Span() (start, end Position) { - start, _ = x.X.Span() - _, end = x.Y.Span() - return start, end -} - -// An AssignExpr represents a binary expression with `=`: LHS = RHS. -type AssignExpr struct { - Comments - LHS Expr - OpPos Position - Op string - LineBreak bool // insert line break between Op and RHS - RHS Expr -} - -func (x *AssignExpr) Span() (start, end Position) { - start, _ = x.LHS.Span() - _, end = x.RHS.Span() - return start, end -} - -// A ParenExpr represents a parenthesized expression: (X). -type ParenExpr struct { - Comments - Start Position - X Expr - End - ForceMultiLine bool // insert line break after opening ( and before closing ) -} - -func (x *ParenExpr) Span() (start, end Position) { - return x.Start, x.End.Pos.add(")") -} - -// A SliceExpr represents a slice expression: expr[from:to] or expr[from:to:step] . -type SliceExpr struct { - Comments - 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.add("]") -} - -// An IndexExpr represents an index expression: X[Y]. -type IndexExpr struct { - Comments - X Expr - IndexStart Position - Y Expr - End Position -} - -func (x *IndexExpr) Span() (start, end Position) { - start, _ = x.X.Span() - 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 - Function -} - -func (x *LambdaExpr) Span() (start, end Position) { - return x.Function.Span() -} - -// ConditionalExpr represents the conditional: X if TEST else ELSE. -type ConditionalExpr struct { - Comments - Then Expr - IfStart Position - Test Expr - ElseStart Position - Else Expr -} - -// Span returns the start and end position of the expression, -// excluding leading or trailing comments. -func (x *ConditionalExpr) Span() (start, end Position) { - start, _ = x.Then.Span() - _, 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 - ColonPos Position // position of the ":" - 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() -} - -// HeaderSpan returns the span of the function header `def f(...):` -func (x *DefStmt) HeaderSpan() (start, end Position) { - return x.Function.StartPos, x.ColonPos -} - -// 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 = stmtsEnd(x.Body) - 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 = stmtsEnd(body) - return x.If, end -} diff --git a/vendor/github.com/bazelbuild/buildtools/build/walk.go b/vendor/github.com/bazelbuild/buildtools/build/walk.go deleted file mode 100644 index 91d105bda23..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build/walk.go +++ /dev/null @@ -1,246 +0,0 @@ -/* -Copyright 2016 Google Inc. 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 build - -// Walk walks the expression tree v, calling f on all subexpressions -// in a preorder traversal. -// -// The stk argument is the stack of expressions in the recursion above x, -// from outermost to innermost. -// -func Walk(v Expr, f func(x Expr, stk []Expr)) { - var stack []Expr - walk1(&v, &stack, func(x *Expr, stk []Expr) Expr { - f(*x, stk) - return nil - }) -} - -// WalkPointers is the same as Walk but calls the callback function with pointers to nodes. -func WalkPointers(v Expr, f func(x *Expr, stk []Expr)) { - var stack []Expr - walk1(&v, &stack, func(x *Expr, stk []Expr) Expr { - f(x, stk) - return nil - }) -} - -// 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. -// -// The stk argument is the stack of expressions in the recursion above x, -// from outermost to innermost. -// -func Edit(v Expr, f func(x Expr, stk []Expr) Expr) Expr { - var stack []Expr - return walk1(&v, &stack, func(x *Expr, stk []Expr) Expr { - return f(*x, stk) - }) -} - -// 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, func(x *Expr, stk []Expr) Expr { - return f(*x, stk) - }) - }) -} - -// 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 - } - - if res := f(v, *stack); res != nil { - *v = res - } - *stack = append(*stack, *v) - - 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 *AssignExpr: - f(&v.LHS) - f(&v.RHS) - 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) -} diff --git a/vendor/github.com/bazelbuild/buildtools/build_proto/BUILD b/vendor/github.com/bazelbuild/buildtools/build_proto/BUILD deleted file mode 100644 index a7ad3a12fa6..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build_proto/BUILD +++ /dev/null @@ -1,24 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["build.gen.pb.go"], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/buildtools/build_proto", - importpath = "github.com/bazelbuild/buildtools/build_proto", - visibility = ["//visibility:public"], - deps = ["//vendor/github.com/golang/protobuf/proto:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/buildtools/build_proto/build.gen.pb.go b/vendor/github.com/bazelbuild/buildtools/build_proto/build.gen.pb.go deleted file mode 100644 index 50fbe155a85..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build_proto/build.gen.pb.go +++ /dev/null @@ -1,2566 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: build_proto/build.proto - -package blaze_query - -import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package - -type FilesetEntry_SymlinkBehavior int32 - -const ( - FilesetEntry_COPY FilesetEntry_SymlinkBehavior = 1 - FilesetEntry_DEREFERENCE FilesetEntry_SymlinkBehavior = 2 -) - -var FilesetEntry_SymlinkBehavior_name = map[int32]string{ - 1: "COPY", - 2: "DEREFERENCE", -} - -var FilesetEntry_SymlinkBehavior_value = map[string]int32{ - "COPY": 1, - "DEREFERENCE": 2, -} - -func (x FilesetEntry_SymlinkBehavior) Enum() *FilesetEntry_SymlinkBehavior { - p := new(FilesetEntry_SymlinkBehavior) - *p = x - return p -} - -func (x FilesetEntry_SymlinkBehavior) String() string { - return proto.EnumName(FilesetEntry_SymlinkBehavior_name, int32(x)) -} - -func (x *FilesetEntry_SymlinkBehavior) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(FilesetEntry_SymlinkBehavior_value, data, "FilesetEntry_SymlinkBehavior") - if err != nil { - return err - } - *x = FilesetEntry_SymlinkBehavior(value) - return nil -} - -func (FilesetEntry_SymlinkBehavior) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{6, 0} -} - -type Attribute_Discriminator int32 - -const ( - Attribute_INTEGER Attribute_Discriminator = 1 - Attribute_STRING Attribute_Discriminator = 2 - Attribute_LABEL Attribute_Discriminator = 3 - Attribute_OUTPUT Attribute_Discriminator = 4 - Attribute_STRING_LIST Attribute_Discriminator = 5 - Attribute_LABEL_LIST Attribute_Discriminator = 6 - Attribute_OUTPUT_LIST Attribute_Discriminator = 7 - Attribute_DISTRIBUTION_SET Attribute_Discriminator = 8 - Attribute_LICENSE Attribute_Discriminator = 9 - Attribute_STRING_DICT Attribute_Discriminator = 10 - Attribute_FILESET_ENTRY_LIST Attribute_Discriminator = 11 - Attribute_LABEL_LIST_DICT Attribute_Discriminator = 12 - Attribute_STRING_LIST_DICT Attribute_Discriminator = 13 - Attribute_BOOLEAN Attribute_Discriminator = 14 - Attribute_TRISTATE Attribute_Discriminator = 15 - Attribute_INTEGER_LIST Attribute_Discriminator = 16 - Attribute_UNKNOWN Attribute_Discriminator = 18 - Attribute_LABEL_DICT_UNARY Attribute_Discriminator = 19 - Attribute_SELECTOR_LIST Attribute_Discriminator = 20 - Attribute_LABEL_KEYED_STRING_DICT Attribute_Discriminator = 21 - Attribute_DEPRECATED_STRING_DICT_UNARY Attribute_Discriminator = 17 -) - -var Attribute_Discriminator_name = map[int32]string{ - 1: "INTEGER", - 2: "STRING", - 3: "LABEL", - 4: "OUTPUT", - 5: "STRING_LIST", - 6: "LABEL_LIST", - 7: "OUTPUT_LIST", - 8: "DISTRIBUTION_SET", - 9: "LICENSE", - 10: "STRING_DICT", - 11: "FILESET_ENTRY_LIST", - 12: "LABEL_LIST_DICT", - 13: "STRING_LIST_DICT", - 14: "BOOLEAN", - 15: "TRISTATE", - 16: "INTEGER_LIST", - 18: "UNKNOWN", - 19: "LABEL_DICT_UNARY", - 20: "SELECTOR_LIST", - 21: "LABEL_KEYED_STRING_DICT", - 17: "DEPRECATED_STRING_DICT_UNARY", -} - -var Attribute_Discriminator_value = map[string]int32{ - "INTEGER": 1, - "STRING": 2, - "LABEL": 3, - "OUTPUT": 4, - "STRING_LIST": 5, - "LABEL_LIST": 6, - "OUTPUT_LIST": 7, - "DISTRIBUTION_SET": 8, - "LICENSE": 9, - "STRING_DICT": 10, - "FILESET_ENTRY_LIST": 11, - "LABEL_LIST_DICT": 12, - "STRING_LIST_DICT": 13, - "BOOLEAN": 14, - "TRISTATE": 15, - "INTEGER_LIST": 16, - "UNKNOWN": 18, - "LABEL_DICT_UNARY": 19, - "SELECTOR_LIST": 20, - "LABEL_KEYED_STRING_DICT": 21, - "DEPRECATED_STRING_DICT_UNARY": 17, -} - -func (x Attribute_Discriminator) Enum() *Attribute_Discriminator { - p := new(Attribute_Discriminator) - *p = x - return p -} - -func (x Attribute_Discriminator) String() string { - return proto.EnumName(Attribute_Discriminator_name, int32(x)) -} - -func (x *Attribute_Discriminator) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Attribute_Discriminator_value, data, "Attribute_Discriminator") - if err != nil { - return err - } - *x = Attribute_Discriminator(value) - return nil -} - -func (Attribute_Discriminator) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{7, 0} -} - -type Attribute_Tristate int32 - -const ( - Attribute_NO Attribute_Tristate = 0 - Attribute_YES Attribute_Tristate = 1 - Attribute_AUTO Attribute_Tristate = 2 -) - -var Attribute_Tristate_name = map[int32]string{ - 0: "NO", - 1: "YES", - 2: "AUTO", -} - -var Attribute_Tristate_value = map[string]int32{ - "NO": 0, - "YES": 1, - "AUTO": 2, -} - -func (x Attribute_Tristate) Enum() *Attribute_Tristate { - p := new(Attribute_Tristate) - *p = x - return p -} - -func (x Attribute_Tristate) String() string { - return proto.EnumName(Attribute_Tristate_name, int32(x)) -} - -func (x *Attribute_Tristate) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Attribute_Tristate_value, data, "Attribute_Tristate") - if err != nil { - return err - } - *x = Attribute_Tristate(value) - return nil -} - -func (Attribute_Tristate) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{7, 1} -} - -type Target_Discriminator int32 - -const ( - Target_RULE Target_Discriminator = 1 - Target_SOURCE_FILE Target_Discriminator = 2 - Target_GENERATED_FILE Target_Discriminator = 3 - Target_PACKAGE_GROUP Target_Discriminator = 4 - Target_ENVIRONMENT_GROUP Target_Discriminator = 5 -) - -var Target_Discriminator_name = map[int32]string{ - 1: "RULE", - 2: "SOURCE_FILE", - 3: "GENERATED_FILE", - 4: "PACKAGE_GROUP", - 5: "ENVIRONMENT_GROUP", -} - -var Target_Discriminator_value = map[string]int32{ - "RULE": 1, - "SOURCE_FILE": 2, - "GENERATED_FILE": 3, - "PACKAGE_GROUP": 4, - "ENVIRONMENT_GROUP": 5, -} - -func (x Target_Discriminator) Enum() *Target_Discriminator { - p := new(Target_Discriminator) - *p = x - return p -} - -func (x Target_Discriminator) String() string { - return proto.EnumName(Target_Discriminator_name, int32(x)) -} - -func (x *Target_Discriminator) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Target_Discriminator_value, data, "Target_Discriminator") - if err != nil { - return err - } - *x = Target_Discriminator(value) - return nil -} - -func (Target_Discriminator) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{16, 0} -} - -type AllowedRuleClassInfo_AllowedRuleClasses int32 - -const ( - AllowedRuleClassInfo_ANY AllowedRuleClassInfo_AllowedRuleClasses = 1 - AllowedRuleClassInfo_SPECIFIED AllowedRuleClassInfo_AllowedRuleClasses = 2 -) - -var AllowedRuleClassInfo_AllowedRuleClasses_name = map[int32]string{ - 1: "ANY", - 2: "SPECIFIED", -} - -var AllowedRuleClassInfo_AllowedRuleClasses_value = map[string]int32{ - "ANY": 1, - "SPECIFIED": 2, -} - -func (x AllowedRuleClassInfo_AllowedRuleClasses) Enum() *AllowedRuleClassInfo_AllowedRuleClasses { - p := new(AllowedRuleClassInfo_AllowedRuleClasses) - *p = x - return p -} - -func (x AllowedRuleClassInfo_AllowedRuleClasses) String() string { - return proto.EnumName(AllowedRuleClassInfo_AllowedRuleClasses_name, int32(x)) -} - -func (x *AllowedRuleClassInfo_AllowedRuleClasses) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(AllowedRuleClassInfo_AllowedRuleClasses_value, data, "AllowedRuleClassInfo_AllowedRuleClasses") - if err != nil { - return err - } - *x = AllowedRuleClassInfo_AllowedRuleClasses(value) - return nil -} - -func (AllowedRuleClassInfo_AllowedRuleClasses) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{18, 0} -} - -type Event_EventKind int32 - -const ( - Event_ERROR Event_EventKind = 1 - Event_WARNING Event_EventKind = 2 - Event_INFO Event_EventKind = 3 - Event_PROGRESS Event_EventKind = 4 -) - -var Event_EventKind_name = map[int32]string{ - 1: "ERROR", - 2: "WARNING", - 3: "INFO", - 4: "PROGRESS", -} - -var Event_EventKind_value = map[string]int32{ - "ERROR": 1, - "WARNING": 2, - "INFO": 3, - "PROGRESS": 4, -} - -func (x Event_EventKind) Enum() *Event_EventKind { - p := new(Event_EventKind) - *p = x - return p -} - -func (x Event_EventKind) String() string { - return proto.EnumName(Event_EventKind_name, int32(x)) -} - -func (x *Event_EventKind) UnmarshalJSON(data []byte) error { - value, err := proto.UnmarshalJSONEnum(Event_EventKind_value, data, "Event_EventKind") - if err != nil { - return err - } - *x = Event_EventKind(value) - return nil -} - -func (Event_EventKind) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{26, 0} -} - -type License struct { - LicenseType []string `protobuf:"bytes,1,rep,name=license_type,json=licenseType" json:"license_type,omitempty"` - Exception []string `protobuf:"bytes,2,rep,name=exception" json:"exception,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *License) Reset() { *m = License{} } -func (m *License) String() string { return proto.CompactTextString(m) } -func (*License) ProtoMessage() {} -func (*License) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{0} -} - -func (m *License) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_License.Unmarshal(m, b) -} -func (m *License) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_License.Marshal(b, m, deterministic) -} -func (m *License) XXX_Merge(src proto.Message) { - xxx_messageInfo_License.Merge(m, src) -} -func (m *License) XXX_Size() int { - return xxx_messageInfo_License.Size(m) -} -func (m *License) XXX_DiscardUnknown() { - xxx_messageInfo_License.DiscardUnknown(m) -} - -var xxx_messageInfo_License proto.InternalMessageInfo - -func (m *License) GetLicenseType() []string { - if m != nil { - return m.LicenseType - } - return nil -} - -func (m *License) GetException() []string { - if m != nil { - return m.Exception - } - return nil -} - -type StringDictEntry struct { - Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` - Value *string `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *StringDictEntry) Reset() { *m = StringDictEntry{} } -func (m *StringDictEntry) String() string { return proto.CompactTextString(m) } -func (*StringDictEntry) ProtoMessage() {} -func (*StringDictEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{1} -} - -func (m *StringDictEntry) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_StringDictEntry.Unmarshal(m, b) -} -func (m *StringDictEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_StringDictEntry.Marshal(b, m, deterministic) -} -func (m *StringDictEntry) XXX_Merge(src proto.Message) { - xxx_messageInfo_StringDictEntry.Merge(m, src) -} -func (m *StringDictEntry) XXX_Size() int { - return xxx_messageInfo_StringDictEntry.Size(m) -} -func (m *StringDictEntry) XXX_DiscardUnknown() { - xxx_messageInfo_StringDictEntry.DiscardUnknown(m) -} - -var xxx_messageInfo_StringDictEntry proto.InternalMessageInfo - -func (m *StringDictEntry) GetKey() string { - if m != nil && m.Key != nil { - return *m.Key - } - return "" -} - -func (m *StringDictEntry) GetValue() string { - if m != nil && m.Value != nil { - return *m.Value - } - return "" -} - -type LabelDictUnaryEntry struct { - Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` - Value *string `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LabelDictUnaryEntry) Reset() { *m = LabelDictUnaryEntry{} } -func (m *LabelDictUnaryEntry) String() string { return proto.CompactTextString(m) } -func (*LabelDictUnaryEntry) ProtoMessage() {} -func (*LabelDictUnaryEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{2} -} - -func (m *LabelDictUnaryEntry) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LabelDictUnaryEntry.Unmarshal(m, b) -} -func (m *LabelDictUnaryEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LabelDictUnaryEntry.Marshal(b, m, deterministic) -} -func (m *LabelDictUnaryEntry) XXX_Merge(src proto.Message) { - xxx_messageInfo_LabelDictUnaryEntry.Merge(m, src) -} -func (m *LabelDictUnaryEntry) XXX_Size() int { - return xxx_messageInfo_LabelDictUnaryEntry.Size(m) -} -func (m *LabelDictUnaryEntry) XXX_DiscardUnknown() { - xxx_messageInfo_LabelDictUnaryEntry.DiscardUnknown(m) -} - -var xxx_messageInfo_LabelDictUnaryEntry proto.InternalMessageInfo - -func (m *LabelDictUnaryEntry) GetKey() string { - if m != nil && m.Key != nil { - return *m.Key - } - return "" -} - -func (m *LabelDictUnaryEntry) GetValue() string { - if m != nil && m.Value != nil { - return *m.Value - } - return "" -} - -type LabelListDictEntry struct { - Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` - Value []string `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LabelListDictEntry) Reset() { *m = LabelListDictEntry{} } -func (m *LabelListDictEntry) String() string { return proto.CompactTextString(m) } -func (*LabelListDictEntry) ProtoMessage() {} -func (*LabelListDictEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{3} -} - -func (m *LabelListDictEntry) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LabelListDictEntry.Unmarshal(m, b) -} -func (m *LabelListDictEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LabelListDictEntry.Marshal(b, m, deterministic) -} -func (m *LabelListDictEntry) XXX_Merge(src proto.Message) { - xxx_messageInfo_LabelListDictEntry.Merge(m, src) -} -func (m *LabelListDictEntry) XXX_Size() int { - return xxx_messageInfo_LabelListDictEntry.Size(m) -} -func (m *LabelListDictEntry) XXX_DiscardUnknown() { - xxx_messageInfo_LabelListDictEntry.DiscardUnknown(m) -} - -var xxx_messageInfo_LabelListDictEntry proto.InternalMessageInfo - -func (m *LabelListDictEntry) GetKey() string { - if m != nil && m.Key != nil { - return *m.Key - } - return "" -} - -func (m *LabelListDictEntry) GetValue() []string { - if m != nil { - return m.Value - } - return nil -} - -type LabelKeyedStringDictEntry struct { - Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` - Value *string `protobuf:"bytes,2,req,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LabelKeyedStringDictEntry) Reset() { *m = LabelKeyedStringDictEntry{} } -func (m *LabelKeyedStringDictEntry) String() string { return proto.CompactTextString(m) } -func (*LabelKeyedStringDictEntry) ProtoMessage() {} -func (*LabelKeyedStringDictEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{4} -} - -func (m *LabelKeyedStringDictEntry) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LabelKeyedStringDictEntry.Unmarshal(m, b) -} -func (m *LabelKeyedStringDictEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LabelKeyedStringDictEntry.Marshal(b, m, deterministic) -} -func (m *LabelKeyedStringDictEntry) XXX_Merge(src proto.Message) { - xxx_messageInfo_LabelKeyedStringDictEntry.Merge(m, src) -} -func (m *LabelKeyedStringDictEntry) XXX_Size() int { - return xxx_messageInfo_LabelKeyedStringDictEntry.Size(m) -} -func (m *LabelKeyedStringDictEntry) XXX_DiscardUnknown() { - xxx_messageInfo_LabelKeyedStringDictEntry.DiscardUnknown(m) -} - -var xxx_messageInfo_LabelKeyedStringDictEntry proto.InternalMessageInfo - -func (m *LabelKeyedStringDictEntry) GetKey() string { - if m != nil && m.Key != nil { - return *m.Key - } - return "" -} - -func (m *LabelKeyedStringDictEntry) GetValue() string { - if m != nil && m.Value != nil { - return *m.Value - } - return "" -} - -type StringListDictEntry struct { - Key *string `protobuf:"bytes,1,req,name=key" json:"key,omitempty"` - Value []string `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *StringListDictEntry) Reset() { *m = StringListDictEntry{} } -func (m *StringListDictEntry) String() string { return proto.CompactTextString(m) } -func (*StringListDictEntry) ProtoMessage() {} -func (*StringListDictEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{5} -} - -func (m *StringListDictEntry) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_StringListDictEntry.Unmarshal(m, b) -} -func (m *StringListDictEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_StringListDictEntry.Marshal(b, m, deterministic) -} -func (m *StringListDictEntry) XXX_Merge(src proto.Message) { - xxx_messageInfo_StringListDictEntry.Merge(m, src) -} -func (m *StringListDictEntry) XXX_Size() int { - return xxx_messageInfo_StringListDictEntry.Size(m) -} -func (m *StringListDictEntry) XXX_DiscardUnknown() { - xxx_messageInfo_StringListDictEntry.DiscardUnknown(m) -} - -var xxx_messageInfo_StringListDictEntry proto.InternalMessageInfo - -func (m *StringListDictEntry) GetKey() string { - if m != nil && m.Key != nil { - return *m.Key - } - return "" -} - -func (m *StringListDictEntry) GetValue() []string { - if m != nil { - return m.Value - } - return nil -} - -type FilesetEntry struct { - Source *string `protobuf:"bytes,1,req,name=source" json:"source,omitempty"` - DestinationDirectory *string `protobuf:"bytes,2,req,name=destination_directory,json=destinationDirectory" json:"destination_directory,omitempty"` - FilesPresent *bool `protobuf:"varint,7,opt,name=files_present,json=filesPresent" json:"files_present,omitempty"` - File []string `protobuf:"bytes,3,rep,name=file" json:"file,omitempty"` - Exclude []string `protobuf:"bytes,4,rep,name=exclude" json:"exclude,omitempty"` - SymlinkBehavior *FilesetEntry_SymlinkBehavior `protobuf:"varint,5,opt,name=symlink_behavior,json=symlinkBehavior,enum=blaze_query.FilesetEntry_SymlinkBehavior,def=1" json:"symlink_behavior,omitempty"` - StripPrefix *string `protobuf:"bytes,6,opt,name=strip_prefix,json=stripPrefix" json:"strip_prefix,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *FilesetEntry) Reset() { *m = FilesetEntry{} } -func (m *FilesetEntry) String() string { return proto.CompactTextString(m) } -func (*FilesetEntry) ProtoMessage() {} -func (*FilesetEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{6} -} - -func (m *FilesetEntry) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FilesetEntry.Unmarshal(m, b) -} -func (m *FilesetEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FilesetEntry.Marshal(b, m, deterministic) -} -func (m *FilesetEntry) XXX_Merge(src proto.Message) { - xxx_messageInfo_FilesetEntry.Merge(m, src) -} -func (m *FilesetEntry) XXX_Size() int { - return xxx_messageInfo_FilesetEntry.Size(m) -} -func (m *FilesetEntry) XXX_DiscardUnknown() { - xxx_messageInfo_FilesetEntry.DiscardUnknown(m) -} - -var xxx_messageInfo_FilesetEntry proto.InternalMessageInfo - -const Default_FilesetEntry_SymlinkBehavior FilesetEntry_SymlinkBehavior = FilesetEntry_COPY - -func (m *FilesetEntry) GetSource() string { - if m != nil && m.Source != nil { - return *m.Source - } - return "" -} - -func (m *FilesetEntry) GetDestinationDirectory() string { - if m != nil && m.DestinationDirectory != nil { - return *m.DestinationDirectory - } - return "" -} - -func (m *FilesetEntry) GetFilesPresent() bool { - if m != nil && m.FilesPresent != nil { - return *m.FilesPresent - } - return false -} - -func (m *FilesetEntry) GetFile() []string { - if m != nil { - return m.File - } - return nil -} - -func (m *FilesetEntry) GetExclude() []string { - if m != nil { - return m.Exclude - } - return nil -} - -func (m *FilesetEntry) GetSymlinkBehavior() FilesetEntry_SymlinkBehavior { - if m != nil && m.SymlinkBehavior != nil { - return *m.SymlinkBehavior - } - return Default_FilesetEntry_SymlinkBehavior -} - -func (m *FilesetEntry) GetStripPrefix() string { - if m != nil && m.StripPrefix != nil { - return *m.StripPrefix - } - return "" -} - -type Attribute struct { - Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` - DEPRECATEDParseableLocation *Location `protobuf:"bytes,12,opt,name=DEPRECATED_parseable_location,json=DEPRECATEDParseableLocation" json:"DEPRECATED_parseable_location,omitempty"` - ExplicitlySpecified *bool `protobuf:"varint,13,opt,name=explicitly_specified,json=explicitlySpecified" json:"explicitly_specified,omitempty"` - Nodep *bool `protobuf:"varint,20,opt,name=nodep" json:"nodep,omitempty"` - Type *Attribute_Discriminator `protobuf:"varint,2,req,name=type,enum=blaze_query.Attribute_Discriminator" json:"type,omitempty"` - IntValue *int32 `protobuf:"varint,3,opt,name=int_value,json=intValue" json:"int_value,omitempty"` - StringValue *string `protobuf:"bytes,5,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` - BooleanValue *bool `protobuf:"varint,14,opt,name=boolean_value,json=booleanValue" json:"boolean_value,omitempty"` - TristateValue *Attribute_Tristate `protobuf:"varint,15,opt,name=tristate_value,json=tristateValue,enum=blaze_query.Attribute_Tristate" json:"tristate_value,omitempty"` - StringListValue []string `protobuf:"bytes,6,rep,name=string_list_value,json=stringListValue" json:"string_list_value,omitempty"` - License *License `protobuf:"bytes,7,opt,name=license" json:"license,omitempty"` - StringDictValue []*StringDictEntry `protobuf:"bytes,8,rep,name=string_dict_value,json=stringDictValue" json:"string_dict_value,omitempty"` - FilesetListValue []*FilesetEntry `protobuf:"bytes,9,rep,name=fileset_list_value,json=filesetListValue" json:"fileset_list_value,omitempty"` - LabelListDictValue []*LabelListDictEntry `protobuf:"bytes,10,rep,name=label_list_dict_value,json=labelListDictValue" json:"label_list_dict_value,omitempty"` - StringListDictValue []*StringListDictEntry `protobuf:"bytes,11,rep,name=string_list_dict_value,json=stringListDictValue" json:"string_list_dict_value,omitempty"` - IntListValue []int32 `protobuf:"varint,17,rep,name=int_list_value,json=intListValue" json:"int_list_value,omitempty"` - LabelDictUnaryValue []*LabelDictUnaryEntry `protobuf:"bytes,19,rep,name=label_dict_unary_value,json=labelDictUnaryValue" json:"label_dict_unary_value,omitempty"` - LabelKeyedStringDictValue []*LabelKeyedStringDictEntry `protobuf:"bytes,22,rep,name=label_keyed_string_dict_value,json=labelKeyedStringDictValue" json:"label_keyed_string_dict_value,omitempty"` - SelectorList *Attribute_SelectorList `protobuf:"bytes,21,opt,name=selector_list,json=selectorList" json:"selector_list,omitempty"` - DEPRECATEDGlobCriteria []*DEPRECATED_GlobCriteria `protobuf:"bytes,16,rep,name=DEPRECATED_glob_criteria,json=DEPRECATEDGlobCriteria" json:"DEPRECATED_glob_criteria,omitempty"` - DEPRECATEDStringDictUnaryValue [][]byte `protobuf:"bytes,18,rep,name=DEPRECATED_string_dict_unary_value,json=DEPRECATEDStringDictUnaryValue" json:"DEPRECATED_string_dict_unary_value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Attribute) Reset() { *m = Attribute{} } -func (m *Attribute) String() string { return proto.CompactTextString(m) } -func (*Attribute) ProtoMessage() {} -func (*Attribute) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{7} -} - -func (m *Attribute) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Attribute.Unmarshal(m, b) -} -func (m *Attribute) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Attribute.Marshal(b, m, deterministic) -} -func (m *Attribute) XXX_Merge(src proto.Message) { - xxx_messageInfo_Attribute.Merge(m, src) -} -func (m *Attribute) XXX_Size() int { - return xxx_messageInfo_Attribute.Size(m) -} -func (m *Attribute) XXX_DiscardUnknown() { - xxx_messageInfo_Attribute.DiscardUnknown(m) -} - -var xxx_messageInfo_Attribute proto.InternalMessageInfo - -func (m *Attribute) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *Attribute) GetDEPRECATEDParseableLocation() *Location { - if m != nil { - return m.DEPRECATEDParseableLocation - } - return nil -} - -func (m *Attribute) GetExplicitlySpecified() bool { - if m != nil && m.ExplicitlySpecified != nil { - return *m.ExplicitlySpecified - } - return false -} - -func (m *Attribute) GetNodep() bool { - if m != nil && m.Nodep != nil { - return *m.Nodep - } - return false -} - -func (m *Attribute) GetType() Attribute_Discriminator { - if m != nil && m.Type != nil { - return *m.Type - } - return Attribute_INTEGER -} - -func (m *Attribute) GetIntValue() int32 { - if m != nil && m.IntValue != nil { - return *m.IntValue - } - return 0 -} - -func (m *Attribute) GetStringValue() string { - if m != nil && m.StringValue != nil { - return *m.StringValue - } - return "" -} - -func (m *Attribute) GetBooleanValue() bool { - if m != nil && m.BooleanValue != nil { - return *m.BooleanValue - } - return false -} - -func (m *Attribute) GetTristateValue() Attribute_Tristate { - if m != nil && m.TristateValue != nil { - return *m.TristateValue - } - return Attribute_NO -} - -func (m *Attribute) GetStringListValue() []string { - if m != nil { - return m.StringListValue - } - return nil -} - -func (m *Attribute) GetLicense() *License { - if m != nil { - return m.License - } - return nil -} - -func (m *Attribute) GetStringDictValue() []*StringDictEntry { - if m != nil { - return m.StringDictValue - } - return nil -} - -func (m *Attribute) GetFilesetListValue() []*FilesetEntry { - if m != nil { - return m.FilesetListValue - } - return nil -} - -func (m *Attribute) GetLabelListDictValue() []*LabelListDictEntry { - if m != nil { - return m.LabelListDictValue - } - return nil -} - -func (m *Attribute) GetStringListDictValue() []*StringListDictEntry { - if m != nil { - return m.StringListDictValue - } - return nil -} - -func (m *Attribute) GetIntListValue() []int32 { - if m != nil { - return m.IntListValue - } - return nil -} - -func (m *Attribute) GetLabelDictUnaryValue() []*LabelDictUnaryEntry { - if m != nil { - return m.LabelDictUnaryValue - } - return nil -} - -func (m *Attribute) GetLabelKeyedStringDictValue() []*LabelKeyedStringDictEntry { - if m != nil { - return m.LabelKeyedStringDictValue - } - return nil -} - -func (m *Attribute) GetSelectorList() *Attribute_SelectorList { - if m != nil { - return m.SelectorList - } - return nil -} - -func (m *Attribute) GetDEPRECATEDGlobCriteria() []*DEPRECATED_GlobCriteria { - if m != nil { - return m.DEPRECATEDGlobCriteria - } - return nil -} - -func (m *Attribute) GetDEPRECATEDStringDictUnaryValue() [][]byte { - if m != nil { - return m.DEPRECATEDStringDictUnaryValue - } - return nil -} - -type Attribute_SelectorEntry struct { - Label *string `protobuf:"bytes,1,opt,name=label" json:"label,omitempty"` - IsDefaultValue *bool `protobuf:"varint,16,opt,name=is_default_value,json=isDefaultValue" json:"is_default_value,omitempty"` - IntValue *int32 `protobuf:"varint,2,opt,name=int_value,json=intValue" json:"int_value,omitempty"` - StringValue *string `protobuf:"bytes,3,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` - BooleanValue *bool `protobuf:"varint,4,opt,name=boolean_value,json=booleanValue" json:"boolean_value,omitempty"` - TristateValue *Attribute_Tristate `protobuf:"varint,5,opt,name=tristate_value,json=tristateValue,enum=blaze_query.Attribute_Tristate" json:"tristate_value,omitempty"` - StringListValue []string `protobuf:"bytes,6,rep,name=string_list_value,json=stringListValue" json:"string_list_value,omitempty"` - License *License `protobuf:"bytes,7,opt,name=license" json:"license,omitempty"` - StringDictValue []*StringDictEntry `protobuf:"bytes,8,rep,name=string_dict_value,json=stringDictValue" json:"string_dict_value,omitempty"` - FilesetListValue []*FilesetEntry `protobuf:"bytes,9,rep,name=fileset_list_value,json=filesetListValue" json:"fileset_list_value,omitempty"` - LabelListDictValue []*LabelListDictEntry `protobuf:"bytes,10,rep,name=label_list_dict_value,json=labelListDictValue" json:"label_list_dict_value,omitempty"` - StringListDictValue []*StringListDictEntry `protobuf:"bytes,11,rep,name=string_list_dict_value,json=stringListDictValue" json:"string_list_dict_value,omitempty"` - IntListValue []int32 `protobuf:"varint,13,rep,name=int_list_value,json=intListValue" json:"int_list_value,omitempty"` - LabelDictUnaryValue []*LabelDictUnaryEntry `protobuf:"bytes,15,rep,name=label_dict_unary_value,json=labelDictUnaryValue" json:"label_dict_unary_value,omitempty"` - LabelKeyedStringDictValue []*LabelKeyedStringDictEntry `protobuf:"bytes,17,rep,name=label_keyed_string_dict_value,json=labelKeyedStringDictValue" json:"label_keyed_string_dict_value,omitempty"` - DEPRECATEDGlobCriteria []*DEPRECATED_GlobCriteria `protobuf:"bytes,12,rep,name=DEPRECATED_glob_criteria,json=DEPRECATEDGlobCriteria" json:"DEPRECATED_glob_criteria,omitempty"` - DEPRECATEDStringDictUnaryValue [][]byte `protobuf:"bytes,14,rep,name=DEPRECATED_string_dict_unary_value,json=DEPRECATEDStringDictUnaryValue" json:"DEPRECATED_string_dict_unary_value,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Attribute_SelectorEntry) Reset() { *m = Attribute_SelectorEntry{} } -func (m *Attribute_SelectorEntry) String() string { return proto.CompactTextString(m) } -func (*Attribute_SelectorEntry) ProtoMessage() {} -func (*Attribute_SelectorEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{7, 0} -} - -func (m *Attribute_SelectorEntry) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Attribute_SelectorEntry.Unmarshal(m, b) -} -func (m *Attribute_SelectorEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Attribute_SelectorEntry.Marshal(b, m, deterministic) -} -func (m *Attribute_SelectorEntry) XXX_Merge(src proto.Message) { - xxx_messageInfo_Attribute_SelectorEntry.Merge(m, src) -} -func (m *Attribute_SelectorEntry) XXX_Size() int { - return xxx_messageInfo_Attribute_SelectorEntry.Size(m) -} -func (m *Attribute_SelectorEntry) XXX_DiscardUnknown() { - xxx_messageInfo_Attribute_SelectorEntry.DiscardUnknown(m) -} - -var xxx_messageInfo_Attribute_SelectorEntry proto.InternalMessageInfo - -func (m *Attribute_SelectorEntry) GetLabel() string { - if m != nil && m.Label != nil { - return *m.Label - } - return "" -} - -func (m *Attribute_SelectorEntry) GetIsDefaultValue() bool { - if m != nil && m.IsDefaultValue != nil { - return *m.IsDefaultValue - } - return false -} - -func (m *Attribute_SelectorEntry) GetIntValue() int32 { - if m != nil && m.IntValue != nil { - return *m.IntValue - } - return 0 -} - -func (m *Attribute_SelectorEntry) GetStringValue() string { - if m != nil && m.StringValue != nil { - return *m.StringValue - } - return "" -} - -func (m *Attribute_SelectorEntry) GetBooleanValue() bool { - if m != nil && m.BooleanValue != nil { - return *m.BooleanValue - } - return false -} - -func (m *Attribute_SelectorEntry) GetTristateValue() Attribute_Tristate { - if m != nil && m.TristateValue != nil { - return *m.TristateValue - } - return Attribute_NO -} - -func (m *Attribute_SelectorEntry) GetStringListValue() []string { - if m != nil { - return m.StringListValue - } - return nil -} - -func (m *Attribute_SelectorEntry) GetLicense() *License { - if m != nil { - return m.License - } - return nil -} - -func (m *Attribute_SelectorEntry) GetStringDictValue() []*StringDictEntry { - if m != nil { - return m.StringDictValue - } - return nil -} - -func (m *Attribute_SelectorEntry) GetFilesetListValue() []*FilesetEntry { - if m != nil { - return m.FilesetListValue - } - return nil -} - -func (m *Attribute_SelectorEntry) GetLabelListDictValue() []*LabelListDictEntry { - if m != nil { - return m.LabelListDictValue - } - return nil -} - -func (m *Attribute_SelectorEntry) GetStringListDictValue() []*StringListDictEntry { - if m != nil { - return m.StringListDictValue - } - return nil -} - -func (m *Attribute_SelectorEntry) GetIntListValue() []int32 { - if m != nil { - return m.IntListValue - } - return nil -} - -func (m *Attribute_SelectorEntry) GetLabelDictUnaryValue() []*LabelDictUnaryEntry { - if m != nil { - return m.LabelDictUnaryValue - } - return nil -} - -func (m *Attribute_SelectorEntry) GetLabelKeyedStringDictValue() []*LabelKeyedStringDictEntry { - if m != nil { - return m.LabelKeyedStringDictValue - } - return nil -} - -func (m *Attribute_SelectorEntry) GetDEPRECATEDGlobCriteria() []*DEPRECATED_GlobCriteria { - if m != nil { - return m.DEPRECATEDGlobCriteria - } - return nil -} - -func (m *Attribute_SelectorEntry) GetDEPRECATEDStringDictUnaryValue() [][]byte { - if m != nil { - return m.DEPRECATEDStringDictUnaryValue - } - return nil -} - -type Attribute_Selector struct { - Entries []*Attribute_SelectorEntry `protobuf:"bytes,1,rep,name=entries" json:"entries,omitempty"` - HasDefaultValue *bool `protobuf:"varint,2,opt,name=has_default_value,json=hasDefaultValue" json:"has_default_value,omitempty"` - NoMatchError *string `protobuf:"bytes,3,opt,name=no_match_error,json=noMatchError" json:"no_match_error,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Attribute_Selector) Reset() { *m = Attribute_Selector{} } -func (m *Attribute_Selector) String() string { return proto.CompactTextString(m) } -func (*Attribute_Selector) ProtoMessage() {} -func (*Attribute_Selector) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{7, 1} -} - -func (m *Attribute_Selector) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Attribute_Selector.Unmarshal(m, b) -} -func (m *Attribute_Selector) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Attribute_Selector.Marshal(b, m, deterministic) -} -func (m *Attribute_Selector) XXX_Merge(src proto.Message) { - xxx_messageInfo_Attribute_Selector.Merge(m, src) -} -func (m *Attribute_Selector) XXX_Size() int { - return xxx_messageInfo_Attribute_Selector.Size(m) -} -func (m *Attribute_Selector) XXX_DiscardUnknown() { - xxx_messageInfo_Attribute_Selector.DiscardUnknown(m) -} - -var xxx_messageInfo_Attribute_Selector proto.InternalMessageInfo - -func (m *Attribute_Selector) GetEntries() []*Attribute_SelectorEntry { - if m != nil { - return m.Entries - } - return nil -} - -func (m *Attribute_Selector) GetHasDefaultValue() bool { - if m != nil && m.HasDefaultValue != nil { - return *m.HasDefaultValue - } - return false -} - -func (m *Attribute_Selector) GetNoMatchError() string { - if m != nil && m.NoMatchError != nil { - return *m.NoMatchError - } - return "" -} - -type Attribute_SelectorList struct { - Type *Attribute_Discriminator `protobuf:"varint,1,opt,name=type,enum=blaze_query.Attribute_Discriminator" json:"type,omitempty"` - Elements []*Attribute_Selector `protobuf:"bytes,2,rep,name=elements" json:"elements,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Attribute_SelectorList) Reset() { *m = Attribute_SelectorList{} } -func (m *Attribute_SelectorList) String() string { return proto.CompactTextString(m) } -func (*Attribute_SelectorList) ProtoMessage() {} -func (*Attribute_SelectorList) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{7, 2} -} - -func (m *Attribute_SelectorList) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Attribute_SelectorList.Unmarshal(m, b) -} -func (m *Attribute_SelectorList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Attribute_SelectorList.Marshal(b, m, deterministic) -} -func (m *Attribute_SelectorList) XXX_Merge(src proto.Message) { - xxx_messageInfo_Attribute_SelectorList.Merge(m, src) -} -func (m *Attribute_SelectorList) XXX_Size() int { - return xxx_messageInfo_Attribute_SelectorList.Size(m) -} -func (m *Attribute_SelectorList) XXX_DiscardUnknown() { - xxx_messageInfo_Attribute_SelectorList.DiscardUnknown(m) -} - -var xxx_messageInfo_Attribute_SelectorList proto.InternalMessageInfo - -func (m *Attribute_SelectorList) GetType() Attribute_Discriminator { - if m != nil && m.Type != nil { - return *m.Type - } - return Attribute_INTEGER -} - -func (m *Attribute_SelectorList) GetElements() []*Attribute_Selector { - if m != nil { - return m.Elements - } - return nil -} - -type Rule struct { - Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` - RuleClass *string `protobuf:"bytes,2,req,name=rule_class,json=ruleClass" json:"rule_class,omitempty"` - Location *string `protobuf:"bytes,3,opt,name=location" json:"location,omitempty"` - Attribute []*Attribute `protobuf:"bytes,4,rep,name=attribute" json:"attribute,omitempty"` - RuleInput []string `protobuf:"bytes,5,rep,name=rule_input,json=ruleInput" json:"rule_input,omitempty"` - RuleOutput []string `protobuf:"bytes,6,rep,name=rule_output,json=ruleOutput" json:"rule_output,omitempty"` - DefaultSetting []string `protobuf:"bytes,7,rep,name=default_setting,json=defaultSetting" json:"default_setting,omitempty"` - DEPRECATEDParseableLocation *Location `protobuf:"bytes,8,opt,name=DEPRECATED_parseable_location,json=DEPRECATEDParseableLocation" json:"DEPRECATED_parseable_location,omitempty"` - PublicByDefault *bool `protobuf:"varint,9,opt,name=public_by_default,json=publicByDefault" json:"public_by_default,omitempty"` - IsSkylark *bool `protobuf:"varint,10,opt,name=is_skylark,json=isSkylark" json:"is_skylark,omitempty"` - SkylarkAttributeAspects []*AttributeAspect `protobuf:"bytes,11,rep,name=skylark_attribute_aspects,json=skylarkAttributeAspects" json:"skylark_attribute_aspects,omitempty"` - SkylarkEnvironmentHashCode *string `protobuf:"bytes,12,opt,name=skylark_environment_hash_code,json=skylarkEnvironmentHashCode" json:"skylark_environment_hash_code,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Rule) Reset() { *m = Rule{} } -func (m *Rule) String() string { return proto.CompactTextString(m) } -func (*Rule) ProtoMessage() {} -func (*Rule) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{8} -} - -func (m *Rule) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Rule.Unmarshal(m, b) -} -func (m *Rule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Rule.Marshal(b, m, deterministic) -} -func (m *Rule) XXX_Merge(src proto.Message) { - xxx_messageInfo_Rule.Merge(m, src) -} -func (m *Rule) XXX_Size() int { - return xxx_messageInfo_Rule.Size(m) -} -func (m *Rule) XXX_DiscardUnknown() { - xxx_messageInfo_Rule.DiscardUnknown(m) -} - -var xxx_messageInfo_Rule proto.InternalMessageInfo - -func (m *Rule) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *Rule) GetRuleClass() string { - if m != nil && m.RuleClass != nil { - return *m.RuleClass - } - return "" -} - -func (m *Rule) GetLocation() string { - if m != nil && m.Location != nil { - return *m.Location - } - return "" -} - -func (m *Rule) GetAttribute() []*Attribute { - if m != nil { - return m.Attribute - } - return nil -} - -func (m *Rule) GetRuleInput() []string { - if m != nil { - return m.RuleInput - } - return nil -} - -func (m *Rule) GetRuleOutput() []string { - if m != nil { - return m.RuleOutput - } - return nil -} - -func (m *Rule) GetDefaultSetting() []string { - if m != nil { - return m.DefaultSetting - } - return nil -} - -func (m *Rule) GetDEPRECATEDParseableLocation() *Location { - if m != nil { - return m.DEPRECATEDParseableLocation - } - return nil -} - -func (m *Rule) GetPublicByDefault() bool { - if m != nil && m.PublicByDefault != nil { - return *m.PublicByDefault - } - return false -} - -func (m *Rule) GetIsSkylark() bool { - if m != nil && m.IsSkylark != nil { - return *m.IsSkylark - } - return false -} - -func (m *Rule) GetSkylarkAttributeAspects() []*AttributeAspect { - if m != nil { - return m.SkylarkAttributeAspects - } - return nil -} - -func (m *Rule) GetSkylarkEnvironmentHashCode() string { - if m != nil && m.SkylarkEnvironmentHashCode != nil { - return *m.SkylarkEnvironmentHashCode - } - return "" -} - -type AttributeAspect struct { - AttributeName *string `protobuf:"bytes,1,req,name=attribute_name,json=attributeName" json:"attribute_name,omitempty"` - Aspect *SkylarkAspect `protobuf:"bytes,2,req,name=aspect" json:"aspect,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AttributeAspect) Reset() { *m = AttributeAspect{} } -func (m *AttributeAspect) String() string { return proto.CompactTextString(m) } -func (*AttributeAspect) ProtoMessage() {} -func (*AttributeAspect) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{9} -} - -func (m *AttributeAspect) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AttributeAspect.Unmarshal(m, b) -} -func (m *AttributeAspect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AttributeAspect.Marshal(b, m, deterministic) -} -func (m *AttributeAspect) XXX_Merge(src proto.Message) { - xxx_messageInfo_AttributeAspect.Merge(m, src) -} -func (m *AttributeAspect) XXX_Size() int { - return xxx_messageInfo_AttributeAspect.Size(m) -} -func (m *AttributeAspect) XXX_DiscardUnknown() { - xxx_messageInfo_AttributeAspect.DiscardUnknown(m) -} - -var xxx_messageInfo_AttributeAspect proto.InternalMessageInfo - -func (m *AttributeAspect) GetAttributeName() string { - if m != nil && m.AttributeName != nil { - return *m.AttributeName - } - return "" -} - -func (m *AttributeAspect) GetAspect() *SkylarkAspect { - if m != nil { - return m.Aspect - } - return nil -} - -type SkylarkAspect struct { - ExtensionFileLabel *string `protobuf:"bytes,1,req,name=extension_file_label,json=extensionFileLabel" json:"extension_file_label,omitempty"` - ExportedName *string `protobuf:"bytes,2,req,name=exported_name,json=exportedName" json:"exported_name,omitempty"` - Attribute []*Attribute `protobuf:"bytes,3,rep,name=attribute" json:"attribute,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SkylarkAspect) Reset() { *m = SkylarkAspect{} } -func (m *SkylarkAspect) String() string { return proto.CompactTextString(m) } -func (*SkylarkAspect) ProtoMessage() {} -func (*SkylarkAspect) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{10} -} - -func (m *SkylarkAspect) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SkylarkAspect.Unmarshal(m, b) -} -func (m *SkylarkAspect) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SkylarkAspect.Marshal(b, m, deterministic) -} -func (m *SkylarkAspect) XXX_Merge(src proto.Message) { - xxx_messageInfo_SkylarkAspect.Merge(m, src) -} -func (m *SkylarkAspect) XXX_Size() int { - return xxx_messageInfo_SkylarkAspect.Size(m) -} -func (m *SkylarkAspect) XXX_DiscardUnknown() { - xxx_messageInfo_SkylarkAspect.DiscardUnknown(m) -} - -var xxx_messageInfo_SkylarkAspect proto.InternalMessageInfo - -func (m *SkylarkAspect) GetExtensionFileLabel() string { - if m != nil && m.ExtensionFileLabel != nil { - return *m.ExtensionFileLabel - } - return "" -} - -func (m *SkylarkAspect) GetExportedName() string { - if m != nil && m.ExportedName != nil { - return *m.ExportedName - } - return "" -} - -func (m *SkylarkAspect) GetAttribute() []*Attribute { - if m != nil { - return m.Attribute - } - return nil -} - -type RuleSummary struct { - Rule *Rule `protobuf:"bytes,1,req,name=rule" json:"rule,omitempty"` - Dependency []*Rule `protobuf:"bytes,2,rep,name=dependency" json:"dependency,omitempty"` - Location *string `protobuf:"bytes,3,opt,name=location" json:"location,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *RuleSummary) Reset() { *m = RuleSummary{} } -func (m *RuleSummary) String() string { return proto.CompactTextString(m) } -func (*RuleSummary) ProtoMessage() {} -func (*RuleSummary) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{11} -} - -func (m *RuleSummary) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RuleSummary.Unmarshal(m, b) -} -func (m *RuleSummary) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RuleSummary.Marshal(b, m, deterministic) -} -func (m *RuleSummary) XXX_Merge(src proto.Message) { - xxx_messageInfo_RuleSummary.Merge(m, src) -} -func (m *RuleSummary) XXX_Size() int { - return xxx_messageInfo_RuleSummary.Size(m) -} -func (m *RuleSummary) XXX_DiscardUnknown() { - xxx_messageInfo_RuleSummary.DiscardUnknown(m) -} - -var xxx_messageInfo_RuleSummary proto.InternalMessageInfo - -func (m *RuleSummary) GetRule() *Rule { - if m != nil { - return m.Rule - } - return nil -} - -func (m *RuleSummary) GetDependency() []*Rule { - if m != nil { - return m.Dependency - } - return nil -} - -func (m *RuleSummary) GetLocation() string { - if m != nil && m.Location != nil { - return *m.Location - } - return "" -} - -type PackageGroup struct { - Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` - ContainedPackage []string `protobuf:"bytes,2,rep,name=contained_package,json=containedPackage" json:"contained_package,omitempty"` - IncludedPackageGroup []string `protobuf:"bytes,3,rep,name=included_package_group,json=includedPackageGroup" json:"included_package_group,omitempty"` - DEPRECATEDParseableLocation *Location `protobuf:"bytes,4,opt,name=DEPRECATED_parseable_location,json=DEPRECATEDParseableLocation" json:"DEPRECATED_parseable_location,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PackageGroup) Reset() { *m = PackageGroup{} } -func (m *PackageGroup) String() string { return proto.CompactTextString(m) } -func (*PackageGroup) ProtoMessage() {} -func (*PackageGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{12} -} - -func (m *PackageGroup) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PackageGroup.Unmarshal(m, b) -} -func (m *PackageGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PackageGroup.Marshal(b, m, deterministic) -} -func (m *PackageGroup) XXX_Merge(src proto.Message) { - xxx_messageInfo_PackageGroup.Merge(m, src) -} -func (m *PackageGroup) XXX_Size() int { - return xxx_messageInfo_PackageGroup.Size(m) -} -func (m *PackageGroup) XXX_DiscardUnknown() { - xxx_messageInfo_PackageGroup.DiscardUnknown(m) -} - -var xxx_messageInfo_PackageGroup proto.InternalMessageInfo - -func (m *PackageGroup) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *PackageGroup) GetContainedPackage() []string { - if m != nil { - return m.ContainedPackage - } - return nil -} - -func (m *PackageGroup) GetIncludedPackageGroup() []string { - if m != nil { - return m.IncludedPackageGroup - } - return nil -} - -func (m *PackageGroup) GetDEPRECATEDParseableLocation() *Location { - if m != nil { - return m.DEPRECATEDParseableLocation - } - return nil -} - -type EnvironmentGroup struct { - Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` - Environment []string `protobuf:"bytes,2,rep,name=environment" json:"environment,omitempty"` - Default []string `protobuf:"bytes,3,rep,name=default" json:"default,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *EnvironmentGroup) Reset() { *m = EnvironmentGroup{} } -func (m *EnvironmentGroup) String() string { return proto.CompactTextString(m) } -func (*EnvironmentGroup) ProtoMessage() {} -func (*EnvironmentGroup) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{13} -} - -func (m *EnvironmentGroup) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_EnvironmentGroup.Unmarshal(m, b) -} -func (m *EnvironmentGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_EnvironmentGroup.Marshal(b, m, deterministic) -} -func (m *EnvironmentGroup) XXX_Merge(src proto.Message) { - xxx_messageInfo_EnvironmentGroup.Merge(m, src) -} -func (m *EnvironmentGroup) XXX_Size() int { - return xxx_messageInfo_EnvironmentGroup.Size(m) -} -func (m *EnvironmentGroup) XXX_DiscardUnknown() { - xxx_messageInfo_EnvironmentGroup.DiscardUnknown(m) -} - -var xxx_messageInfo_EnvironmentGroup proto.InternalMessageInfo - -func (m *EnvironmentGroup) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *EnvironmentGroup) GetEnvironment() []string { - if m != nil { - return m.Environment - } - return nil -} - -func (m *EnvironmentGroup) GetDefault() []string { - if m != nil { - return m.Default - } - return nil -} - -type SourceFile struct { - Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` - Location *string `protobuf:"bytes,2,opt,name=location" json:"location,omitempty"` - DEPRECATEDParseableLocation *Location `protobuf:"bytes,7,opt,name=DEPRECATED_parseable_location,json=DEPRECATEDParseableLocation" json:"DEPRECATED_parseable_location,omitempty"` - Subinclude []string `protobuf:"bytes,3,rep,name=subinclude" json:"subinclude,omitempty"` - PackageGroup []string `protobuf:"bytes,4,rep,name=package_group,json=packageGroup" json:"package_group,omitempty"` - VisibilityLabel []string `protobuf:"bytes,5,rep,name=visibility_label,json=visibilityLabel" json:"visibility_label,omitempty"` - Feature []string `protobuf:"bytes,6,rep,name=feature" json:"feature,omitempty"` - License *License `protobuf:"bytes,8,opt,name=license" json:"license,omitempty"` - PackageContainsErrors *bool `protobuf:"varint,9,opt,name=package_contains_errors,json=packageContainsErrors" json:"package_contains_errors,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SourceFile) Reset() { *m = SourceFile{} } -func (m *SourceFile) String() string { return proto.CompactTextString(m) } -func (*SourceFile) ProtoMessage() {} -func (*SourceFile) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{14} -} - -func (m *SourceFile) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SourceFile.Unmarshal(m, b) -} -func (m *SourceFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SourceFile.Marshal(b, m, deterministic) -} -func (m *SourceFile) XXX_Merge(src proto.Message) { - xxx_messageInfo_SourceFile.Merge(m, src) -} -func (m *SourceFile) XXX_Size() int { - return xxx_messageInfo_SourceFile.Size(m) -} -func (m *SourceFile) XXX_DiscardUnknown() { - xxx_messageInfo_SourceFile.DiscardUnknown(m) -} - -var xxx_messageInfo_SourceFile proto.InternalMessageInfo - -func (m *SourceFile) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *SourceFile) GetLocation() string { - if m != nil && m.Location != nil { - return *m.Location - } - return "" -} - -func (m *SourceFile) GetDEPRECATEDParseableLocation() *Location { - if m != nil { - return m.DEPRECATEDParseableLocation - } - return nil -} - -func (m *SourceFile) GetSubinclude() []string { - if m != nil { - return m.Subinclude - } - return nil -} - -func (m *SourceFile) GetPackageGroup() []string { - if m != nil { - return m.PackageGroup - } - return nil -} - -func (m *SourceFile) GetVisibilityLabel() []string { - if m != nil { - return m.VisibilityLabel - } - return nil -} - -func (m *SourceFile) GetFeature() []string { - if m != nil { - return m.Feature - } - return nil -} - -func (m *SourceFile) GetLicense() *License { - if m != nil { - return m.License - } - return nil -} - -func (m *SourceFile) GetPackageContainsErrors() bool { - if m != nil && m.PackageContainsErrors != nil { - return *m.PackageContainsErrors - } - return false -} - -type GeneratedFile struct { - Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` - GeneratingRule *string `protobuf:"bytes,2,req,name=generating_rule,json=generatingRule" json:"generating_rule,omitempty"` - Location *string `protobuf:"bytes,3,opt,name=location" json:"location,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GeneratedFile) Reset() { *m = GeneratedFile{} } -func (m *GeneratedFile) String() string { return proto.CompactTextString(m) } -func (*GeneratedFile) ProtoMessage() {} -func (*GeneratedFile) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{15} -} - -func (m *GeneratedFile) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GeneratedFile.Unmarshal(m, b) -} -func (m *GeneratedFile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GeneratedFile.Marshal(b, m, deterministic) -} -func (m *GeneratedFile) XXX_Merge(src proto.Message) { - xxx_messageInfo_GeneratedFile.Merge(m, src) -} -func (m *GeneratedFile) XXX_Size() int { - return xxx_messageInfo_GeneratedFile.Size(m) -} -func (m *GeneratedFile) XXX_DiscardUnknown() { - xxx_messageInfo_GeneratedFile.DiscardUnknown(m) -} - -var xxx_messageInfo_GeneratedFile proto.InternalMessageInfo - -func (m *GeneratedFile) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *GeneratedFile) GetGeneratingRule() string { - if m != nil && m.GeneratingRule != nil { - return *m.GeneratingRule - } - return "" -} - -func (m *GeneratedFile) GetLocation() string { - if m != nil && m.Location != nil { - return *m.Location - } - return "" -} - -type Target struct { - Type *Target_Discriminator `protobuf:"varint,1,req,name=type,enum=blaze_query.Target_Discriminator" json:"type,omitempty"` - Rule *Rule `protobuf:"bytes,2,opt,name=rule" json:"rule,omitempty"` - SourceFile *SourceFile `protobuf:"bytes,3,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"` - GeneratedFile *GeneratedFile `protobuf:"bytes,4,opt,name=generated_file,json=generatedFile" json:"generated_file,omitempty"` - PackageGroup *PackageGroup `protobuf:"bytes,5,opt,name=package_group,json=packageGroup" json:"package_group,omitempty"` - EnvironmentGroup *EnvironmentGroup `protobuf:"bytes,6,opt,name=environment_group,json=environmentGroup" json:"environment_group,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Target) Reset() { *m = Target{} } -func (m *Target) String() string { return proto.CompactTextString(m) } -func (*Target) ProtoMessage() {} -func (*Target) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{16} -} - -func (m *Target) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Target.Unmarshal(m, b) -} -func (m *Target) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Target.Marshal(b, m, deterministic) -} -func (m *Target) XXX_Merge(src proto.Message) { - xxx_messageInfo_Target.Merge(m, src) -} -func (m *Target) XXX_Size() int { - return xxx_messageInfo_Target.Size(m) -} -func (m *Target) XXX_DiscardUnknown() { - xxx_messageInfo_Target.DiscardUnknown(m) -} - -var xxx_messageInfo_Target proto.InternalMessageInfo - -func (m *Target) GetType() Target_Discriminator { - if m != nil && m.Type != nil { - return *m.Type - } - return Target_RULE -} - -func (m *Target) GetRule() *Rule { - if m != nil { - return m.Rule - } - return nil -} - -func (m *Target) GetSourceFile() *SourceFile { - if m != nil { - return m.SourceFile - } - return nil -} - -func (m *Target) GetGeneratedFile() *GeneratedFile { - if m != nil { - return m.GeneratedFile - } - return nil -} - -func (m *Target) GetPackageGroup() *PackageGroup { - if m != nil { - return m.PackageGroup - } - return nil -} - -func (m *Target) GetEnvironmentGroup() *EnvironmentGroup { - if m != nil { - return m.EnvironmentGroup - } - return nil -} - -type QueryResult struct { - Target []*Target `protobuf:"bytes,1,rep,name=target" json:"target,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *QueryResult) Reset() { *m = QueryResult{} } -func (m *QueryResult) String() string { return proto.CompactTextString(m) } -func (*QueryResult) ProtoMessage() {} -func (*QueryResult) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{17} -} - -func (m *QueryResult) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_QueryResult.Unmarshal(m, b) -} -func (m *QueryResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_QueryResult.Marshal(b, m, deterministic) -} -func (m *QueryResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_QueryResult.Merge(m, src) -} -func (m *QueryResult) XXX_Size() int { - return xxx_messageInfo_QueryResult.Size(m) -} -func (m *QueryResult) XXX_DiscardUnknown() { - xxx_messageInfo_QueryResult.DiscardUnknown(m) -} - -var xxx_messageInfo_QueryResult proto.InternalMessageInfo - -func (m *QueryResult) GetTarget() []*Target { - if m != nil { - return m.Target - } - return nil -} - -type AllowedRuleClassInfo struct { - Policy *AllowedRuleClassInfo_AllowedRuleClasses `protobuf:"varint,1,req,name=policy,enum=blaze_query.AllowedRuleClassInfo_AllowedRuleClasses" json:"policy,omitempty"` - AllowedRuleClass []string `protobuf:"bytes,2,rep,name=allowed_rule_class,json=allowedRuleClass" json:"allowed_rule_class,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AllowedRuleClassInfo) Reset() { *m = AllowedRuleClassInfo{} } -func (m *AllowedRuleClassInfo) String() string { return proto.CompactTextString(m) } -func (*AllowedRuleClassInfo) ProtoMessage() {} -func (*AllowedRuleClassInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{18} -} - -func (m *AllowedRuleClassInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AllowedRuleClassInfo.Unmarshal(m, b) -} -func (m *AllowedRuleClassInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AllowedRuleClassInfo.Marshal(b, m, deterministic) -} -func (m *AllowedRuleClassInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_AllowedRuleClassInfo.Merge(m, src) -} -func (m *AllowedRuleClassInfo) XXX_Size() int { - return xxx_messageInfo_AllowedRuleClassInfo.Size(m) -} -func (m *AllowedRuleClassInfo) XXX_DiscardUnknown() { - xxx_messageInfo_AllowedRuleClassInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_AllowedRuleClassInfo proto.InternalMessageInfo - -func (m *AllowedRuleClassInfo) GetPolicy() AllowedRuleClassInfo_AllowedRuleClasses { - if m != nil && m.Policy != nil { - return *m.Policy - } - return AllowedRuleClassInfo_ANY -} - -func (m *AllowedRuleClassInfo) GetAllowedRuleClass() []string { - if m != nil { - return m.AllowedRuleClass - } - return nil -} - -type AttributeDefinition struct { - Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` - Type *Attribute_Discriminator `protobuf:"varint,2,req,name=type,enum=blaze_query.Attribute_Discriminator" json:"type,omitempty"` - Mandatory *bool `protobuf:"varint,3,req,name=mandatory" json:"mandatory,omitempty"` - AllowedRuleClasses *AllowedRuleClassInfo `protobuf:"bytes,4,opt,name=allowed_rule_classes,json=allowedRuleClasses" json:"allowed_rule_classes,omitempty"` - Documentation *string `protobuf:"bytes,5,opt,name=documentation" json:"documentation,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AttributeDefinition) Reset() { *m = AttributeDefinition{} } -func (m *AttributeDefinition) String() string { return proto.CompactTextString(m) } -func (*AttributeDefinition) ProtoMessage() {} -func (*AttributeDefinition) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{19} -} - -func (m *AttributeDefinition) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AttributeDefinition.Unmarshal(m, b) -} -func (m *AttributeDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AttributeDefinition.Marshal(b, m, deterministic) -} -func (m *AttributeDefinition) XXX_Merge(src proto.Message) { - xxx_messageInfo_AttributeDefinition.Merge(m, src) -} -func (m *AttributeDefinition) XXX_Size() int { - return xxx_messageInfo_AttributeDefinition.Size(m) -} -func (m *AttributeDefinition) XXX_DiscardUnknown() { - xxx_messageInfo_AttributeDefinition.DiscardUnknown(m) -} - -var xxx_messageInfo_AttributeDefinition proto.InternalMessageInfo - -func (m *AttributeDefinition) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *AttributeDefinition) GetType() Attribute_Discriminator { - if m != nil && m.Type != nil { - return *m.Type - } - return Attribute_INTEGER -} - -func (m *AttributeDefinition) GetMandatory() bool { - if m != nil && m.Mandatory != nil { - return *m.Mandatory - } - return false -} - -func (m *AttributeDefinition) GetAllowedRuleClasses() *AllowedRuleClassInfo { - if m != nil { - return m.AllowedRuleClasses - } - return nil -} - -func (m *AttributeDefinition) GetDocumentation() string { - if m != nil && m.Documentation != nil { - return *m.Documentation - } - return "" -} - -type RuleDefinition struct { - Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` - Attribute []*AttributeDefinition `protobuf:"bytes,2,rep,name=attribute" json:"attribute,omitempty"` - Documentation *string `protobuf:"bytes,3,opt,name=documentation" json:"documentation,omitempty"` - Label *string `protobuf:"bytes,4,opt,name=label" json:"label,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *RuleDefinition) Reset() { *m = RuleDefinition{} } -func (m *RuleDefinition) String() string { return proto.CompactTextString(m) } -func (*RuleDefinition) ProtoMessage() {} -func (*RuleDefinition) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{20} -} - -func (m *RuleDefinition) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RuleDefinition.Unmarshal(m, b) -} -func (m *RuleDefinition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RuleDefinition.Marshal(b, m, deterministic) -} -func (m *RuleDefinition) XXX_Merge(src proto.Message) { - xxx_messageInfo_RuleDefinition.Merge(m, src) -} -func (m *RuleDefinition) XXX_Size() int { - return xxx_messageInfo_RuleDefinition.Size(m) -} -func (m *RuleDefinition) XXX_DiscardUnknown() { - xxx_messageInfo_RuleDefinition.DiscardUnknown(m) -} - -var xxx_messageInfo_RuleDefinition proto.InternalMessageInfo - -func (m *RuleDefinition) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *RuleDefinition) GetAttribute() []*AttributeDefinition { - if m != nil { - return m.Attribute - } - return nil -} - -func (m *RuleDefinition) GetDocumentation() string { - if m != nil && m.Documentation != nil { - return *m.Documentation - } - return "" -} - -func (m *RuleDefinition) GetLabel() string { - if m != nil && m.Label != nil { - return *m.Label - } - return "" -} - -type BuildLanguage struct { - Rule []*RuleDefinition `protobuf:"bytes,1,rep,name=rule" json:"rule,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *BuildLanguage) Reset() { *m = BuildLanguage{} } -func (m *BuildLanguage) String() string { return proto.CompactTextString(m) } -func (*BuildLanguage) ProtoMessage() {} -func (*BuildLanguage) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{21} -} - -func (m *BuildLanguage) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BuildLanguage.Unmarshal(m, b) -} -func (m *BuildLanguage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BuildLanguage.Marshal(b, m, deterministic) -} -func (m *BuildLanguage) XXX_Merge(src proto.Message) { - xxx_messageInfo_BuildLanguage.Merge(m, src) -} -func (m *BuildLanguage) XXX_Size() int { - return xxx_messageInfo_BuildLanguage.Size(m) -} -func (m *BuildLanguage) XXX_DiscardUnknown() { - xxx_messageInfo_BuildLanguage.DiscardUnknown(m) -} - -var xxx_messageInfo_BuildLanguage proto.InternalMessageInfo - -func (m *BuildLanguage) GetRule() []*RuleDefinition { - if m != nil { - return m.Rule - } - return nil -} - -type Location struct { - StartOffset *int32 `protobuf:"varint,1,opt,name=start_offset,json=startOffset" json:"start_offset,omitempty"` - StartLine *int32 `protobuf:"varint,2,opt,name=start_line,json=startLine" json:"start_line,omitempty"` - StartColumn *int32 `protobuf:"varint,3,opt,name=start_column,json=startColumn" json:"start_column,omitempty"` - EndOffset *int32 `protobuf:"varint,4,opt,name=end_offset,json=endOffset" json:"end_offset,omitempty"` - EndLine *int32 `protobuf:"varint,5,opt,name=end_line,json=endLine" json:"end_line,omitempty"` - EndColumn *int32 `protobuf:"varint,6,opt,name=end_column,json=endColumn" json:"end_column,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Location) Reset() { *m = Location{} } -func (m *Location) String() string { return proto.CompactTextString(m) } -func (*Location) ProtoMessage() {} -func (*Location) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{22} -} - -func (m *Location) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Location.Unmarshal(m, b) -} -func (m *Location) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Location.Marshal(b, m, deterministic) -} -func (m *Location) XXX_Merge(src proto.Message) { - xxx_messageInfo_Location.Merge(m, src) -} -func (m *Location) XXX_Size() int { - return xxx_messageInfo_Location.Size(m) -} -func (m *Location) XXX_DiscardUnknown() { - xxx_messageInfo_Location.DiscardUnknown(m) -} - -var xxx_messageInfo_Location proto.InternalMessageInfo - -func (m *Location) GetStartOffset() int32 { - if m != nil && m.StartOffset != nil { - return *m.StartOffset - } - return 0 -} - -func (m *Location) GetStartLine() int32 { - if m != nil && m.StartLine != nil { - return *m.StartLine - } - return 0 -} - -func (m *Location) GetStartColumn() int32 { - if m != nil && m.StartColumn != nil { - return *m.StartColumn - } - return 0 -} - -func (m *Location) GetEndOffset() int32 { - if m != nil && m.EndOffset != nil { - return *m.EndOffset - } - return 0 -} - -func (m *Location) GetEndLine() int32 { - if m != nil && m.EndLine != nil { - return *m.EndLine - } - return 0 -} - -func (m *Location) GetEndColumn() int32 { - if m != nil && m.EndColumn != nil { - return *m.EndColumn - } - return 0 -} - -type MakeVarBinding struct { - Value *string `protobuf:"bytes,1,req,name=value" json:"value,omitempty"` - PlatformSetRegexp *string `protobuf:"bytes,2,req,name=platform_set_regexp,json=platformSetRegexp" json:"platform_set_regexp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MakeVarBinding) Reset() { *m = MakeVarBinding{} } -func (m *MakeVarBinding) String() string { return proto.CompactTextString(m) } -func (*MakeVarBinding) ProtoMessage() {} -func (*MakeVarBinding) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{23} -} - -func (m *MakeVarBinding) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MakeVarBinding.Unmarshal(m, b) -} -func (m *MakeVarBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MakeVarBinding.Marshal(b, m, deterministic) -} -func (m *MakeVarBinding) XXX_Merge(src proto.Message) { - xxx_messageInfo_MakeVarBinding.Merge(m, src) -} -func (m *MakeVarBinding) XXX_Size() int { - return xxx_messageInfo_MakeVarBinding.Size(m) -} -func (m *MakeVarBinding) XXX_DiscardUnknown() { - xxx_messageInfo_MakeVarBinding.DiscardUnknown(m) -} - -var xxx_messageInfo_MakeVarBinding proto.InternalMessageInfo - -func (m *MakeVarBinding) GetValue() string { - if m != nil && m.Value != nil { - return *m.Value - } - return "" -} - -func (m *MakeVarBinding) GetPlatformSetRegexp() string { - if m != nil && m.PlatformSetRegexp != nil { - return *m.PlatformSetRegexp - } - return "" -} - -type MakeVar struct { - Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"` - Binding []*MakeVarBinding `protobuf:"bytes,2,rep,name=binding" json:"binding,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MakeVar) Reset() { *m = MakeVar{} } -func (m *MakeVar) String() string { return proto.CompactTextString(m) } -func (*MakeVar) ProtoMessage() {} -func (*MakeVar) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{24} -} - -func (m *MakeVar) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MakeVar.Unmarshal(m, b) -} -func (m *MakeVar) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MakeVar.Marshal(b, m, deterministic) -} -func (m *MakeVar) XXX_Merge(src proto.Message) { - xxx_messageInfo_MakeVar.Merge(m, src) -} -func (m *MakeVar) XXX_Size() int { - return xxx_messageInfo_MakeVar.Size(m) -} -func (m *MakeVar) XXX_DiscardUnknown() { - xxx_messageInfo_MakeVar.DiscardUnknown(m) -} - -var xxx_messageInfo_MakeVar proto.InternalMessageInfo - -func (m *MakeVar) GetName() string { - if m != nil && m.Name != nil { - return *m.Name - } - return "" -} - -func (m *MakeVar) GetBinding() []*MakeVarBinding { - if m != nil { - return m.Binding - } - return nil -} - -type DEPRECATED_GlobCriteria struct { - Include []string `protobuf:"bytes,1,rep,name=include" json:"include,omitempty"` - Exclude []string `protobuf:"bytes,2,rep,name=exclude" json:"exclude,omitempty"` - Glob *bool `protobuf:"varint,3,opt,name=glob" json:"glob,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DEPRECATED_GlobCriteria) Reset() { *m = DEPRECATED_GlobCriteria{} } -func (m *DEPRECATED_GlobCriteria) String() string { return proto.CompactTextString(m) } -func (*DEPRECATED_GlobCriteria) ProtoMessage() {} -func (*DEPRECATED_GlobCriteria) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{25} -} - -func (m *DEPRECATED_GlobCriteria) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DEPRECATED_GlobCriteria.Unmarshal(m, b) -} -func (m *DEPRECATED_GlobCriteria) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DEPRECATED_GlobCriteria.Marshal(b, m, deterministic) -} -func (m *DEPRECATED_GlobCriteria) XXX_Merge(src proto.Message) { - xxx_messageInfo_DEPRECATED_GlobCriteria.Merge(m, src) -} -func (m *DEPRECATED_GlobCriteria) XXX_Size() int { - return xxx_messageInfo_DEPRECATED_GlobCriteria.Size(m) -} -func (m *DEPRECATED_GlobCriteria) XXX_DiscardUnknown() { - xxx_messageInfo_DEPRECATED_GlobCriteria.DiscardUnknown(m) -} - -var xxx_messageInfo_DEPRECATED_GlobCriteria proto.InternalMessageInfo - -func (m *DEPRECATED_GlobCriteria) GetInclude() []string { - if m != nil { - return m.Include - } - return nil -} - -func (m *DEPRECATED_GlobCriteria) GetExclude() []string { - if m != nil { - return m.Exclude - } - return nil -} - -func (m *DEPRECATED_GlobCriteria) GetGlob() bool { - if m != nil && m.Glob != nil { - return *m.Glob - } - return false -} - -type Event struct { - Kind *Event_EventKind `protobuf:"varint,1,req,name=kind,enum=blaze_query.Event_EventKind" json:"kind,omitempty"` - DEPRECATEDLocation *Location `protobuf:"bytes,2,opt,name=DEPRECATED_location,json=DEPRECATEDLocation" json:"DEPRECATED_location,omitempty"` - Message *string `protobuf:"bytes,3,opt,name=message" json:"message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *Event) Reset() { *m = Event{} } -func (m *Event) String() string { return proto.CompactTextString(m) } -func (*Event) ProtoMessage() {} -func (*Event) Descriptor() ([]byte, []int) { - return fileDescriptor_48e86b2d5f43637b, []int{26} -} - -func (m *Event) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Event.Unmarshal(m, b) -} -func (m *Event) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Event.Marshal(b, m, deterministic) -} -func (m *Event) XXX_Merge(src proto.Message) { - xxx_messageInfo_Event.Merge(m, src) -} -func (m *Event) XXX_Size() int { - return xxx_messageInfo_Event.Size(m) -} -func (m *Event) XXX_DiscardUnknown() { - xxx_messageInfo_Event.DiscardUnknown(m) -} - -var xxx_messageInfo_Event proto.InternalMessageInfo - -func (m *Event) GetKind() Event_EventKind { - if m != nil && m.Kind != nil { - return *m.Kind - } - return Event_ERROR -} - -func (m *Event) GetDEPRECATEDLocation() *Location { - if m != nil { - return m.DEPRECATEDLocation - } - return nil -} - -func (m *Event) GetMessage() string { - if m != nil && m.Message != nil { - return *m.Message - } - return "" -} - -func init() { - proto.RegisterEnum("blaze_query.FilesetEntry_SymlinkBehavior", FilesetEntry_SymlinkBehavior_name, FilesetEntry_SymlinkBehavior_value) - proto.RegisterEnum("blaze_query.Attribute_Discriminator", Attribute_Discriminator_name, Attribute_Discriminator_value) - proto.RegisterEnum("blaze_query.Attribute_Tristate", Attribute_Tristate_name, Attribute_Tristate_value) - proto.RegisterEnum("blaze_query.Target_Discriminator", Target_Discriminator_name, Target_Discriminator_value) - proto.RegisterEnum("blaze_query.AllowedRuleClassInfo_AllowedRuleClasses", AllowedRuleClassInfo_AllowedRuleClasses_name, AllowedRuleClassInfo_AllowedRuleClasses_value) - proto.RegisterEnum("blaze_query.Event_EventKind", Event_EventKind_name, Event_EventKind_value) - proto.RegisterType((*License)(nil), "blaze_query.License") - proto.RegisterType((*StringDictEntry)(nil), "blaze_query.StringDictEntry") - proto.RegisterType((*LabelDictUnaryEntry)(nil), "blaze_query.LabelDictUnaryEntry") - proto.RegisterType((*LabelListDictEntry)(nil), "blaze_query.LabelListDictEntry") - proto.RegisterType((*LabelKeyedStringDictEntry)(nil), "blaze_query.LabelKeyedStringDictEntry") - proto.RegisterType((*StringListDictEntry)(nil), "blaze_query.StringListDictEntry") - proto.RegisterType((*FilesetEntry)(nil), "blaze_query.FilesetEntry") - proto.RegisterType((*Attribute)(nil), "blaze_query.Attribute") - proto.RegisterType((*Attribute_SelectorEntry)(nil), "blaze_query.Attribute.SelectorEntry") - proto.RegisterType((*Attribute_Selector)(nil), "blaze_query.Attribute.Selector") - proto.RegisterType((*Attribute_SelectorList)(nil), "blaze_query.Attribute.SelectorList") - proto.RegisterType((*Rule)(nil), "blaze_query.Rule") - proto.RegisterType((*AttributeAspect)(nil), "blaze_query.AttributeAspect") - proto.RegisterType((*SkylarkAspect)(nil), "blaze_query.SkylarkAspect") - proto.RegisterType((*RuleSummary)(nil), "blaze_query.RuleSummary") - proto.RegisterType((*PackageGroup)(nil), "blaze_query.PackageGroup") - proto.RegisterType((*EnvironmentGroup)(nil), "blaze_query.EnvironmentGroup") - proto.RegisterType((*SourceFile)(nil), "blaze_query.SourceFile") - proto.RegisterType((*GeneratedFile)(nil), "blaze_query.GeneratedFile") - proto.RegisterType((*Target)(nil), "blaze_query.Target") - proto.RegisterType((*QueryResult)(nil), "blaze_query.QueryResult") - proto.RegisterType((*AllowedRuleClassInfo)(nil), "blaze_query.AllowedRuleClassInfo") - proto.RegisterType((*AttributeDefinition)(nil), "blaze_query.AttributeDefinition") - proto.RegisterType((*RuleDefinition)(nil), "blaze_query.RuleDefinition") - proto.RegisterType((*BuildLanguage)(nil), "blaze_query.BuildLanguage") - proto.RegisterType((*Location)(nil), "blaze_query.Location") - proto.RegisterType((*MakeVarBinding)(nil), "blaze_query.MakeVarBinding") - proto.RegisterType((*MakeVar)(nil), "blaze_query.MakeVar") - proto.RegisterType((*DEPRECATED_GlobCriteria)(nil), "blaze_query.DEPRECATED_GlobCriteria") - proto.RegisterType((*Event)(nil), "blaze_query.Event") -} - -func init() { proto.RegisterFile("build_proto/build.proto", fileDescriptor_48e86b2d5f43637b) } - -var fileDescriptor_48e86b2d5f43637b = []byte{ - // 2630 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0x4b, 0x97, 0xe3, 0x46, - 0x15, 0x46, 0x7e, 0xfb, 0xfa, 0xa5, 0xae, 0x7e, 0x8c, 0xe6, 0x95, 0x38, 0xca, 0x84, 0x38, 0x8f, - 0xd3, 0x49, 0xcc, 0x24, 0x27, 0x24, 0x90, 0x83, 0xdb, 0x56, 0x77, 0x9c, 0x71, 0xec, 0xa6, 0x6c, - 0x4f, 0x68, 0x16, 0xe8, 0xc8, 0x56, 0xb5, 0xbb, 0x4e, 0xcb, 0x92, 0x91, 0xe4, 0x61, 0xcc, 0x96, - 0xc3, 0x02, 0x7e, 0x43, 0x16, 0x2c, 0xe1, 0x17, 0xb0, 0x65, 0xc9, 0x4f, 0x80, 0xc3, 0x86, 0x1f, - 0xc2, 0x82, 0x53, 0x0f, 0xd9, 0x52, 0xb7, 0x3b, 0xd3, 0x19, 0x1e, 0x0b, 0x0e, 0x1b, 0x1f, 0xd7, - 0x7d, 0x7c, 0x75, 0x6f, 0xd5, 0xbd, 0xb7, 0x6e, 0x95, 0xe0, 0xce, 0x64, 0x49, 0x1d, 0xdb, 0x5c, - 0xf8, 0x5e, 0xe8, 0xbd, 0xc7, 0xff, 0x1f, 0xf2, 0xff, 0xa8, 0x34, 0x71, 0xac, 0x5f, 0x12, 0xf3, - 0xe7, 0x4b, 0xe2, 0xaf, 0xf4, 0x2f, 0x20, 0xdf, 0xa3, 0x53, 0xe2, 0x06, 0x04, 0xbd, 0x06, 0x65, - 0x47, 0xfc, 0x35, 0xc3, 0xd5, 0x82, 0x68, 0x4a, 0x3d, 0xdd, 0x28, 0xe2, 0x92, 0xa4, 0x8d, 0x56, - 0x0b, 0x82, 0x1e, 0x40, 0x91, 0x3c, 0x9f, 0x92, 0x45, 0x48, 0x3d, 0x57, 0x4b, 0x71, 0xfe, 0x86, - 0xa0, 0x7f, 0x1f, 0x6a, 0xc3, 0xd0, 0xa7, 0xee, 0xac, 0x43, 0xa7, 0xa1, 0xe1, 0x86, 0xfe, 0x0a, - 0xa9, 0x90, 0xbe, 0x24, 0x2b, 0x4d, 0xa9, 0xa7, 0x1a, 0x45, 0xcc, 0xfe, 0xa2, 0x3d, 0xc8, 0x3e, - 0xb3, 0x9c, 0x25, 0xd1, 0x52, 0x9c, 0x26, 0x06, 0xfa, 0x0f, 0x61, 0xb7, 0x67, 0x4d, 0x88, 0xc3, - 0x34, 0xc7, 0xae, 0xe5, 0xaf, 0xbe, 0x9d, 0xfa, 0x0f, 0x00, 0x71, 0xf5, 0x1e, 0x0d, 0xc2, 0x5b, - 0x4e, 0x9e, 0xde, 0x68, 0xb7, 0xe1, 0x2e, 0xd7, 0x7e, 0x42, 0x56, 0xc4, 0xfe, 0x17, 0x3c, 0x10, - 0xaa, 0x2f, 0x67, 0xc3, 0xdf, 0x52, 0x50, 0x3e, 0xa6, 0x0e, 0x09, 0x88, 0x54, 0x3c, 0x80, 0x5c, - 0xe0, 0x2d, 0xfd, 0x29, 0x91, 0xba, 0x72, 0x84, 0xbe, 0x07, 0xfb, 0x36, 0x09, 0x42, 0xea, 0x5a, - 0x6c, 0xcd, 0x4d, 0x9b, 0xfa, 0x64, 0x1a, 0x7a, 0xfe, 0x4a, 0x5a, 0xb3, 0x17, 0x63, 0x76, 0x22, - 0x1e, 0x7a, 0x1d, 0x2a, 0xe7, 0x0c, 0xdc, 0x5c, 0xf8, 0x24, 0x20, 0x6e, 0xa8, 0xe5, 0xeb, 0x4a, - 0xa3, 0x80, 0xcb, 0x9c, 0x78, 0x2a, 0x68, 0x08, 0x41, 0x86, 0x8d, 0xb5, 0x34, 0xb7, 0x8b, 0xff, - 0x47, 0x1a, 0xe4, 0xc9, 0xf3, 0xa9, 0xb3, 0xb4, 0x89, 0x96, 0xe1, 0xe4, 0x68, 0x88, 0x7e, 0x0a, - 0x6a, 0xb0, 0x9a, 0x3b, 0xd4, 0xbd, 0x34, 0x27, 0xe4, 0xc2, 0x7a, 0x46, 0x3d, 0x5f, 0xcb, 0xd6, - 0x95, 0x46, 0xb5, 0xf9, 0xd6, 0x61, 0x2c, 0xc0, 0x0e, 0xe3, 0x4e, 0x1d, 0x0e, 0x85, 0xc6, 0x91, - 0x54, 0xf8, 0x24, 0xd3, 0x1e, 0x9c, 0x9e, 0xe1, 0x5a, 0x90, 0x24, 0xb3, 0x48, 0x0c, 0x42, 0x9f, - 0x2e, 0x98, 0xb9, 0xe7, 0xf4, 0xb9, 0x96, 0xab, 0x2b, 0x2c, 0x12, 0x39, 0xed, 0x94, 0x93, 0xf4, - 0x77, 0xa1, 0x76, 0x05, 0x0c, 0x15, 0x80, 0xc3, 0xa9, 0x0a, 0xaa, 0x41, 0xa9, 0x63, 0x60, 0xe3, - 0xd8, 0xc0, 0x46, 0xbf, 0x6d, 0xa8, 0x29, 0xfd, 0xf7, 0x1a, 0x14, 0x5b, 0x61, 0xe8, 0xd3, 0xc9, - 0x32, 0x24, 0xcc, 0x51, 0xd7, 0x9a, 0x47, 0x0b, 0xcb, 0xff, 0xa3, 0x33, 0x78, 0xd8, 0x31, 0x4e, - 0xb1, 0xd1, 0x6e, 0x8d, 0x8c, 0x8e, 0xb9, 0xb0, 0xfc, 0x80, 0x58, 0x13, 0x87, 0x98, 0x8e, 0x37, - 0xe5, 0x6b, 0xa9, 0x95, 0xeb, 0x4a, 0xa3, 0xd4, 0xdc, 0x4f, 0xf8, 0xd6, 0x93, 0x4c, 0x7c, 0x7f, - 0xa3, 0x7b, 0x1a, 0xa9, 0x46, 0x4c, 0xf4, 0x01, 0xec, 0x91, 0xe7, 0x0b, 0x87, 0x4e, 0x69, 0xe8, - 0xac, 0xcc, 0x60, 0x41, 0xa6, 0xf4, 0x9c, 0x12, 0x5b, 0xab, 0xf0, 0x3d, 0xd8, 0xdd, 0xf0, 0x86, - 0x11, 0x8b, 0xc5, 0x88, 0xeb, 0xd9, 0x64, 0xa1, 0xed, 0x71, 0x19, 0x31, 0x40, 0x1f, 0x43, 0x86, - 0x27, 0x26, 0xdb, 0xe9, 0x6a, 0xf3, 0x51, 0xc2, 0x94, 0xb5, 0x77, 0x87, 0x1d, 0x1a, 0x4c, 0x7d, - 0x3a, 0x67, 0x31, 0xe0, 0xf9, 0x98, 0x6b, 0xa0, 0xfb, 0x50, 0xa4, 0x6e, 0x68, 0x8a, 0xb8, 0x4b, - 0xd7, 0x95, 0x46, 0x16, 0x17, 0xa8, 0x1b, 0x3e, 0x65, 0xe3, 0x68, 0xb5, 0xdd, 0x99, 0xe4, 0x67, - 0x37, 0xab, 0xed, 0xce, 0x84, 0xc8, 0xeb, 0x50, 0x99, 0x78, 0x9e, 0x43, 0x2c, 0x57, 0xca, 0x54, - 0x45, 0xfc, 0x48, 0xa2, 0x10, 0x3a, 0x86, 0x6a, 0xe8, 0xd3, 0x20, 0xb4, 0x42, 0x22, 0xa5, 0x6a, - 0x3c, 0x1e, 0x5e, 0xbd, 0xc1, 0xd0, 0x91, 0x14, 0xc6, 0x95, 0x48, 0x4d, 0xe0, 0xbc, 0x0d, 0x3b, - 0xd2, 0x1e, 0x87, 0x06, 0x91, 0xd1, 0x39, 0x1e, 0x7d, 0xb5, 0x60, 0x9d, 0x62, 0x42, 0xf6, 0x10, - 0xf2, 0xb2, 0x3e, 0xf1, 0x90, 0x2e, 0x35, 0xf7, 0x92, 0x1b, 0x24, 0x78, 0x38, 0x12, 0x42, 0x9f, - 0xaf, 0xb1, 0x6d, 0x3a, 0x8d, 0xb0, 0x0b, 0xf5, 0x74, 0xa3, 0xd4, 0x7c, 0x90, 0xd0, 0xbc, 0x52, - 0x06, 0xa2, 0x99, 0x19, 0x41, 0xcc, 0x7c, 0x02, 0xe8, 0x5c, 0x84, 0x76, 0xdc, 0xcc, 0x22, 0x87, - 0xba, 0x7b, 0x63, 0x06, 0x60, 0x55, 0x2a, 0x6d, 0x5c, 0xc0, 0xb0, 0xef, 0xb0, 0xea, 0x23, 0x60, - 0x62, 0x66, 0x01, 0xc7, 0x4a, 0xae, 0xde, 0xf5, 0x2a, 0x87, 0x91, 0x13, 0xa7, 0x09, 0xcc, 0x31, - 0x1c, 0xc4, 0x97, 0x30, 0x06, 0x5a, 0xe2, 0xa0, 0xf5, 0x2d, 0xbe, 0x26, 0x51, 0x77, 0x83, 0x04, - 0x51, 0xc0, 0x3e, 0x82, 0x2a, 0x0b, 0xa3, 0x98, 0xbf, 0x3b, 0xf5, 0x74, 0x23, 0x8b, 0xcb, 0xd4, - 0x8d, 0x39, 0x34, 0x86, 0x03, 0xe1, 0x10, 0x9f, 0x76, 0xc9, 0xaa, 0xb9, 0x94, 0xde, 0xdd, 0x32, - 0xf9, 0x96, 0xb2, 0x8f, 0x77, 0x9d, 0x04, 0x51, 0xc0, 0x5e, 0xc0, 0x43, 0x01, 0x7b, 0xc9, 0xca, - 0xb4, 0x79, 0x7d, 0x1b, 0x0f, 0x38, 0xfa, 0x77, 0xaf, 0xa3, 0x6f, 0xab, 0xeb, 0xf8, 0xae, 0xb3, - 0x85, 0x25, 0x66, 0xfa, 0x1c, 0x2a, 0x01, 0x71, 0x78, 0xe9, 0xe4, 0xbe, 0x6a, 0xfb, 0x3c, 0xb4, - 0x5e, 0xbf, 0x21, 0x8e, 0x87, 0x52, 0x96, 0xad, 0x00, 0x2e, 0x07, 0xb1, 0x11, 0xfa, 0x19, 0x68, - 0xb1, 0xaa, 0x32, 0x73, 0xbc, 0x89, 0x39, 0xf5, 0x69, 0x48, 0x7c, 0x6a, 0x69, 0x2a, 0x37, 0x37, - 0x99, 0xc5, 0x31, 0xe1, 0x13, 0xc7, 0x9b, 0xb4, 0xa5, 0x2c, 0x3e, 0xd8, 0x30, 0xe2, 0x74, 0xf4, - 0x05, 0xe8, 0x31, 0x95, 0xf8, 0x92, 0xc4, 0x97, 0x1d, 0xd5, 0xd3, 0x8d, 0x32, 0x7e, 0x65, 0x23, - 0xb9, 0x71, 0x78, 0xb3, 0xbe, 0xf7, 0xfe, 0x50, 0x80, 0x4a, 0xe4, 0x8a, 0x38, 0x82, 0xf6, 0x20, - 0xcb, 0x17, 0x49, 0x53, 0x78, 0x45, 0x10, 0x03, 0xd4, 0x00, 0x95, 0x06, 0xa6, 0x4d, 0xce, 0xad, - 0xa5, 0x13, 0x2d, 0xbd, 0xca, 0xcb, 0x41, 0x95, 0x06, 0x1d, 0x41, 0x16, 0xeb, 0x98, 0xa8, 0x3a, - 0xa9, 0x17, 0x54, 0x9d, 0xf4, 0x2d, 0xaa, 0x4e, 0xe6, 0x56, 0x55, 0x27, 0xfb, 0xff, 0xaa, 0xf3, - 0x3f, 0x5e, 0x75, 0x2a, 0xdf, 0xaa, 0xea, 0xd4, 0xfe, 0xa3, 0x55, 0x67, 0xe7, 0xdf, 0x55, 0x75, - 0xbe, 0xa9, 0x56, 0x94, 0xff, 0x6b, 0xb5, 0xa2, 0x7a, 0xab, 0x5a, 0xf1, 0xb5, 0x02, 0x85, 0xa8, - 0x56, 0xa0, 0xcf, 0x20, 0x4f, 0xdc, 0xd0, 0xa7, 0x24, 0xe0, 0x57, 0x86, 0xd2, 0x8d, 0x9d, 0x49, - 0xa2, 0xba, 0xe0, 0x48, 0x89, 0x65, 0xde, 0x85, 0x75, 0xb5, 0xa2, 0xa4, 0x78, 0xaa, 0xd7, 0x2e, - 0xac, 0x64, 0x49, 0x79, 0x04, 0x55, 0xd7, 0x33, 0xe7, 0x56, 0x38, 0xbd, 0x30, 0x89, 0xef, 0x7b, - 0xbe, 0xac, 0x1b, 0x65, 0xd7, 0xfb, 0x92, 0x11, 0x0d, 0x46, 0xbb, 0xf7, 0x6b, 0x05, 0xca, 0xf1, - 0xaa, 0xbc, 0xee, 0x9c, 0x14, 0x5e, 0x1a, 0xbe, 0x4d, 0xe7, 0xf4, 0x29, 0x14, 0x88, 0x43, 0xe6, - 0xc4, 0x0d, 0x03, 0xde, 0xb0, 0x97, 0x6e, 0x2c, 0x2c, 0xd1, 0x84, 0x78, 0xad, 0xa0, 0xff, 0x36, - 0x0d, 0x95, 0x04, 0x28, 0x2a, 0x41, 0xbe, 0xdb, 0x1f, 0x19, 0x27, 0x06, 0x56, 0x15, 0x04, 0x90, - 0x1b, 0x8e, 0x70, 0xb7, 0x7f, 0xa2, 0xa6, 0x50, 0x11, 0xb2, 0xbd, 0xd6, 0x91, 0xd1, 0x53, 0xd3, - 0x8c, 0x3c, 0x18, 0x8f, 0x4e, 0xc7, 0x23, 0x35, 0xc3, 0x3a, 0x59, 0x21, 0x62, 0xf6, 0xba, 0xc3, - 0x91, 0x9a, 0x45, 0x55, 0x00, 0x2e, 0x27, 0xc6, 0x39, 0x26, 0x20, 0x84, 0x05, 0x21, 0x8f, 0xf6, - 0x40, 0xed, 0x74, 0x99, 0xce, 0xd1, 0x78, 0xd4, 0x1d, 0xf4, 0xcd, 0xa1, 0x31, 0x52, 0x0b, 0x6c, - 0xde, 0x5e, 0xb7, 0x6d, 0xf4, 0x87, 0x86, 0x5a, 0x8c, 0x81, 0x76, 0xba, 0xed, 0x91, 0x0a, 0xe8, - 0x00, 0xd0, 0x71, 0xb7, 0x67, 0x0c, 0x8d, 0x91, 0x69, 0xf4, 0x47, 0xf8, 0x4c, 0x60, 0x95, 0xd0, - 0x2e, 0xd4, 0x36, 0x93, 0x09, 0xe1, 0x32, 0x9b, 0x20, 0x66, 0x92, 0xa0, 0x56, 0xd8, 0x04, 0x47, - 0x83, 0x41, 0xcf, 0x68, 0xf5, 0xd5, 0x2a, 0x2a, 0x43, 0x61, 0x84, 0xbb, 0xc3, 0x51, 0x6b, 0x64, - 0xa8, 0x35, 0xa4, 0x42, 0x59, 0xfa, 0x2c, 0x70, 0x55, 0x26, 0x3c, 0xee, 0x3f, 0xe9, 0x0f, 0xbe, - 0xea, 0xab, 0x88, 0xe1, 0x89, 0x49, 0x18, 0x92, 0x39, 0xee, 0xb7, 0xf0, 0x99, 0xba, 0x8b, 0x76, - 0xa0, 0x32, 0x34, 0x7a, 0x46, 0x7b, 0x34, 0x90, 0x5a, 0x7b, 0xe8, 0x3e, 0xdc, 0x11, 0x82, 0x4f, - 0x8c, 0x33, 0xa3, 0x63, 0xc6, 0x5d, 0xd8, 0x47, 0x75, 0x78, 0x10, 0x8b, 0xee, 0x18, 0x4f, 0x22, - 0xee, 0xe8, 0x6f, 0x40, 0x21, 0xaa, 0xfd, 0x28, 0x07, 0xa9, 0xfe, 0x40, 0xfd, 0x0e, 0xca, 0x43, - 0xfa, 0xcc, 0x18, 0xaa, 0x0a, 0xbb, 0x3b, 0xb4, 0xc6, 0xa3, 0x81, 0x9a, 0xd2, 0xff, 0x98, 0x81, - 0x0c, 0x5e, 0x3a, 0xdb, 0x6f, 0x09, 0x0f, 0x01, 0xfc, 0xa5, 0x43, 0xcc, 0xa9, 0x63, 0x05, 0x81, - 0xbc, 0x71, 0x15, 0x19, 0xa5, 0xcd, 0x08, 0xe8, 0x1e, 0x14, 0xd6, 0xf7, 0x05, 0x11, 0x97, 0xeb, - 0x31, 0x7a, 0x0c, 0x45, 0x2b, 0x8a, 0x15, 0x7e, 0x97, 0x2a, 0x35, 0x0f, 0xb6, 0x47, 0x12, 0xde, - 0x08, 0xae, 0x27, 0xa4, 0xee, 0x62, 0x19, 0x6a, 0x59, 0x71, 0xe3, 0x66, 0x94, 0x2e, 0x23, 0xa0, - 0x57, 0xa1, 0xc4, 0xd9, 0xde, 0x32, 0x64, 0x7c, 0x71, 0x5c, 0x71, 0x8d, 0x01, 0xa7, 0xa0, 0x37, - 0xa1, 0x16, 0xe5, 0x55, 0x40, 0xc2, 0x90, 0xba, 0x33, 0x2d, 0xcf, 0x85, 0xaa, 0x92, 0x3c, 0x14, - 0xd4, 0x17, 0xdf, 0x7f, 0x0a, 0x2f, 0x7d, 0xff, 0x79, 0x1b, 0x76, 0x16, 0xcb, 0x89, 0x43, 0xa7, - 0xe6, 0x64, 0x15, 0x65, 0xb9, 0x56, 0x14, 0xf9, 0x2d, 0x18, 0x47, 0x2b, 0x99, 0xe4, 0xcc, 0x5f, - 0x1a, 0x98, 0xc1, 0xe5, 0xca, 0xb1, 0xfc, 0x4b, 0x0d, 0xb8, 0x50, 0x91, 0x06, 0x43, 0x41, 0x40, - 0x3f, 0x81, 0xbb, 0x92, 0x67, 0xae, 0xd7, 0xc8, 0xb4, 0xd8, 0x95, 0x2a, 0x0c, 0xe4, 0x21, 0xf3, - 0x60, 0xfb, 0xa2, 0xb6, 0xb8, 0x10, 0xbe, 0x23, 0xd5, 0xaf, 0xd0, 0x03, 0xd4, 0x82, 0x87, 0x11, - 0x32, 0x71, 0x9f, 0x51, 0xdf, 0x73, 0x59, 0x0a, 0x9b, 0x17, 0x56, 0x70, 0x61, 0x4e, 0x3d, 0x9b, - 0xf0, 0xfb, 0x5f, 0x11, 0xdf, 0x93, 0x42, 0xc6, 0x46, 0xe6, 0x73, 0x2b, 0xb8, 0x68, 0x7b, 0x36, - 0xd1, 0x1d, 0xa8, 0x5d, 0x81, 0x45, 0x6f, 0x40, 0x75, 0x63, 0x67, 0x2c, 0x9a, 0x2a, 0x6b, 0x6a, - 0x9f, 0x85, 0x55, 0x13, 0x72, 0xc2, 0x09, 0x1e, 0x52, 0xa5, 0xe6, 0xbd, 0xe4, 0x41, 0x29, 0x4d, - 0x16, 0x1e, 0x48, 0x49, 0xfd, 0x6b, 0x05, 0x2a, 0x09, 0x0e, 0x7a, 0x9f, 0xdd, 0x33, 0x43, 0xe2, - 0x06, 0xd4, 0x73, 0x4d, 0x76, 0xe0, 0x9b, 0x51, 0xf7, 0xc6, 0xa6, 0x44, 0x6b, 0x1e, 0xeb, 0x0c, - 0xf8, 0x09, 0xc5, 0x1a, 0x2c, 0xf2, 0x7c, 0xe1, 0xf9, 0x21, 0xb1, 0x85, 0x75, 0x22, 0xa2, 0xcb, - 0x11, 0x91, 0x1b, 0x97, 0x08, 0xdc, 0xf4, 0x2d, 0x03, 0x57, 0xff, 0x95, 0x02, 0x25, 0x96, 0x46, - 0xc3, 0xe5, 0x7c, 0x6e, 0xf9, 0x2b, 0xf4, 0x06, 0x64, 0x58, 0x58, 0x72, 0x63, 0x4a, 0xcd, 0x9d, - 0x04, 0x00, 0x93, 0xc3, 0x9c, 0x8d, 0x3e, 0x00, 0xb0, 0xc9, 0x82, 0xb8, 0x36, 0x71, 0xa7, 0x2b, - 0x59, 0x70, 0xb7, 0x08, 0xc7, 0x84, 0xbe, 0x29, 0xe9, 0xf4, 0xbf, 0x2b, 0x50, 0x3e, 0xb5, 0xa6, - 0x97, 0xd6, 0x8c, 0x9c, 0xf8, 0xde, 0x72, 0xb1, 0x35, 0xa9, 0xdf, 0x81, 0x9d, 0xa9, 0xe7, 0x86, - 0x16, 0x75, 0x89, 0x6d, 0x2e, 0x84, 0xb4, 0x7c, 0x9c, 0x51, 0xd7, 0x0c, 0x89, 0x82, 0x1e, 0xc3, - 0x01, 0x75, 0xf9, 0x0b, 0xc8, 0x5a, 0xd6, 0x9c, 0x31, 0x68, 0xf9, 0x6c, 0xb2, 0x17, 0x71, 0x13, - 0xd3, 0xbe, 0x30, 0xbb, 0x32, 0x2f, 0x9b, 0x5d, 0xfa, 0x04, 0xd4, 0x58, 0x30, 0xde, 0xec, 0x65, - 0x1d, 0x4a, 0xb1, 0xc0, 0x96, 0xfe, 0xc5, 0x49, 0x48, 0x83, 0x7c, 0x94, 0x9d, 0xc2, 0x97, 0x68, - 0xa8, 0xff, 0x26, 0x0d, 0x30, 0xe4, 0xcf, 0x4f, 0x2c, 0x76, 0xb6, 0xc2, 0xc7, 0x77, 0x21, 0x75, - 0xa5, 0xf4, 0xbd, 0xd0, 0xfb, 0xfc, 0x4b, 0xd7, 0x96, 0x57, 0x00, 0x82, 0xe5, 0x44, 0xae, 0xb9, - 0x34, 0x3b, 0x46, 0x61, 0x11, 0x9e, 0xdc, 0x25, 0xf1, 0x8a, 0x55, 0x5e, 0xc4, 0x77, 0xe7, 0x2d, - 0x50, 0x9f, 0xd1, 0x80, 0x4e, 0xa8, 0x43, 0xc3, 0x95, 0x4c, 0x1a, 0x51, 0x6a, 0x6b, 0x1b, 0xba, - 0xc8, 0x18, 0x0d, 0xf2, 0xe7, 0xc4, 0x0a, 0x97, 0x7e, 0x74, 0x37, 0x88, 0x86, 0xf1, 0x3b, 0x41, - 0xe1, 0x36, 0x77, 0x82, 0x8f, 0xe0, 0x4e, 0x64, 0x99, 0x0c, 0xb2, 0x40, 0x74, 0x34, 0x81, 0xac, - 0x8d, 0xfb, 0x92, 0xdd, 0x96, 0x5c, 0xde, 0xda, 0x04, 0xfa, 0x05, 0x54, 0x4e, 0x88, 0x4b, 0x7c, - 0x2b, 0x24, 0xf6, 0x8d, 0xbb, 0xf1, 0x26, 0xd4, 0x66, 0x42, 0x88, 0x35, 0x79, 0x3c, 0xf1, 0x44, - 0x6a, 0x57, 0x37, 0x64, 0x7e, 0xc8, 0x7d, 0x53, 0xf2, 0xfc, 0x35, 0x0d, 0xb9, 0x91, 0xe5, 0xcf, - 0x48, 0x88, 0x3e, 0x5c, 0xf7, 0x4f, 0xa9, 0x46, 0xb5, 0xf9, 0x5a, 0xc2, 0x33, 0x21, 0xb2, 0xb5, - 0x79, 0x8a, 0x92, 0x3e, 0xc5, 0x17, 0xe4, 0xc6, 0xa4, 0xff, 0x18, 0x4a, 0xe2, 0x71, 0xd3, 0x94, - 0xef, 0x8f, 0x4c, 0xfa, 0x4e, 0xb2, 0x06, 0xae, 0xa3, 0x0f, 0x43, 0xb0, 0x89, 0xc4, 0x16, 0x44, - 0x0e, 0x11, 0x5b, 0x28, 0x8b, 0x44, 0x4a, 0x16, 0xd0, 0xc4, 0x7a, 0xe1, 0xca, 0x2c, 0xb1, 0x7c, - 0x9f, 0x5d, 0x8d, 0x90, 0x2c, 0x47, 0x48, 0x5e, 0xa6, 0xe2, 0xc9, 0x7c, 0x25, 0x78, 0xbe, 0x80, - 0x9d, 0xf8, 0x81, 0x21, 0x30, 0x72, 0x1c, 0xe3, 0x61, 0x02, 0xe3, 0x6a, 0x96, 0x62, 0x95, 0x5c, - 0xa1, 0xb0, 0xbd, 0x4d, 0xb6, 0x8b, 0x05, 0xc8, 0xe0, 0x71, 0xcf, 0x10, 0x4f, 0x9a, 0xc3, 0xc1, - 0x18, 0xb7, 0x0d, 0x93, 0x75, 0x6a, 0x6a, 0x0a, 0x21, 0xa8, 0x9e, 0x18, 0x7d, 0x03, 0xf3, 0x9c, - 0xe2, 0xb4, 0x34, 0x6b, 0x9a, 0x4e, 0x5b, 0xed, 0x27, 0xad, 0x13, 0xc3, 0x3c, 0xc1, 0x83, 0xf1, - 0xa9, 0x9a, 0x41, 0xfb, 0xb0, 0x63, 0xf4, 0x9f, 0x76, 0xf1, 0xa0, 0xff, 0xa5, 0xd1, 0x1f, 0x49, - 0x72, 0x56, 0xff, 0x04, 0x4a, 0x3f, 0x66, 0x56, 0x61, 0x12, 0xb0, 0x63, 0xf7, 0x1d, 0xc8, 0x85, - 0x7c, 0x1b, 0x65, 0x07, 0xbf, 0xbb, 0x65, 0x87, 0xb1, 0x14, 0xd1, 0xff, 0xa4, 0xc0, 0x5e, 0xcb, - 0x71, 0xbc, 0x5f, 0x10, 0x1b, 0x47, 0xad, 0x4f, 0xd7, 0x3d, 0xf7, 0x50, 0x0f, 0x72, 0x0b, 0xcf, - 0xa1, 0xd3, 0x95, 0x8c, 0x93, 0xc7, 0xc9, 0x63, 0x62, 0x8b, 0xca, 0x35, 0x22, 0x09, 0xb0, 0xc4, - 0x40, 0xef, 0x02, 0xb2, 0x04, 0xd7, 0x4c, 0xf4, 0x5c, 0xbc, 0x2e, 0x5b, 0x57, 0xf4, 0xf4, 0x77, - 0x01, 0x5d, 0xc7, 0x62, 0xfd, 0x5d, 0xab, 0x7f, 0xa6, 0x2a, 0xa8, 0x02, 0xc5, 0xe1, 0xa9, 0xd1, - 0xee, 0x1e, 0x77, 0x8d, 0x8e, 0x9a, 0xd2, 0xff, 0xa1, 0xc0, 0xee, 0xfa, 0xd8, 0xea, 0x90, 0x73, - 0xea, 0x52, 0x5e, 0x4e, 0xb6, 0xe5, 0xd2, 0xcb, 0xbf, 0xba, 0x3e, 0x80, 0xe2, 0xdc, 0x72, 0x6d, - 0x8b, 0x3f, 0xcf, 0xa7, 0xeb, 0x29, 0xd6, 0xcb, 0xac, 0x09, 0x68, 0x08, 0x7b, 0xd7, 0xfd, 0x23, - 0x81, 0x8c, 0xe0, 0xd7, 0x5e, 0xb8, 0x76, 0x18, 0x59, 0xd7, 0x1d, 0x7e, 0x04, 0x15, 0xdb, 0x9b, - 0x2e, 0x59, 0x48, 0x89, 0xa4, 0x16, 0x8f, 0xb9, 0x49, 0xa2, 0xfe, 0x3b, 0x05, 0xaa, 0x4c, 0xeb, - 0x05, 0x9e, 0x7f, 0x16, 0x3f, 0xf9, 0x53, 0x5b, 0x6e, 0xd1, 0x5b, 0x96, 0x30, 0xde, 0xbc, 0x5e, - 0x33, 0x26, 0xbd, 0xc5, 0x98, 0xcd, 0x2b, 0x53, 0x26, 0xf6, 0xca, 0xa4, 0xff, 0x08, 0x2a, 0x47, - 0x4b, 0xea, 0xd8, 0x3d, 0xcb, 0x9d, 0x2d, 0xd9, 0xc1, 0xfb, 0xde, 0xba, 0x81, 0x60, 0x76, 0xdc, - 0xbf, 0x56, 0x4b, 0x62, 0x26, 0x70, 0x41, 0xfd, 0xcf, 0x0a, 0x14, 0xd6, 0xe7, 0x04, 0x7f, 0x6d, - 0xb2, 0xfc, 0xd0, 0xf4, 0xce, 0xcf, 0x03, 0x1e, 0xe6, 0x4a, 0x23, 0x8b, 0x4b, 0x9c, 0x36, 0xe0, - 0x24, 0xd6, 0x7a, 0x0a, 0x11, 0x87, 0xba, 0xd1, 0x73, 0x55, 0x91, 0x53, 0x7a, 0xd4, 0x25, 0x1b, - 0x84, 0xa9, 0xe7, 0x2c, 0xe7, 0xae, 0x7c, 0x45, 0x17, 0x08, 0x6d, 0x4e, 0x62, 0x08, 0xc4, 0xb5, - 0xa3, 0x29, 0x32, 0x02, 0x81, 0xb8, 0xb6, 0x9c, 0xe0, 0x2e, 0x14, 0x18, 0x9b, 0xc3, 0x67, 0x39, - 0x33, 0x4f, 0x5c, 0x9b, 0x83, 0x4b, 0x4d, 0x09, 0x9d, 0x5b, 0x6b, 0x0a, 0x60, 0xfd, 0x29, 0x54, - 0xbf, 0xb4, 0x2e, 0xc9, 0x53, 0xcb, 0x3f, 0xa2, 0xae, 0xcd, 0xda, 0xf5, 0xf5, 0x47, 0x24, 0x25, - 0xf6, 0x0d, 0x0a, 0x1d, 0xc2, 0xee, 0xc2, 0xb1, 0xc2, 0x73, 0xcf, 0x9f, 0xb3, 0x76, 0xdf, 0xf4, - 0xc9, 0x8c, 0x3c, 0x5f, 0xc8, 0xd2, 0xbf, 0x13, 0xb1, 0x86, 0x24, 0xc4, 0x9c, 0xa1, 0x8f, 0x20, - 0x2f, 0x71, 0xb7, 0xee, 0xff, 0x87, 0x90, 0x9f, 0x88, 0xf9, 0xe4, 0xee, 0x27, 0x57, 0x3d, 0x69, - 0x12, 0x8e, 0x64, 0x75, 0x0b, 0xee, 0xdc, 0xf0, 0x36, 0xc1, 0x8e, 0xcf, 0xe8, 0xac, 0x16, 0x5f, - 0x17, 0xa3, 0x61, 0xfc, 0x43, 0x53, 0x2a, 0xf9, 0xa1, 0x09, 0x41, 0x66, 0xe6, 0x78, 0x13, 0xbe, - 0xe0, 0x05, 0xcc, 0xff, 0xeb, 0x7f, 0x51, 0x20, 0x6b, 0x3c, 0x63, 0x4d, 0xcb, 0xfb, 0x90, 0xb9, - 0xa4, 0xae, 0x2d, 0x2b, 0x4e, 0xb2, 0xf9, 0xe7, 0x12, 0xe2, 0xf7, 0x09, 0x75, 0x6d, 0xcc, 0x25, - 0xd1, 0x31, 0xec, 0xc6, 0xcc, 0x4b, 0x34, 0x2d, 0x37, 0xf6, 0x20, 0x68, 0xa3, 0xb1, 0x0e, 0x29, - 0x0d, 0xf2, 0x73, 0x12, 0x04, 0xac, 0x59, 0x14, 0x71, 0x1d, 0x0d, 0xf5, 0x4f, 0xa1, 0xb8, 0x9e, - 0x94, 0x5d, 0xec, 0x0d, 0x8c, 0x07, 0xec, 0xbe, 0x5f, 0x82, 0xfc, 0x57, 0x2d, 0xdc, 0x17, 0x17, - 0xfe, 0x02, 0x64, 0xba, 0xfd, 0xe3, 0x81, 0x9a, 0x66, 0xb7, 0xe5, 0x53, 0x3c, 0x38, 0xc1, 0xc6, - 0x70, 0xa8, 0x66, 0x8e, 0x3e, 0x82, 0xc7, 0x53, 0x6f, 0x7e, 0x38, 0xf3, 0xbc, 0x99, 0x43, 0x0e, - 0x6d, 0xf2, 0x2c, 0xf4, 0x3c, 0x27, 0x38, 0x14, 0x1f, 0x70, 0x1d, 0x3a, 0x39, 0xe4, 0xa6, 0x35, - 0xc5, 0xb7, 0x5c, 0xf1, 0xdb, 0xb4, 0x16, 0xf4, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x23, 0x58, - 0x65, 0xd5, 0xef, 0x1d, 0x00, 0x00, -} diff --git a/vendor/github.com/bazelbuild/buildtools/build_proto/build.proto b/vendor/github.com/bazelbuild/buildtools/build_proto/build.proto deleted file mode 100644 index 9e83d133310..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/build_proto/build.proto +++ /dev/null @@ -1,565 +0,0 @@ -// Copyright 2014 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. -// -// This file contains the protocol buffer representation of a build -// file or 'blaze query --output=proto' call. - -syntax = "proto2"; - -package blaze_query; - -// option cc_api_version = 2; -// option java_api_version = 1; - -option java_package = "com.google.devtools.build.lib.query2.proto.proto2api"; - -message License { - repeated string license_type = 1; - repeated string exception = 2; -} - -message StringDictEntry { - required string key = 1; - required string value = 2; -} - -message LabelDictUnaryEntry { - required string key = 1; - required string value = 2; -} - -message LabelListDictEntry { - required string key = 1; - repeated string value = 2; -} - -message LabelKeyedStringDictEntry { - required string key = 1; - required string value = 2; -} - -message StringListDictEntry { - required string key = 1; - repeated string value = 2; -} - -// Represents an entry attribute of a Fileset rule in a build file. -message FilesetEntry { - // Indicates what to do when a source file is actually a symlink. - enum SymlinkBehavior { - COPY = 1; - DEREFERENCE = 2; - } - - // The label pointing to the source target where files are copied from. - required string source = 1; - - // The relative path within the fileset rule where files will be mapped. - required string destination_directory = 2; - - // Whether the files= attribute was specified. This is necessary because - // no files= attribute and files=[] mean different things. - optional bool files_present = 7; - - // A list of file labels to include from the source directory. - repeated string file = 3; - - // If this is a fileset entry representing files within the rule - // package, this lists relative paths to files that should be excluded from - // the set. This cannot contain values if 'file' also has values. - repeated string exclude = 4; - - // This field is optional because there will be some time when the new - // PB is used by tools depending on blaze query, but the new blaze version - // is not yet released. - // TODO(bazel-team): Make this field required once a version of Blaze is - // released that outputs this field. - optional SymlinkBehavior symlink_behavior = 5 [ default=COPY ]; - - // The prefix to strip from the path of the files in this FilesetEntry. Note - // that no value and the empty string as the value mean different things here. - optional string strip_prefix = 6; -} - -// A rule attribute. Each attribute must have a type and one of the various -// value fields populated - for the most part. -// -// Attributes of BOOLEAN and TRISTATE type may set all of the int, bool, and -// string values for backwards compatibility with clients that expect them to -// be set. -// -// Attributes of INTEGER, STRING, LABEL, LICENSE, BOOLEAN, and TRISTATE type -// may set *none* of the values. This can happen if the Attribute message is -// prepared for a client that doesn't support SELECTOR_LIST, but the rule has -// a selector list value for the attribute. (Selector lists for attributes of -// other types--the collection types--are handled differently when prepared -// for such a client. The possible collection values are gathered together -// and flattened.) -// -// By checking the type, the appropriate value can be extracted - see the -// comments on each type for the associated value. The order of lists comes -// from the blaze parsing. If an attribute is of a list type, the associated -// list should never be empty. -message Attribute { - // Indicates the type of attribute. - enum Discriminator { - INTEGER = 1; // int_value - STRING = 2; // string_value - LABEL = 3; // string_value - OUTPUT = 4; // string_value - STRING_LIST = 5; // string_list_value - LABEL_LIST = 6; // string_list_value - OUTPUT_LIST = 7; // string_list_value - DISTRIBUTION_SET = 8; // string_list_value - order is unimportant - LICENSE = 9; // license - STRING_DICT = 10; // string_dict_value - FILESET_ENTRY_LIST = 11; // fileset_list_value - LABEL_LIST_DICT = 12; // label_list_dict_value - STRING_LIST_DICT = 13; // string_list_dict_value - BOOLEAN = 14; // int, bool and string value - TRISTATE = 15; // tristate, int and string value - INTEGER_LIST = 16; // int_list_value - UNKNOWN = 18; // unknown type, use only for build extensions - LABEL_DICT_UNARY = 19; // label_dict_unary_value - SELECTOR_LIST = 20; // selector_list - LABEL_KEYED_STRING_DICT = 21; // label_keyed_string_dict - - DEPRECATED_STRING_DICT_UNARY = 17; - - } - - // Values for the TriState field type. - enum Tristate { - NO = 0; - YES = 1; - AUTO = 2; - } - - message SelectorEntry { - // The key of the selector entry. At this time, this is the label of a - // config_setting rule, or the pseudo-label "//conditions:default". - optional string label = 1; - - // True if the entry's value is the default value for the type as a - // result of the condition value being specified as None (ie: - // {"//condition": None}). - optional bool is_default_value = 16; - - // Exactly one of the following fields (except for glob_criteria) must be - // populated - note that the BOOLEAN and TRISTATE caveat in Attribute's - // comment does not apply here. The type field in the SelectorList - // containing this entry indicates which of these fields is populated, - // in accordance with the comments on Discriminator enum values above. - // (To be explicit: BOOLEAN populates the boolean_value field and TRISTATE - // populates the tristate_value field.) - optional int32 int_value = 2; - optional string string_value = 3; - optional bool boolean_value = 4; - optional Tristate tristate_value = 5; - repeated string string_list_value = 6; - optional License license = 7; - repeated StringDictEntry string_dict_value = 8; - repeated FilesetEntry fileset_list_value = 9; - repeated LabelListDictEntry label_list_dict_value = 10; - repeated StringListDictEntry string_list_dict_value = 11; - repeated int32 int_list_value = 13; - repeated LabelDictUnaryEntry label_dict_unary_value = 15; - repeated LabelKeyedStringDictEntry label_keyed_string_dict_value = 17; - - repeated DEPRECATED_GlobCriteria DEPRECATED_glob_criteria = 12; - repeated bytes DEPRECATED_string_dict_unary_value = 14; - } - - message Selector { - // The list of (label, value) pairs in the map that defines the selector. - // At this time, this cannot be empty, i.e. a selector has at least one - // entry. - repeated SelectorEntry entries = 1; - - // Whether or not this has any default values. - optional bool has_default_value = 2; - - // The error message when no condition matches. - optional string no_match_error = 3; - } - - message SelectorList { - // The type that this selector list evaluates to, and the type that each - // selector in the list evaluates to. At this time, this cannot be - // SELECTOR_LIST, i.e. selector lists do not nest. - optional Discriminator type = 1; - - // The list of selector elements in this selector list. At this time, this - // cannot be empty, i.e. a selector list is never empty. - repeated Selector elements = 2; - } - - // The name of the attribute - required string name = 1; - - // The location of the target in the BUILD file in a machine-parseable form. - optional Location DEPRECATED_parseable_location = 12; - - // Whether the attribute was explicitly specified - optional bool explicitly_specified = 13; - - // If this attribute has a string value or a string list value, then this - // may be set to indicate that the value may be treated as a label that - // isn't a dependency of this attribute's rule. - optional bool nodep = 20; - - // The type of attribute. This message is used for all of the different - // attribute types so the discriminator helps for figuring out what is - // stored in the message. - required Discriminator type = 2; - - // If this attribute has an integer value this will be populated. - // Boolean and TriState also use this field as [0,1] and [-1,0,1] - // for [false, true] and [auto, no, yes] respectively. - optional int32 int_value = 3; - - // If the attribute has a string value this will be populated. Label and - // path attributes use this field as the value even though the type may - // be LABEL or something else other than STRING. - optional string string_value = 5; - - // If the attribute has a boolean value this will be populated. - optional bool boolean_value = 14; - - // If the attribute is a Tristate value, this will be populated. - optional Tristate tristate_value = 15; - - // The value of the attribute has a list of string values (label and path - // note from STRING applies here as well). - repeated string string_list_value = 6; - - // If this is a license attribute, the license information is stored here. - optional License license = 7; - - // If this is a string dict, each entry will be stored here. - repeated StringDictEntry string_dict_value = 8; - - // If the attribute is part of a Fileset, the fileset entries are stored in - // this field. - repeated FilesetEntry fileset_list_value = 9; - - // If this is a label list dict, each entry will be stored here. - repeated LabelListDictEntry label_list_dict_value = 10; - - // If this is a string list dict, each entry will be stored here. - repeated StringListDictEntry string_list_dict_value = 11; - - // The value of the attribute has a list of int32 values - repeated int32 int_list_value = 17; - - // If this is a label dict unary, each entry will be stored here. - repeated LabelDictUnaryEntry label_dict_unary_value = 19; - - // If this is a label-keyed string dict, each entry will be stored here. - repeated LabelKeyedStringDictEntry label_keyed_string_dict_value = 22; - - // If this attribute's value is an expression containing one or more select - // expressions, then its type is SELECTOR_LIST and a SelectorList will be - // stored here. - optional SelectorList selector_list = 21; - - repeated DEPRECATED_GlobCriteria DEPRECATED_glob_criteria = 16; - repeated bytes DEPRECATED_string_dict_unary_value = 18; -} - -// A rule instance (e.g., cc_library foo, java_binary bar). -message Rule { - // The name of the rule (formatted as an absolute label, e.g. //foo/bar:baz). - required string name = 1; - - // The rule class (e.g., java_library) - required string rule_class = 2; - - // The BUILD file and line number of the location (formatted as - // :) in the rule's package's BUILD file where the - // rule instance was instantiated. The line number will be that of a rule - // invocation or macro call (that in turn invoked a rule). See - // https://docs.bazel.build/versions/master/skylark/macros.html#macro-creation - optional string location = 3; - - // All of the attributes that describe the rule. - repeated Attribute attribute = 4; - - // All of the inputs to the rule (formatted as absolute labels). These are - // predecessors in the dependency graph. - repeated string rule_input = 5; - - // All of the outputs of the rule (formatted as absolute labels). These are - // successors in the dependency graph. - repeated string rule_output = 6; - - // The set of all default settings affecting this rule. The name of a default - // setting is "_". There currently defined setting - // types are: - // - // - 'blaze': settings implemented in Blaze itself - repeated string default_setting = 7; - - // The location of the target in the BUILD file in a machine-parseable form. - optional Location DEPRECATED_parseable_location = 8; - - // The rule's class's public by default value. - optional bool public_by_default = 9; - - // If this rule is of a skylark-defined RuleClass. - optional bool is_skylark = 10; - - // List of Skylark aspects that this rule applies. - repeated AttributeAspect skylark_attribute_aspects = 11; - - // Hash encapsulating the behavior of this Skylark rule. Any change to this - // rule's definition that could change its behavior will be reflected here. - optional string skylark_environment_hash_code = 12; -} - -// A pairing of attribute name and a Skylark aspect that is applied to that -// attribute. -message AttributeAspect { - required string attribute_name = 1; - required SkylarkAspect aspect = 2; -} - -// Aspect defined in Skylark. -message SkylarkAspect { - required string extension_file_label = 1; - required string exported_name = 2; - repeated Attribute attribute = 3; -} - -// Summary of all transitive dependencies of 'rule,' where each dependent -// rule is included only once in the 'dependency' field. Gives complete -// information to analyze the single build target labeled rule.name, -// including optional location of target in BUILD file. -message RuleSummary { - required Rule rule = 1; - repeated Rule dependency = 2; - optional string location = 3; -} - -// A package group. Aside from the name, it contains the list of packages -// present in the group (as specified in the BUILD file). -message PackageGroup { - // The name of the package group - required string name = 1; - - // The list of packages as specified in the BUILD file. Currently this is - // only a list of packages, but some time in the future, there might be - // some type of wildcard mechanism. - repeated string contained_package = 2; - - // The list of sub package groups included in this one. - repeated string included_package_group = 3; - - // The location of the target in the BUILD file in a machine-parseable form. - optional Location DEPRECATED_parseable_location = 4; -} - -// An environment group. -message EnvironmentGroup { - // The name of the environment group. - required string name = 1; - - // The environments that belong to this group (as labels). - repeated string environment = 2; - - // The member environments that rules implicitly support if not otherwise - // specified. - repeated string default = 3; -} - -// A file that is an input into the build system. -// Next-Id: 10 -message SourceFile { - // The name of the source file (a label). - required string name = 1; - - // The location of the source file. This is a path with line numbers, not - // a label in the build system. - optional string location = 2; - - // The location of the corresponding label in the BUILD file in a - // machine-parseable form. - optional Location DEPRECATED_parseable_location = 7; - - // Labels of .bzl (Skylark) files that are transitively loaded in this BUILD - // file. This is present only when the SourceFile represents a BUILD file that - // loaded .bzl files. - // TODO(bazel-team): Rename this field. - repeated string subinclude = 3; - - // Labels of package groups that are mentioned in the visibility declaration - // for this source file. - repeated string package_group = 4; - - // Labels mentioned in the visibility declaration (including :__pkg__ and - // //visibility: ones) - repeated string visibility_label = 5; - - // The package-level features enabled for this package. Only present if the - // SourceFile represents a BUILD file. - repeated string feature = 6; - - // License attribute for the file. - optional License license = 8; - - // True if the package contains an error. Only present if the SourceFile - // represents a BUILD file. - optional bool package_contains_errors = 9; -} - -// A file that is the output of a build rule. -message GeneratedFile { - // The name of the generated file (a label). - required string name = 1; - - // The label of the target that generates the file. - required string generating_rule = 2; - - // The path of the output file (not a label). - optional string location = 3; -} - -// A target from a blaze query execution. Similar to the Attribute message, -// the Discriminator is used to determine which field contains information. -// For any given type, only one of these can be populated in a single Target. -message Target { - enum Discriminator { - RULE = 1; - SOURCE_FILE = 2; - GENERATED_FILE = 3; - PACKAGE_GROUP = 4; - ENVIRONMENT_GROUP = 5; - } - - // The type of target contained in the message. - required Discriminator type = 1; - - // If this target represents a rule, the rule is stored here. - optional Rule rule = 2; - - // A file that is not generated by the build system (version controlled - // or created by the test harness). - optional SourceFile source_file = 3; - - // A generated file that is the output of a rule. - optional GeneratedFile generated_file = 4; - - // A package group. - optional PackageGroup package_group = 5; - - // An environment group. - optional EnvironmentGroup environment_group = 6; -} - -// Container for all of the blaze query results. -message QueryResult { - // All of the targets returned by the blaze query. - repeated Target target = 1; -} - -//////////////////////////////////////////////////////////////////////////// -// Messages dealing with querying the BUILD language itself. For now, this is -// quite simplistic: Blaze can only tell the names of the rule classes, their -// attributes with their type. - -// Information about allowed rule classes for a specific attribute of a rule. -message AllowedRuleClassInfo { - enum AllowedRuleClasses { - ANY = 1; // Any rule is allowed to be in this attribute - SPECIFIED = 2; // Only the explicitly listed rules are allowed - } - - required AllowedRuleClasses policy = 1; - - // Rule class names of rules allowed in this attribute, e.g "cc_library", - // "py_binary". Only present if the allowed_rule_classes field is set to - // SPECIFIED. - repeated string allowed_rule_class = 2; -} - -// This message represents a single attribute of a single rule. -message AttributeDefinition { - - // Attribute name, i.e. "name", "srcs", "deps" - required string name = 1; - required Attribute.Discriminator type = 2; - required bool mandatory = 3; - - // Only present for attributes of type LABEL and LABEL_LIST. - optional AllowedRuleClassInfo allowed_rule_classes = 4; - - optional string documentation = 5; -} - -message RuleDefinition { - required string name = 1; - // Only contains documented attributes - repeated AttributeDefinition attribute = 2; - optional string documentation = 3; - // Only for build extensions: label to file that defines the extension - optional string label = 4; -} - -message BuildLanguage { - // Only contains documented rule definitions - repeated RuleDefinition rule = 1; -} - -message Location { - optional int32 start_offset = 1; - optional int32 start_line = 2; - optional int32 start_column = 3; - optional int32 end_offset = 4; - optional int32 end_line = 5; - optional int32 end_column = 6; -} - -message MakeVarBinding { - required string value = 1; - required string platform_set_regexp = 2; -} - -message MakeVar { - required string name = 1; - repeated MakeVarBinding binding = 2; -} - -message DEPRECATED_GlobCriteria { - // List of includes (or items if this criteria did not come from a glob) - repeated string include = 1; - - // List of exclude expressions - repeated string exclude = 2; - - // Whether this message came from a glob - optional bool glob = 3; -} - -message Event { - enum EventKind { - ERROR = 1; - WARNING = 2; - INFO = 3; - PROGRESS = 4; - } - - required EventKind kind = 1; - optional Location DEPRECATED_location = 2; - optional string message = 3; -} diff --git a/vendor/github.com/bazelbuild/buildtools/buildozer/BUILD b/vendor/github.com/bazelbuild/buildtools/buildozer/BUILD deleted file mode 100644 index a9916d9b591..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/buildozer/BUILD +++ /dev/null @@ -1,35 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") - -go_library( - name = "go_default_library", - srcs = ["main.go"], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/buildtools/buildozer", - importpath = "github.com/bazelbuild/buildtools/buildozer", - visibility = ["//visibility:private"], - deps = [ - "//vendor/github.com/bazelbuild/buildtools/build:go_default_library", - "//vendor/github.com/bazelbuild/buildtools/edit:go_default_library", - "//vendor/github.com/bazelbuild/buildtools/tables:go_default_library", - ], -) - -go_binary( - name = "buildozer", - embed = [":go_default_library"], - tags = ["manual"], - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/buildtools/buildozer/README.md b/vendor/github.com/bazelbuild/buildtools/buildozer/README.md deleted file mode 100644 index 894b4ca306c..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/buildozer/README.md +++ /dev/null @@ -1,271 +0,0 @@ -# Buildozer - -Buildozer is a command line tool to rewrite multiple -[Bazel](https://github.com/bazelbuild/bazel) BUILD files using -standard commands. - -## Installation - -1. Build a binary and put it into your $GOPATH/bin: - -```bash -go get github.com/bazelbuild/buildtools/buildozer -``` - -## Usage - -```shell -buildozer [OPTIONS] ['command args' | -f FILE ] label-list -``` - -Here, `label-list` is a comma-separated list of Bazel labels, for example -`//path/to/pkg1:rule1, //path/to/pkg2:rule2`. Buildozer reads commands from -`FILE` (`-` for stdin (format: `|`-separated command line arguments to buildozer, -excluding flags)) - -You should specify at least one command and one target. Buildozer will execute -all commands on all targets. Commands are executed in order, files are processed -in parallel. - -### Targets - -Targets look like Bazel labels, but there can be some differences in presence of -macros. - - * Use the label notation to refer to a rule: `//buildtools/buildozer:edit` - * Use the `__pkg__` suffix to refer to the package declaration: - `//buildtools/buildozer:__pkg__` - * Use an asterisk to refer to all rules in a file: `//pkg:*` - * Use `...` to refer to all descendant BUILD files in a directory: `//pkg/...:*` - * Use percent to refer to all rules of a certain kind: `//pkg:%java_library` - * Use percent-and-number to refer to a rule that begins at a certain line: - `//pkg:%123`. - * Use `-` for the package name if you want to process standard input stream - instead of a file: `-:all_tests`. - -### Options - -OPTIONS include the following options: - - * `-stdout` : write changed BUILD file to stdout - * `-buildifier` : format output using a specific buildifier binary. If empty, use built-in formatter. - * `-k` : apply all commands, even if there are failures - * `-quiet` : suppress informational messages - * `-shorten_labels` : convert added labels to short form, e.g. //foo:bar => :bar - * `-types`: Filter the targets, keeping only those of the given types, e.g. - `buildozer -types go_library,go_binary 'print rule' '//buildtools/buildozer:*'` - * `-eol-comments=false`: When adding new comments, put them on a separate line. - -See `buildozer -help` for the full list. - -### Edit commands - -Buildozer supports the following commands(`'command args'`): - - * `add `: Adds value(s) to a list attribute of a rule. If a - value is already present in the list, it is not added. - * `new_load <[to=]from(s)>`: Add a load statement for the given path, - importing the symbols. Before using this, make sure to run - `buildozer 'fix movePackageToTop'`. Afterwards, consider running - `buildozer 'fix unusedLoads'`. - * `comment ? ? `: Add a comment to a rule, an attribute, - or a specific value in a list. Spaces in the comment should be escaped with - backslashes. - * `print_comment ? ?` - * `delete`: Delete a rule. - * `fix ?`: Apply a fix. - * `move `: Moves `value(s)` from the list `old_attr` - to the list `new_attr`. The wildcard `*` matches all values. - * `new [(before|after) ]`: Add a - new rule at the end of the BUILD file (before/after ``). - * `print ` - * `remove `: Removes attribute `attr`. - * `remove `: Removes `value(s)` from the list `attr`. The - wildcard `*` matches all attributes. Lists containing none of the `value(s)` are - not modified. - * `remove_comment ? ?`: Removes the comment attached to the rule, - an attribute, or a specific value in a list. - * `rename `: Rename the `old_attr` to `new_attr` which must - not yet exist. - * `replace `: Replaces `old_value` with `new_value` - in the list `attr`. Wildcard `*` matches all attributes. Lists not containing - `old_value` are not modified. - * `substitute `: Replaces strings which - match `old_regexp` in the list `attr` according to `new_template`. Wildcard - `*` matches all attributes. The regular expression must follow - [RE2 syntax](https://github.com/google/re2/wiki/Syntax). `new_template` may - be a simple replacement string, but it may also expand numbered or named - groups using `$0` or `$x`. Lists without strings that match `old_regexp` - are not modified. - * `set `: Sets the value of an attribute. If the attribute - was already present, its old value is replaced. - * `set_if_absent `: Sets the value of an attribute. If the - attribute was already present, no action is taken. - * `set kind `: Set the target type to value. - * `copy `: Copies the value of `attr` between rules. If it - exists in the `to_rule`, it will be overwritten. - * `copy_no_overwrite `: Copies the value of `attr` between - rules. If it exists in the `to_rule`, no action is taken. - * `dict_add <(key:value)(s)>`: Sets the value of a key for the dict - attribute `attr`. If the key was already present, it will _not_ be overwritten - * `dict_set <(key:value)(s)>`: Sets the value of a key for the dict - attribute `attr`. If the key was already present, its old value is replaced. - * `dict_delete `: Deletes the key for the dict attribute `attr`. - -Here, `` represents an attribute (being `add`ed/`rename`d/`delete`d etc.), -e.g.: `srcs`, `` represents values of the attribute and so on. -A '?' indicates that the preceding argument is optional. - -The fix command without a fix specified applied to all eligible fixes. -Use `//path/to/pkg:__pkg__` as label for file level changes like `new_load` and -`new`. -A transformation can be applied to all rules of a particular kind by using -`%rule_kind` at the end of the label(see examples below). - -#### Examples - -```bash -# Edit //pkg:rule and //pkg:rule2, and add a dependency on //base -buildozer 'add deps //base' //pkg:rule //pkg:rule2 - -# A load for a skylark file in //pkg -buildozer 'new_load /tools/build_rules/build_test build_test' //pkg:__pkg__ - -# Change the default_visibility to public for the package //pkg -buildozer 'set default_visibility //visibility:public' //pkg:__pkg__ - -# Change all gwt_module targets to java_library in the package //pkg -buildozer 'set kind java_library' //pkg:%gwt_module - -# Replace the dependency on pkg_v1 with a dependency on pkg_v2 -buildozer 'replace deps //pkg_v1 //pkg_v2' //pkg:rule - -# Replace all dependencies using regular expressions. -buildozer 'substitute deps //old/(.*) //new/${1}' //pkg:rule - -# Delete the dependency on foo in every cc_library in the package -buildozer 'remove deps foo' //pkg:%cc_library - -# Delete the testonly attribute in every rule in the package -buildozer 'remove testonly' '//pkg:*' - -# Add a comment to the timeout attribute of //pkg:rule_test -buildozer 'comment timeout Delete\ this\ after\ 2015-12-31.' //pkg:rule_test - -# Add a new rule at the end of the file -buildozer 'new java_library foo' //pkg:__pkg__ - -# Add a cc_binary rule named new_bin before the rule named tests -buildozer 'new cc_binary new_bin before tests' //:__pkg__ - -# Copy an attribute from `protolib` to `py_protolib`. -buildozer 'copy testonly protolib' //pkg:py_protolib - -# Set two attributes in the same rule -buildozer 'set compile 1' 'set srcmap 1' //pkg:rule - -# Make a default explicit in all soy_js rules in a package -buildozer 'set_if_absent allowv1syntax 1' //pkg:%soy_js - -# Add an attribute new_attr with value "def_val" to all cc_binary rules -# Note that special characters will automatically be escaped in the string -buildozer 'add new_attr def_val' //:%cc_binary -``` - -### Print commands - -They work just like the edit commands. Expect a return code of 3 as they are not -modifying any file. - - * `print `: For each target, prints the value of the attributes - (see below). - * `print_comment ? ?`: Prints a comment associated with a rule, - an attribute or a specific value in a list. - -The print command prints the value of the attributes. If a target doesn't have -the attribute, a warning is printed on stderr. - -There are some special attributes in the `print` command: - - * `kind`: displays the name of the function - * `label`: the fully qualified label - * `rule`: the entire rule definition - * `startline`: the line number on which the rule begins in the BUILD file - * `endline`: the line number on which the rule ends in the BUILD file - -#### Examples - -```shell -# Print the kind of a target -buildozer 'print kind' base # output: cc_library - -# Print the name of all cc_library in //base -buildozer 'print name' base:%cc_library - -# Get the default visibility of the //base package -buildozer 'print default_visibility' base:%package - -# Print labels of cc_library targets in //base that have a deps attribute -buildozer 'print label deps' base:%cc_library 2>/dev/null | cut -d' ' -f1 - -# Print the list of labels in //base that explicitly set the testonly attribute: -buildozer 'print label testonly' 'base:*' 2>/dev/null - -# Print the entire definition (including comments) of the //base:heapcheck rule: -buildozer 'print rule' //base:heapcheck -``` - -## Converting labels - -Buildozer works at the syntax-level. It doesn't evaluate the BUILD files. If you -need to query the information Bazel has, please use `bazel query`. If you have a -list of Bazel labels, chances are that some of them are generated by BUILD -extensions. Labels in Buildozer are slightly different from labels in Bazel. -Bazel cares about the generated code, while Buildozer looks at the BUILD file -before macro expansion. - -To see the expanded BUILD files, try: - -```shell -bazel query --output=build //path/to/BUILD -``` - -## Do multiple changes at once - -Use `buildozer -f ` to load a list of commands from a file. The usage is -just like arguments on the command-line, except that arguments are separated by -`|`. - -```shell -$ cat /tmp/cmds -new cc_library foo|//buildtools/buildozer/BUILD -add deps //base //strings|add srcs foo.cc|//buildtools/buildozer:foo -add deps :foo|//buildtools/buildozer - -$ buildozer -f /tmp/cmds -fixed //buildtools/buildozer/BUILD -``` - -The list of commands will typically be generated and can be large. This is -efficient: Commands are grouped so that each file is modified once. Files are -processed in parallel. - -## Error code - -The return code is: - - * `0` on success, if changes were made - * `1` when there is a usage error - * `2` when at least one command has failed - * `3` on success, when no changes were made - -## Source Structure - - * `buildozer/main.go` : Entry point for the buildozer binary - * `edit/buildozer.go` : Implementation of functions for the buildozer commands - * `edit/edit.go`: Library functions to perform various operations on ASTs. These - * functions are called by the impl functions in buildozer.go - * `edit/fix.go`: Functions for various fixes for the `buildozer 'fix '` - command, like cleaning unused loads, changing labels to canonical notation, etc. - * `edit/types.go`: Type information for attributes - diff --git a/vendor/github.com/bazelbuild/buildtools/buildozer/main.go b/vendor/github.com/bazelbuild/buildtools/buildozer/main.go deleted file mode 100644 index 1b58e390b30..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/buildozer/main.go +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ -// Entry-point for Buildozer binary. - -package main - -import ( - "flag" - "fmt" - "os" - "strings" - - "github.com/bazelbuild/buildtools/build" - "github.com/bazelbuild/buildtools/edit" - "github.com/bazelbuild/buildtools/tables" -) - -var ( - buildVersion = "redacted" - buildScmRevision = "redacted" - - version = flag.Bool("version", false, "Print the version of buildozer") - stdout = flag.Bool("stdout", false, "write changed BUILD file to stdout") - buildifier = flag.String("buildifier", "", "format output using a specific buildifier binary. If empty, use built-in formatter") - parallelism = flag.Int("P", 0, "number of cores to use for concurrent actions") - numio = flag.Int("numio", 200, "number of concurrent actions") - commandsFile = flag.String("f", "", "file name to read commands from, use '-' for stdin (format:|-separated command line arguments to buildozer, excluding flags)") - keepGoing = flag.Bool("k", false, "apply all commands, even if there are failures") - filterRuleTypes = stringList("types", "comma-separated list of rule types to change, the default empty list means all rules") - preferEOLComments = flag.Bool("eol-comments", true, "when adding a new comment, put it on the same line if possible") - rootDir = flag.String("root_dir", "", "If present, use this folder rather than $PWD to find the root directory.") - quiet = flag.Bool("quiet", false, "suppress informational messages") - editVariables = flag.Bool("edit-variables", false, "For attributes that simply assign a variable (e.g. hdrs = LIB_HDRS), edit the build variable instead of appending to the attribute.") - isPrintingProto = flag.Bool("output_proto", false, "output serialized devtools.buildozer.Output protos instead of human-readable strings.") - tablesPath = flag.String("tables", "", "path to JSON file with custom table definitions which will replace the built-in tables") - addTablesPath = flag.String("add_tables", "", "path to JSON file with custom table definitions which will be merged with the built-in tables") - - shortenLabelsFlag = flag.Bool("shorten_labels", true, "convert added labels to short form, e.g. //foo:bar => :bar") - deleteWithComments = flag.Bool("delete_with_comments", true, "If a list attribute should be deleted even if there is a comment attached to it") -) - -func stringList(name, help string) func() []string { - f := flag.String(name, "", help) - return func() []string { - if *f == "" { - return nil - } - res := strings.Split(*f, ",") - for i := range res { - res[i] = strings.TrimSpace(res[i]) - } - return res - } -} - -func main() { - flag.Parse() - - if *version { - fmt.Printf("buildozer version: %s \n", buildVersion) - fmt.Printf("buildozer scm revision: %s \n", buildScmRevision) - os.Exit(0) - } - - if *tablesPath != "" { - if err := tables.ParseAndUpdateJSONDefinitions(*tablesPath, false); err != nil { - fmt.Fprintf(os.Stderr, "buildifier: failed to parse %s for -tables: %s\n", *tablesPath, err) - os.Exit(2) - } - } - - if *addTablesPath != "" { - if err := tables.ParseAndUpdateJSONDefinitions(*addTablesPath, true); err != nil { - fmt.Fprintf(os.Stderr, "buildifier: failed to parse %s for -add_tables: %s\n", *addTablesPath, err) - os.Exit(2) - } - } - - if !(*shortenLabelsFlag) { - build.DisableRewrites = []string{"label"} - } - edit.ShortenLabelsFlag = *shortenLabelsFlag - edit.DeleteWithComments = *deleteWithComments - opts := &edit.Options{ - Stdout: *stdout, - Buildifier: *buildifier, - Parallelism: *parallelism, - NumIO: *numio, - CommandsFile: *commandsFile, - KeepGoing: *keepGoing, - FilterRuleTypes: filterRuleTypes(), - PreferEOLComments: *preferEOLComments, - RootDir: *rootDir, - Quiet: *quiet, - EditVariables: *editVariables, - IsPrintingProto: *isPrintingProto, - } - os.Exit(edit.Buildozer(opts, flag.Args())) -} diff --git a/vendor/github.com/bazelbuild/buildtools/edit/BUILD b/vendor/github.com/bazelbuild/buildtools/edit/BUILD deleted file mode 100644 index 273982d0db6..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/edit/BUILD +++ /dev/null @@ -1,38 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "buildozer.go", - "edit.go", - "fix.go", - "types.go", - ], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/buildtools/edit", - importpath = "github.com/bazelbuild/buildtools/edit", - visibility = ["//visibility:public"], - deps = [ - "//vendor/github.com/bazelbuild/buildtools/api_proto:go_default_library", - "//vendor/github.com/bazelbuild/buildtools/build:go_default_library", - "//vendor/github.com/bazelbuild/buildtools/build_proto:go_default_library", - "//vendor/github.com/bazelbuild/buildtools/file:go_default_library", - "//vendor/github.com/bazelbuild/buildtools/lang:go_default_library", - "//vendor/github.com/bazelbuild/buildtools/tables:go_default_library", - "//vendor/github.com/bazelbuild/buildtools/wspace:go_default_library", - "//vendor/github.com/golang/protobuf/proto:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/buildtools/edit/buildozer.go b/vendor/github.com/bazelbuild/buildtools/edit/buildozer.go deleted file mode 100644 index 7ef8d80a458..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/edit/buildozer.go +++ /dev/null @@ -1,1147 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ - -// Buildozer is a tool for programmatically editing BUILD files. - -package edit - -import ( - "bufio" - "bytes" - "errors" - "fmt" - "io" - "io/ioutil" - "log" - "os" - "os/exec" - "path" - "path/filepath" - "regexp" - "runtime" - "strconv" - "strings" - - apipb "github.com/bazelbuild/buildtools/api_proto" - "github.com/bazelbuild/buildtools/build" - "github.com/bazelbuild/buildtools/file" - "github.com/golang/protobuf/proto" -) - -// Options represents choices about how buildozer should behave. -type Options struct { - Stdout bool // write changed BUILD file to stdout - Buildifier string // path to buildifier binary - Parallelism int // number of cores to use for concurrent actions - NumIO int // number of concurrent actions - CommandsFile string // file name to read commands from, use '-' for stdin (format:|-separated command line arguments to buildozer, excluding flags - KeepGoing bool // apply all commands, even if there are failures - FilterRuleTypes []string // list of rule types to change, empty means all - PreferEOLComments bool // when adding a new comment, put it on the same line if possible - RootDir string // If present, use this folder rather than $PWD to find the root dir - Quiet bool // suppress informational messages. - EditVariables bool // for attributes that simply assign a variable (e.g. hdrs = LIB_HDRS), edit the build variable instead of appending to the attribute. - IsPrintingProto bool // output serialized devtools.buildozer.Output protos instead of human-readable strings -} - -// NewOpts returns a new Options struct with some defaults set. -func NewOpts() *Options { - return &Options{NumIO: 200, PreferEOLComments: true} -} - -// Usage is a user-overridden func to print the program usage. -var Usage = func() {} - -var fileModified = false // set to true when a file has been fixed - -const stdinPackageName = "-" // the special package name to represent stdin - -// CmdEnvironment stores the information the commands below have access to. -type CmdEnvironment struct { - File *build.File // the AST - Rule *build.Rule // the rule to modify - Vars map[string]*build.AssignExpr // global variables set in the build file - Pkg string // the full package name - Args []string // the command-line arguments - output *apipb.Output_Record // output proto, stores whatever a command wants to print -} - -// The cmdXXX functions implement the various commands. - -func cmdAdd(opts *Options, env CmdEnvironment) (*build.File, error) { - attr := env.Args[0] - for _, val := range env.Args[1:] { - if IsIntList(attr) { - AddValueToListAttribute(env.Rule, attr, env.Pkg, &build.LiteralExpr{Token: val}, &env.Vars) - continue - } - strVal := getStringExpr(val, env.Pkg) - AddValueToListAttribute(env.Rule, attr, env.Pkg, strVal, &env.Vars) - } - ResolveAttr(env.Rule, attr, env.Pkg) - return env.File, nil -} - -func cmdComment(opts *Options, env CmdEnvironment) (*build.File, error) { - // The comment string is always the last argument in the list. - str := env.Args[len(env.Args)-1] - str = strings.Replace(str, "\\n", "\n", -1) - // Multiline comments should go on a separate line. - fullLine := !opts.PreferEOLComments || strings.Contains(str, "\n") - comment := []build.Comment{} - for _, line := range strings.Split(str, "\n") { - comment = append(comment, build.Comment{Token: "# " + line}) - } - - // The comment might be attached to a rule, an attribute, or a value in a list, - // depending on how many arguments are passed. - switch len(env.Args) { - case 1: // Attach to a rule - env.Rule.Call.Comments.Before = comment - case 2: // Attach to an attribute - if attr := env.Rule.AttrDefn(env.Args[0]); attr != nil { - if fullLine { - attr.LHS.Comment().Before = comment - } else { - attr.RHS.Comment().Suffix = comment - } - } - case 3: // Attach to a specific value in a list - if attr := env.Rule.Attr(env.Args[0]); attr != nil { - if expr := ListFind(attr, env.Args[1], env.Pkg); expr != nil { - if fullLine { - expr.Comments.Before = comment - } else { - expr.Comments.Suffix = comment - } - } - } - default: - panic("cmdComment") - } - return env.File, nil -} - -// commentsText concatenates comments into a single line. -func commentsText(comments []build.Comment) string { - var segments []string - for _, comment := range comments { - token := comment.Token - if strings.HasPrefix(token, "#") { - token = token[1:] - } - segments = append(segments, strings.TrimSpace(token)) - } - return strings.Replace(strings.Join(segments, " "), "\n", " ", -1) -} - -func cmdPrintComment(opts *Options, env CmdEnvironment) (*build.File, error) { - attrError := func() error { - return fmt.Errorf("rule \"//%s:%s\" has no attribute \"%s\"", env.Pkg, env.Rule.Name(), env.Args[0]) - } - - switch len(env.Args) { - case 0: // Print rule comment. - env.output.Fields = []*apipb.Output_Record_Field{ - {Value: &apipb.Output_Record_Field_Text{commentsText(env.Rule.Call.Comments.Before)}}, - } - case 1: // Print attribute comment. - attr := env.Rule.AttrDefn(env.Args[0]) - if attr == nil { - return nil, attrError() - } - comments := append(attr.Before, attr.Suffix...) - env.output.Fields = []*apipb.Output_Record_Field{ - {Value: &apipb.Output_Record_Field_Text{commentsText(comments)}}, - } - case 2: // Print comment of a specific value in a list. - attr := env.Rule.Attr(env.Args[0]) - if attr == nil { - return nil, attrError() - } - value := env.Args[1] - expr := ListFind(attr, value, env.Pkg) - if expr == nil { - return nil, fmt.Errorf("attribute \"%s\" has no value \"%s\"", env.Args[0], value) - } - comments := append(expr.Comments.Before, expr.Comments.Suffix...) - env.output.Fields = []*apipb.Output_Record_Field{ - {Value: &apipb.Output_Record_Field_Text{commentsText(comments)}}, - } - default: - panic("cmdPrintComment") - } - return nil, nil -} - -func cmdDelete(opts *Options, env CmdEnvironment) (*build.File, error) { - return DeleteRule(env.File, env.Rule), nil -} - -func cmdMove(opts *Options, env CmdEnvironment) (*build.File, error) { - oldAttr := env.Args[0] - newAttr := env.Args[1] - if len(env.Args) == 3 && env.Args[2] == "*" { - if err := MoveAllListAttributeValues(env.Rule, oldAttr, newAttr, env.Pkg, &env.Vars); err != nil { - return nil, err - } - return env.File, nil - } - fixed := false - for _, val := range env.Args[2:] { - if deleted := ListAttributeDelete(env.Rule, oldAttr, val, env.Pkg); deleted != nil { - AddValueToListAttribute(env.Rule, newAttr, env.Pkg, deleted, &env.Vars) - fixed = true - } - } - if fixed { - return env.File, nil - } - return nil, nil -} - -func cmdNew(opts *Options, env CmdEnvironment) (*build.File, error) { - kind := env.Args[0] - name := env.Args[1] - addAtEOF, insertionIndex, err := findInsertionIndex(env) - if err != nil { - return nil, err - } - - if FindRuleByName(env.File, name) != nil { - return nil, fmt.Errorf("rule '%s' already exists", name) - } - - call := &build.CallExpr{X: &build.Ident{Name: kind}} - rule := &build.Rule{call, ""} - rule.SetAttr("name", &build.StringExpr{Value: name}) - - if addAtEOF { - env.File.Stmt = InsertAfterLastOfSameKind(env.File.Stmt, rule.Call) - } else { - env.File.Stmt = InsertAfter(insertionIndex, env.File.Stmt, call) - } - return env.File, nil -} - -// findInsertionIndex is used by cmdNew to find the place at which to insert the new rule. -func findInsertionIndex(env CmdEnvironment) (bool, int, error) { - if len(env.Args) < 4 { - return true, 0, nil - } - - relativeToRuleName := env.Args[3] - ruleIdx, _ := IndexOfRuleByName(env.File, relativeToRuleName) - if ruleIdx == -1 { - return true, 0, nil - } - - switch env.Args[2] { - case "before": - return false, ruleIdx - 1, nil - case "after": - return false, ruleIdx, nil - default: - return true, 0, fmt.Errorf("Unknown relative operator '%s'; allowed: 'before', 'after'", env.Args[1]) - } -} - -func cmdNewLoad(opts *Options, env CmdEnvironment) (*build.File, error) { - from := env.Args[1:] - to := append([]string{}, from...) - for i := range from { - if s := strings.SplitN(from[i], "=", 2); len(s) == 2 { - to[i] = s[0] - from[i] = s[1] - } - } - - env.File.Stmt = InsertLoad(env.File.Stmt, env.Args[0], from, to) - return env.File, nil -} - -func cmdPrint(opts *Options, env CmdEnvironment) (*build.File, error) { - format := env.Args - if len(format) == 0 { - format = []string{"name", "kind"} - } - fields := make([]*apipb.Output_Record_Field, len(format)) - - for i, str := range format { - value := env.Rule.Attr(str) - if str == "kind" { - fields[i] = &apipb.Output_Record_Field{Value: &apipb.Output_Record_Field_Text{env.Rule.Kind()}} - } else if str == "name" { - fields[i] = &apipb.Output_Record_Field{Value: &apipb.Output_Record_Field_Text{env.Rule.Name()}} - } else if str == "label" { - if env.Rule.Name() != "" { - fields[i] = &apipb.Output_Record_Field{Value: &apipb.Output_Record_Field_Text{fmt.Sprintf("//%s:%s", env.Pkg, env.Rule.Name())}} - } else { - return nil, nil - } - } else if str == "rule" { - fields[i] = &apipb.Output_Record_Field{ - Value: &apipb.Output_Record_Field_Text{build.FormatString(env.Rule.Call)}, - } - } else if str == "startline" { - fields[i] = &apipb.Output_Record_Field{Value: &apipb.Output_Record_Field_Number{int32(env.Rule.Call.ListStart.Line)}} - } else if str == "endline" { - fields[i] = &apipb.Output_Record_Field{Value: &apipb.Output_Record_Field_Number{int32(env.Rule.Call.End.Pos.Line)}} - } else if value == nil { - fmt.Fprintf(os.Stderr, "rule \"//%s:%s\" has no attribute \"%s\"\n", - env.Pkg, env.Rule.Name(), str) - fields[i] = &apipb.Output_Record_Field{Value: &apipb.Output_Record_Field_Error{Error: apipb.Output_Record_Field_MISSING}} - } else if lit, ok := value.(*build.LiteralExpr); ok { - fields[i] = &apipb.Output_Record_Field{Value: &apipb.Output_Record_Field_Text{lit.Token}} - } else if lit, ok := value.(*build.Ident); ok { - fields[i] = &apipb.Output_Record_Field{Value: &apipb.Output_Record_Field_Text{lit.Name}} - } else if string, ok := value.(*build.StringExpr); ok { - fields[i] = &apipb.Output_Record_Field{ - Value: &apipb.Output_Record_Field_Text{string.Value}, - QuoteWhenPrinting: true, - } - } else if strList := env.Rule.AttrStrings(str); strList != nil { - fields[i] = &apipb.Output_Record_Field{Value: &apipb.Output_Record_Field_List{List: &apipb.RepeatedString{Strings: strList}}} - } else { - // Some other Expr we haven't listed above. Just print it. - fields[i] = &apipb.Output_Record_Field{Value: &apipb.Output_Record_Field_Text{build.FormatString(value)}} - } - } - - env.output.Fields = fields - return nil, nil -} - -func attrKeysForPattern(rule *build.Rule, pattern string) []string { - if pattern == "*" { - return rule.AttrKeys() - } - return []string{pattern} -} - -func cmdRemove(opts *Options, env CmdEnvironment) (*build.File, error) { - if len(env.Args) == 1 { // Remove the attribute - if env.Rule.DelAttr(env.Args[0]) != nil { - return env.File, nil - } - } else { // Remove values in the attribute. - fixed := false - for _, key := range attrKeysForPattern(env.Rule, env.Args[0]) { - for _, val := range env.Args[1:] { - ListAttributeDelete(env.Rule, key, val, env.Pkg) - fixed = true - } - ResolveAttr(env.Rule, key, env.Pkg) - } - if fixed { - return env.File, nil - } - } - return nil, nil -} - -func cmdRemoveComment(opts *Options, env CmdEnvironment) (*build.File, error) { - switch len(env.Args) { - case 0: // Remove comment attached to rule - env.Rule.Call.Comments.Before = nil - env.Rule.Call.Comments.Suffix = nil - env.Rule.Call.Comments.After = nil - case 1: // Remove comment attached to attr - if attr := env.Rule.AttrDefn(env.Args[0]); attr != nil { - attr.Comments.Before = nil - attr.Comments.Suffix = nil - attr.Comments.After = nil - attr.LHS.Comment().Before = nil - attr.LHS.Comment().Suffix = nil - attr.LHS.Comment().After = nil - attr.RHS.Comment().Before = nil - attr.RHS.Comment().Suffix = nil - attr.RHS.Comment().After = nil - } - case 2: // Remove comment attached to value - if attr := env.Rule.Attr(env.Args[0]); attr != nil { - if expr := ListFind(attr, env.Args[1], env.Pkg); expr != nil { - expr.Comments.Before = nil - expr.Comments.Suffix = nil - expr.Comments.After = nil - } - } - default: - panic("cmdRemoveComment") - } - return env.File, nil -} - -func cmdRename(opts *Options, env CmdEnvironment) (*build.File, error) { - oldAttr := env.Args[0] - newAttr := env.Args[1] - if err := RenameAttribute(env.Rule, oldAttr, newAttr); err != nil { - return nil, err - } - return env.File, nil -} - -func cmdReplace(opts *Options, env CmdEnvironment) (*build.File, error) { - oldV := env.Args[1] - newV := env.Args[2] - for _, key := range attrKeysForPattern(env.Rule, env.Args[0]) { - attr := env.Rule.Attr(key) - if e, ok := attr.(*build.StringExpr); ok { - if LabelsEqual(e.Value, oldV, env.Pkg) { - env.Rule.SetAttr(key, getAttrValueExpr(key, []string{newV}, env)) - } - } else { - ListReplace(attr, oldV, newV, env.Pkg) - } - } - return env.File, nil -} - -func cmdSubstitute(opts *Options, env CmdEnvironment) (*build.File, error) { - oldRegexp, err := regexp.Compile(env.Args[1]) - if err != nil { - return nil, err - } - newTemplate := env.Args[2] - for _, key := range attrKeysForPattern(env.Rule, env.Args[0]) { - attr := env.Rule.Attr(key) - e, ok := attr.(*build.StringExpr) - if !ok { - ListSubstitute(attr, oldRegexp, newTemplate) - continue - } - if newValue, ok := stringSubstitute(e.Value, oldRegexp, newTemplate); ok { - env.Rule.SetAttr(key, getAttrValueExpr(key, []string{newValue}, env)) - } - } - return env.File, nil -} - -func cmdSet(opts *Options, env CmdEnvironment) (*build.File, error) { - attr := env.Args[0] - args := env.Args[1:] - if attr == "kind" { - env.Rule.SetKind(args[0]) - } else { - env.Rule.SetAttr(attr, getAttrValueExpr(attr, args, env)) - } - return env.File, nil -} - -func cmdSetIfAbsent(opts *Options, env CmdEnvironment) (*build.File, error) { - attr := env.Args[0] - args := env.Args[1:] - if attr == "kind" { - return nil, fmt.Errorf("setting 'kind' is not allowed for set_if_absent. Got %s", env.Args) - } - if env.Rule.Attr(attr) == nil { - env.Rule.SetAttr(attr, getAttrValueExpr(attr, args, env)) - } - return env.File, nil -} - -func getAttrValueExpr(attr string, args []string, env CmdEnvironment) build.Expr { - switch { - case attr == "kind": - return nil - case IsIntList(attr): - var list []build.Expr - for _, i := range args { - list = append(list, &build.LiteralExpr{Token: i}) - } - return &build.ListExpr{List: list} - case IsList(attr) && !(len(args) == 1 && strings.HasPrefix(args[0], "glob(")): - var list []build.Expr - for _, arg := range args { - list = append(list, getStringExpr(arg, env.Pkg)) - } - return &build.ListExpr{List: list} - case len(args) == 0: - // Expected a non-list argument, nothing provided - return &build.Ident{Name: "None"} - case IsString(attr): - return getStringExpr(args[0], env.Pkg) - default: - return &build.Ident{Name: args[0]} - } -} - -func getStringExpr(value, pkg string) build.Expr { - unquoted, triple, err := build.Unquote(value) - if err == nil { - return &build.StringExpr{Value: ShortenLabel(unquoted, pkg), TripleQuote: triple} - } - return &build.StringExpr{Value: ShortenLabel(value, pkg)} -} - -func cmdCopy(opts *Options, env CmdEnvironment) (*build.File, error) { - attrName := env.Args[0] - from := env.Args[1] - - return copyAttributeBetweenRules(env, attrName, from) -} - -func cmdCopyNoOverwrite(opts *Options, env CmdEnvironment) (*build.File, error) { - attrName := env.Args[0] - from := env.Args[1] - - if env.Rule.Attr(attrName) != nil { - return env.File, nil - } - - return copyAttributeBetweenRules(env, attrName, from) -} - -// cmdDictAdd adds a key to a dict, if that key does _not_ exit already. -func cmdDictAdd(opts *Options, env CmdEnvironment) (*build.File, error) { - attr := env.Args[0] - args := env.Args[1:] - - dict := &build.DictExpr{} - currDict, ok := env.Rule.Attr(attr).(*build.DictExpr) - if ok { - dict = currDict - } - - for _, x := range args { - kv := strings.Split(x, ":") - expr := getStringExpr(kv[1], env.Pkg) - - prev := DictionaryGet(dict, kv[0]) - if prev == nil { - // Only set the value if the value is currently unset. - DictionarySet(dict, kv[0], expr) - } - } - env.Rule.SetAttr(attr, dict) - return env.File, nil -} - -// cmdDictSet adds a key to a dict, overwriting any previous values. -func cmdDictSet(opts *Options, env CmdEnvironment) (*build.File, error) { - attr := env.Args[0] - args := env.Args[1:] - - dict := &build.DictExpr{} - currDict, ok := env.Rule.Attr(attr).(*build.DictExpr) - if ok { - dict = currDict - } - - for _, x := range args { - kv := strings.Split(x, ":") - expr := getStringExpr(kv[1], env.Pkg) - // Set overwrites previous values. - DictionarySet(dict, kv[0], expr) - } - env.Rule.SetAttr(attr, dict) - return env.File, nil -} - -// cmdDictRemove removes a key from a dict. -func cmdDictRemove(opts *Options, env CmdEnvironment) (*build.File, error) { - attr := env.Args[0] - args := env.Args[1:] - - thing := env.Rule.Attr(attr) - dictAttr, ok := thing.(*build.DictExpr) - if !ok { - return env.File, nil - } - - for _, x := range args { - // should errors here be flagged? - DictionaryDelete(dictAttr, x) - env.Rule.SetAttr(attr, dictAttr) - } - - // If the removal results in the dict having no contents, delete the attribute (stay clean!) - if dictAttr == nil || len(dictAttr.List) == 0 { - env.Rule.DelAttr(attr) - } - - return env.File, nil -} - -func copyAttributeBetweenRules(env CmdEnvironment, attrName string, from string) (*build.File, error) { - fromRule := FindRuleByName(env.File, from) - if fromRule == nil { - return nil, fmt.Errorf("could not find rule '%s'", from) - } - attr := fromRule.Attr(attrName) - if attr == nil { - return nil, fmt.Errorf("rule '%s' does not have attribute '%s'", from, attrName) - } - - ast, err := build.ParseBuild("" /* filename */, []byte(build.FormatString(attr))) - if err != nil { - return nil, fmt.Errorf("could not parse attribute value %v", build.FormatString(attr)) - } - - env.Rule.SetAttr(attrName, ast.Stmt[0]) - return env.File, nil -} - -func cmdFix(opts *Options, env CmdEnvironment) (*build.File, error) { - // Fix the whole file - if env.Rule.Kind() == "package" { - return FixFile(env.File, env.Pkg, env.Args), nil - } - // Fix a specific rule - return FixRule(env.File, env.Pkg, env.Rule, env.Args), nil -} - -// CommandInfo provides a command function and info on incoming arguments. -type CommandInfo struct { - Fn func(*Options, CmdEnvironment) (*build.File, error) - PerRule bool - MinArg int - MaxArg int - Template string -} - -// AllCommands associates the command names with their function and number -// of arguments. -var AllCommands = map[string]CommandInfo{ - "add": {cmdAdd, true, 2, -1, " "}, - "new_load": {cmdNewLoad, false, 1, -1, " <[to=]from(s)>"}, - "comment": {cmdComment, true, 1, 3, "? ? "}, - "print_comment": {cmdPrintComment, true, 0, 2, "? ?"}, - "delete": {cmdDelete, true, 0, 0, ""}, - "fix": {cmdFix, true, 0, -1, "?"}, - "move": {cmdMove, true, 3, -1, " "}, - "new": {cmdNew, false, 2, 4, " [(before|after) ]"}, - "print": {cmdPrint, true, 0, -1, ""}, - "remove": {cmdRemove, true, 1, -1, " "}, - "remove_comment": {cmdRemoveComment, true, 0, 2, "? ?"}, - "rename": {cmdRename, true, 2, 2, " "}, - "replace": {cmdReplace, true, 3, 3, " "}, - "substitute": {cmdSubstitute, true, 3, 3, " "}, - "set": {cmdSet, true, 1, -1, " "}, - "set_if_absent": {cmdSetIfAbsent, true, 1, -1, " "}, - "copy": {cmdCopy, true, 2, 2, " "}, - "copy_no_overwrite": {cmdCopyNoOverwrite, true, 2, 2, " "}, - "dict_add": {cmdDictAdd, true, 2, -1, " <(key:value)(s)>"}, - "dict_set": {cmdDictSet, true, 2, -1, " <(key:value)(s)>"}, - "dict_remove": {cmdDictRemove, true, 2, -1, " "}, -} - -func expandTargets(f *build.File, rule string) ([]*build.Rule, error) { - if r := FindRuleByName(f, rule); r != nil { - return []*build.Rule{r}, nil - } else if r := FindExportedFile(f, rule); r != nil { - return []*build.Rule{r}, nil - } else if rule == "all" || rule == "*" { - // "all" is a valid name, it is a wildcard only if no such rule is found. - return f.Rules(""), nil - } else if strings.HasPrefix(rule, "%") { - // "%java_library" will match all java_library functions in the package - // "%" will match the rule which begins at LINENUM. - // This is for convenience, "%" is not a valid character in bazel targets. - kind := rule[1:] - if linenum, err := strconv.Atoi(kind); err == nil { - if r := f.RuleAt(linenum); r != nil { - return []*build.Rule{r}, nil - } - } else { - return f.Rules(kind), nil - } - } - return nil, fmt.Errorf("rule '%s' not found", rule) -} - -func filterRules(opts *Options, rules []*build.Rule) (result []*build.Rule) { - if len(opts.FilterRuleTypes) == 0 { - return rules - } - for _, rule := range rules { - for _, filterType := range opts.FilterRuleTypes { - if rule.Kind() == filterType { - result = append(result, rule) - break - } - } - } - return -} - -// command contains a list of tokens that describe a buildozer command. -type command struct { - tokens []string -} - -// checkCommandUsage checks the number of argument of a command. -// It prints an error and usage when it is not valid. -func checkCommandUsage(name string, cmd CommandInfo, count int) { - if count >= cmd.MinArg && (cmd.MaxArg == -1 || count <= cmd.MaxArg) { - return - } - - if count < cmd.MinArg { - fmt.Fprintf(os.Stderr, "Too few arguments for command '%s', expected at least %d.\n", - name, cmd.MinArg) - } else { - fmt.Fprintf(os.Stderr, "Too many arguments for command '%s', expected at most %d.\n", - name, cmd.MaxArg) - } - Usage() - os.Exit(1) -} - -// Match text that only contains spaces if they're escaped with '\'. -var spaceRegex = regexp.MustCompile(`(\\ |[^ ])+`) - -// SplitOnSpaces behaves like strings.Fields, except that spaces can be escaped. -// " some dummy\\ string" -> ["some", "dummy string"] -func SplitOnSpaces(input string) []string { - result := spaceRegex.FindAllString(input, -1) - for i, s := range result { - result[i] = strings.Replace(s, `\ `, " ", -1) - } - return result -} - -// parseCommands parses commands and targets they should be applied on from -// a list of arguments. -// Each argument can be either: -// - a command (as defined by AllCommands) and its parameters, separated by -// whitespace -// - a target all commands that are parsed during one call to parseCommands -// should be applied on -func parseCommands(args []string) (commands []command, targets []string) { - for _, arg := range args { - commandTokens := SplitOnSpaces(arg) - cmd, found := AllCommands[commandTokens[0]] - if found { - checkCommandUsage(commandTokens[0], cmd, len(commandTokens)-1) - commands = append(commands, command{commandTokens}) - } else { - targets = append(targets, arg) - } - } - return -} - -// commandsForTarget contains commands to be executed on the given target. -type commandsForTarget struct { - target string - commands []command -} - -// commandsForFile contains the file name and all commands that should be -// applied on that file, indexed by their target. -type commandsForFile struct { - file string - commands []commandsForTarget -} - -// commandError returns an error that formats 'err' in the context of the -// commands to be executed on the given target. -func commandError(commands []command, target string, err error) error { - return fmt.Errorf("error while executing commands %s on target %s: %s", commands, target, err) -} - -// rewriteResult contains the outcome of applying fixes to a single file. -type rewriteResult struct { - file string - errs []error - modified bool - records []*apipb.Output_Record -} - -// getGlobalVariables returns the global variable assignments in the provided list of expressions. -// That is, for each variable assignment of the form -// a = v -// vars["a"] will contain the AssignExpr whose RHS value is the assignment "a = v". -func getGlobalVariables(exprs []build.Expr) (vars map[string]*build.AssignExpr) { - vars = make(map[string]*build.AssignExpr) - for _, expr := range exprs { - if as, ok := expr.(*build.AssignExpr); ok { - if lhs, ok := as.LHS.(*build.Ident); ok { - vars[lhs.Name] = as - } - } - } - return vars -} - -// When checking the filesystem, we need to look for any of the -// possible buildFileNames. For historical reasons, the -// parts of the tool that generate paths that we may want to examine -// continue to assume that build files are all named "BUILD". -var buildFileNames = [...]string{"BUILD.bazel", "BUILD", "BUCK"} -var buildFileNamesSet = map[string]bool{ - "BUILD.bazel": true, - "BUILD": true, - "BUCK": true, -} - -// rewrite parses the BUILD file for the given file, transforms the AST, -// and write the changes back in the file (or on stdout). -func rewrite(opts *Options, commandsForFile commandsForFile) *rewriteResult { - name := commandsForFile.file - var data []byte - var err error - var fi os.FileInfo - records := []*apipb.Output_Record{} - if name == stdinPackageName { // read on stdin - data, err = ioutil.ReadAll(os.Stdin) - if err != nil { - return &rewriteResult{file: name, errs: []error{err}} - } - } else { - origName := name - for _, suffix := range buildFileNames { - if strings.HasSuffix(name, "/"+suffix) { - name = strings.TrimSuffix(name, suffix) - break - } - } - for _, suffix := range buildFileNames { - name = name + suffix - data, fi, err = file.ReadFile(name) - if err == nil { - break - } - name = strings.TrimSuffix(name, suffix) - } - if err != nil { - data, fi, err = file.ReadFile(name) - } - if err != nil { - err = errors.New("file not found or not readable") - return &rewriteResult{file: origName, errs: []error{err}} - } - } - - f, err := build.ParseBuild(name, data) - if err != nil { - return &rewriteResult{file: name, errs: []error{err}} - } - - vars := map[string]*build.AssignExpr{} - if opts.EditVariables { - vars = getGlobalVariables(f.Stmt) - } - var errs []error - changed := false - for _, commands := range commandsForFile.commands { - target := commands.target - commands := commands.commands - _, absPkg, rule := InterpretLabelForWorkspaceLocation(opts.RootDir, target) - _, pkg, _ := ParseLabel(target) - if pkg == stdinPackageName { // Special-case: This is already absolute - absPkg = stdinPackageName - } - - targets, err := expandTargets(f, rule) - if err != nil { - cerr := commandError(commands, target, err) - errs = append(errs, cerr) - if !opts.KeepGoing { - return &rewriteResult{file: name, errs: errs, records: records} - - } - } - targets = filterRules(opts, targets) - for _, cmd := range commands { - cmdInfo := AllCommands[cmd.tokens[0]] - // Depending on whether a transformation is rule-specific or not, it should be applied to - // every rule that satisfies the filter or just once to the file. - cmdTargets := targets - if !cmdInfo.PerRule { - cmdTargets = []*build.Rule{nil} - } - for _, r := range cmdTargets { - record := &apipb.Output_Record{} - newf, err := cmdInfo.Fn(opts, CmdEnvironment{f, r, vars, absPkg, cmd.tokens[1:], record}) - if len(record.Fields) != 0 { - records = append(records, record) - } - if err != nil { - cerr := commandError([]command{cmd}, target, err) - if opts.KeepGoing { - errs = append(errs, cerr) - } else { - return &rewriteResult{file: name, errs: []error{cerr}, records: records} - } - } - if newf != nil { - changed = true - f = newf - } - } - } - } - if !changed { - return &rewriteResult{file: name, errs: errs, records: records} - } - f = RemoveEmptyPackage(f) - ndata, err := runBuildifier(opts, f) - if err != nil { - return &rewriteResult{file: name, errs: []error{fmt.Errorf("running buildifier: %v", err)}, records: records} - } - - if opts.Stdout || name == stdinPackageName { - os.Stdout.Write(ndata) - return &rewriteResult{file: name, errs: errs, records: records} - } - - if bytes.Equal(data, ndata) { - return &rewriteResult{file: name, errs: errs, records: records} - } - - if err := EditFile(fi, name); err != nil { - return &rewriteResult{file: name, errs: []error{err}, records: records} - } - - if err := file.WriteFile(name, ndata); err != nil { - return &rewriteResult{file: name, errs: []error{err}, records: records} - } - - fileModified = true - return &rewriteResult{file: name, errs: errs, modified: true, records: records} -} - -// EditFile is a function that does any prework needed before editing a file. -// e.g. "checking out for write" from a locking source control repo. -var EditFile = func(fi os.FileInfo, name string) error { - return nil -} - -// runBuildifier formats the build file f. -// Runs opts.Buildifier if it's non-empty, otherwise uses built-in formatter. -// opts.Buildifier is useful to force consistency with other tools that call Buildifier. -func runBuildifier(opts *Options, f *build.File) ([]byte, error) { - if opts.Buildifier == "" { - build.Rewrite(f, nil) - return build.Format(f), nil - } - - cmd := exec.Command(opts.Buildifier, "--type=build") - data := build.Format(f) - cmd.Stdin = bytes.NewBuffer(data) - stdout := bytes.NewBuffer(nil) - stderr := bytes.NewBuffer(nil) - cmd.Stdout = stdout - cmd.Stderr = stderr - err := cmd.Run() - if stderr.Len() > 0 { - return nil, fmt.Errorf("%s", stderr.Bytes()) - } - if err != nil { - return nil, err - } - return stdout.Bytes(), nil -} - -// Given a target, whose package may contain a trailing "/...", returns all -// extisting BUILD file paths which match the package. -func targetExpressionToBuildFiles(opts *Options, target string) []string { - file, _, _ := InterpretLabelForWorkspaceLocation(opts.RootDir, target) - if opts.RootDir == "" { - var err error - if file, err = filepath.Abs(file); err != nil { - fmt.Printf("Cannot make path absolute: %s\n", err.Error()) - os.Exit(1) - } - } - - if !strings.HasSuffix(file, "/.../BUILD") { - return []string{file} - } - - var buildFiles []string - searchDirs := []string{strings.TrimSuffix(file, "/.../BUILD")} - for len(searchDirs) != 0 { - lastIndex := len(searchDirs) - 1 - dir := searchDirs[lastIndex] - searchDirs = searchDirs[:lastIndex] - - dirFiles, err := ioutil.ReadDir(dir) - if err != nil { - continue - } - - for _, dirFile := range dirFiles { - if dirFile.IsDir() { - searchDirs = append(searchDirs, path.Join(dir, dirFile.Name())) - } else if _, ok := buildFileNamesSet[dirFile.Name()]; ok { - buildFiles = append(buildFiles, path.Join(dir, dirFile.Name())) - } - } - } - - return buildFiles -} - -// appendCommands adds the given commands to be applied to each of the given targets -// via the commandMap. -func appendCommands(opts *Options, commandMap map[string][]commandsForTarget, args []string) { - commands, targets := parseCommands(args) - for _, target := range targets { - if strings.HasSuffix(target, "/BUILD") { - target = strings.TrimSuffix(target, "/BUILD") + ":__pkg__" - } - var buildFiles []string - _, pkg, _ := ParseLabel(target) - if pkg == stdinPackageName { - buildFiles = []string{stdinPackageName} - } else { - buildFiles = targetExpressionToBuildFiles(opts, target) - } - - for _, file := range buildFiles { - commandMap[file] = append(commandMap[file], commandsForTarget{target, commands}) - } - } -} - -func appendCommandsFromFile(opts *Options, commandsByFile map[string][]commandsForTarget, fileName string) { - var reader io.Reader - if opts.CommandsFile == stdinPackageName { - reader = os.Stdin - } else { - rc := file.OpenReadFile(opts.CommandsFile) - reader = rc - defer rc.Close() - } - appendCommandsFromReader(opts, reader, commandsByFile) -} - -func appendCommandsFromReader(opts *Options, reader io.Reader, commandsByFile map[string][]commandsForTarget) { - r := bufio.NewReader(reader) - atEof := false - for !atEof { - line, err := r.ReadString('\n') - if err == io.EOF { - atEof = true - err = nil - } - if err != nil { - fmt.Fprintf(os.Stderr, "Error while reading commands file: %v", err) - return - } - line = strings.TrimSuffix(line, "\n") - if line == "" { - continue - } - args := strings.Split(line, "|") - appendCommands(opts, commandsByFile, args) - } -} - -func printRecord(writer io.Writer, record *apipb.Output_Record) { - fields := record.Fields - line := make([]string, len(fields)) - for i, field := range fields { - switch value := field.Value.(type) { - case *apipb.Output_Record_Field_Text: - if field.QuoteWhenPrinting && strings.ContainsRune(value.Text, ' ') { - line[i] = fmt.Sprintf("%q", value.Text) - } else { - line[i] = value.Text - } - break - case *apipb.Output_Record_Field_Number: - line[i] = strconv.Itoa(int(value.Number)) - break - case *apipb.Output_Record_Field_Error: - switch value.Error { - case apipb.Output_Record_Field_UNKNOWN: - line[i] = "(unknown)" - break - case apipb.Output_Record_Field_MISSING: - line[i] = "(missing)" - break - } - break - case *apipb.Output_Record_Field_List: - line[i] = fmt.Sprintf("[%s]", strings.Join(value.List.Strings, " ")) - break - } - } - - fmt.Fprint(writer, strings.Join(line, " ")+"\n") -} - -// Buildozer loops over all arguments on the command line fixing BUILD files. -func Buildozer(opts *Options, args []string) int { - commandsByFile := make(map[string][]commandsForTarget) - if opts.CommandsFile != "" { - appendCommandsFromFile(opts, commandsByFile, opts.CommandsFile) - } else { - if len(args) == 0 { - Usage() - } - appendCommands(opts, commandsByFile, args) - } - - numFiles := len(commandsByFile) - if opts.Parallelism > 0 { - runtime.GOMAXPROCS(opts.Parallelism) - } - results := make(chan *rewriteResult, numFiles) - data := make(chan commandsForFile) - - for i := 0; i < opts.NumIO; i++ { - go func(results chan *rewriteResult, data chan commandsForFile) { - for commandsForFile := range data { - results <- rewrite(opts, commandsForFile) - } - }(results, data) - } - - for file, commands := range commandsByFile { - data <- commandsForFile{file, commands} - } - close(data) - records := []*apipb.Output_Record{} - hasErrors := false - for i := 0; i < numFiles; i++ { - fileResults := <-results - if fileResults == nil { - continue - } - hasErrors = hasErrors || len(fileResults.errs) > 0 - for _, err := range fileResults.errs { - fmt.Fprintf(os.Stderr, "%s: %s\n", fileResults.file, err) - } - if fileResults.modified && !opts.Quiet { - fmt.Fprintf(os.Stderr, "fixed %s\n", fileResults.file) - } - if fileResults.records != nil { - records = append(records, fileResults.records...) - } - } - - if opts.IsPrintingProto { - data, err := proto.Marshal(&apipb.Output{Records: records}) - if err != nil { - log.Fatal("marshaling error: ", err) - } - fmt.Fprintf(os.Stdout, "%s", data) - } else { - for _, record := range records { - printRecord(os.Stdout, record) - } - } - - if hasErrors { - return 2 - } - if !fileModified && !opts.Stdout { - return 3 - } - return 0 -} diff --git a/vendor/github.com/bazelbuild/buildtools/edit/edit.go b/vendor/github.com/bazelbuild/buildtools/edit/edit.go deleted file mode 100644 index 2d394d8caed..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/edit/edit.go +++ /dev/null @@ -1,1104 +0,0 @@ -/* -Copyright 2016 Google Inc. 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 edit provides high-level auxiliary functions for AST manipulation -// on BUILD files. -package edit - -import ( - "fmt" - "os" - "path" - "path/filepath" - "regexp" - "sort" - "strconv" - "strings" - - "github.com/bazelbuild/buildtools/build" - "github.com/bazelbuild/buildtools/tables" - "github.com/bazelbuild/buildtools/wspace" -) - -var ( - // ShortenLabelsFlag if true converts added labels to short form , e.g. //foo:bar => :bar - ShortenLabelsFlag = true - // DeleteWithComments if true a list attribute will be be deleted in ListDelete, even if there is a comment attached to it - DeleteWithComments = true -) - -// ParseLabel parses a Blaze label (eg. //devtools/buildozer:rule), and returns -// the repo name ("" for the main repo), package (with leading slashes trimmed) -// and rule name (e.g. ["", "devtools/buildozer", "rule"]). -func ParseLabel(target string) (string, string, string) { - repo := "" - if strings.HasPrefix(target, "@") { - target = strings.TrimLeft(target, "@") - parts := strings.SplitN(target, "/", 2) - if len(parts) == 1 { - // "@foo" -> "foo", "", "foo" (ie @foo//:foo) - return target, "", target - } - repo = parts[0] - target = "/" + parts[1] - } - // TODO(bazel-team): check if the next line can now be deleted - target = strings.TrimRight(target, ":") // labels can end with ':' - parts := strings.SplitN(target, ":", 2) - parts[0] = strings.TrimPrefix(parts[0], "//") - if len(parts) == 1 { - if strings.HasPrefix(target, "//") || tables.StripLabelLeadingSlashes { - // "//absolute/pkg" -> "absolute/pkg", "pkg" - return repo, parts[0], path.Base(parts[0]) - } - // "relative/label" -> "", "relative/label" - return repo, "", parts[0] - } - return repo, parts[0], parts[1] -} - -// ShortenLabel rewrites labels to use the canonical form (the form -// recommended by build-style). This behavior can be disabled using the -// --noshorten_labels flag for projects that consistently use long-form labels. -// "//foo/bar:bar" => "//foo/bar", or ":bar" when possible. -func ShortenLabel(label string, pkg string) string { - if !ShortenLabelsFlag { - return label - } - if !strings.Contains(label, "//") { - // It doesn't look like a long label, so we preserve it. - return label - } - repo, labelPkg, rule := ParseLabel(label) - if repo == "" && labelPkg == pkg { // local label - return ":" + rule - } - slash := strings.LastIndex(labelPkg, "/") - if (slash >= 0 && labelPkg[slash+1:] == rule) || labelPkg == rule { - if repo == "" { - return "//" + labelPkg - } - return "@" + repo + "//" + labelPkg - } - if strings.HasPrefix(label, "@") && repo == rule && labelPkg == "" { - return "@" + repo - } - return label -} - -// LabelsEqual returns true if label1 and label2 are equal. The function -// takes care of the optional ":" prefix and differences between long-form -// labels and local labels. -func LabelsEqual(label1, label2, pkg string) bool { - str1 := strings.TrimPrefix(ShortenLabel(label1, pkg), ":") - str2 := strings.TrimPrefix(ShortenLabel(label2, pkg), ":") - return str1 == str2 -} - -// isFile returns true if the path refers to a regular file after following -// symlinks. -func isFile(path string) bool { - path, err := filepath.EvalSymlinks(path) - if err != nil { - return false - } - info, err := os.Stat(path) - if err != nil { - return false - } - return info.Mode().IsRegular() -} - -// InterpretLabelForWorkspaceLocation returns the name of the BUILD file to -// edit, the full package name, and the rule. It takes a workspace-rooted -// directory to use. -func InterpretLabelForWorkspaceLocation(root string, target string) (buildFile string, pkg string, rule string) { - repo, pkg, rule := ParseLabel(target) - rootDir, relativePath := wspace.FindWorkspaceRoot(root) - if repo != "" { - files, err := wspace.FindRepoBuildFiles(rootDir) - if err == nil { - if buildFile, ok := files[repo]; ok { - return buildFile, pkg, rule - } - } - // TODO(rodrigoq): report error for other repos - } - - if strings.HasPrefix(target, "//") { - buildFile = path.Join(rootDir, pkg, "BUILD") - return - } - if isFile(pkg) { - // allow operation on other files like WORKSPACE - buildFile = pkg - pkg = path.Join(relativePath, filepath.Dir(pkg)) - return - } - if pkg != "" { - buildFile = pkg + "/BUILD" - } else { - buildFile = "BUILD" - } - pkg = path.Join(relativePath, pkg) - return -} - -// InterpretLabel returns the name of the BUILD file to edit, the full -// package name, and the rule. It uses the pwd for resolving workspace file paths. -func InterpretLabel(target string) (buildFile string, pkg string, rule string) { - return InterpretLabelForWorkspaceLocation("", target) -} - -// ExprToRule returns a Rule from an Expr. -// The boolean is false iff the Expr is not a function call, or does not have -// the expected kind. -func ExprToRule(expr build.Expr, kind string) (*build.Rule, bool) { - call, ok := expr.(*build.CallExpr) - if !ok { - return nil, false - } - k, ok := call.X.(*build.Ident) - if !ok || k.Name != kind { - return nil, false - } - return &build.Rule{call, ""}, true -} - -// ExistingPackageDeclaration returns the package declaration, or nil if there is none. -func ExistingPackageDeclaration(f *build.File) *build.Rule { - for _, stmt := range f.Stmt { - if rule, ok := ExprToRule(stmt, "package"); ok { - return rule - } - } - return nil -} - -// PackageDeclaration returns the package declaration. If it doesn't -// exist, it is created at the top of the BUILD file, after optional -// docstring, comments, and load statements. -func PackageDeclaration(f *build.File) *build.Rule { - if pkg := ExistingPackageDeclaration(f); pkg != nil { - return pkg - } - all := []build.Expr{} - added := false - call := &build.CallExpr{X: &build.Ident{Name: "package"}} - for _, stmt := range f.Stmt { - switch stmt.(type) { - case *build.CommentBlock, *build.LoadStmt, *build.StringExpr: - // Skip docstring, comments, and load statements to - // find a place to insert the package declaration. - default: - if !added { - all = append(all, call) - added = true - } - } - all = append(all, stmt) - } - if !added { // In case the file is empty. - all = append(all, call) - } - f.Stmt = all - return &build.Rule{call, ""} -} - -// RemoveEmptyPackage removes empty package declarations from the file, i.e.: -// package() -// This might appear because of a buildozer transformation (e.g. when removing a package -// attribute). Removing it is required for the file to be valid. -func RemoveEmptyPackage(f *build.File) *build.File { - var all []build.Expr - for _, stmt := range f.Stmt { - if call, ok := stmt.(*build.CallExpr); ok { - functionName, ok := call.X.(*build.Ident) - if ok && functionName.Name == "package" && len(call.List) == 0 { - continue - } - } - all = append(all, stmt) - } - return &build.File{Path: f.Path, Comments: f.Comments, Stmt: all, Type: build.TypeBuild} -} - -// InsertAfter inserts an expression after index i. -func InsertAfter(i int, stmt []build.Expr, expr build.Expr) []build.Expr { - i = i + 1 // index after the element at i - result := make([]build.Expr, len(stmt)+1) - copy(result[0:i], stmt[0:i]) - result[i] = expr - copy(result[i+1:], stmt[i:]) - return result -} - -// IndexOfLast finds the index of the last expression of a specific kind. -func IndexOfLast(stmt []build.Expr, Kind string) int { - lastIndex := -1 - for i, s := range stmt { - sAsCallExpr, ok := s.(*build.CallExpr) - if !ok { - continue - } - literal, ok := sAsCallExpr.X.(*build.Ident) - if ok && literal.Name == Kind { - lastIndex = i - } - } - return lastIndex -} - -// InsertAfterLastOfSameKind inserts an expression after the last expression of the same kind. -func InsertAfterLastOfSameKind(stmt []build.Expr, expr *build.CallExpr) []build.Expr { - index := IndexOfLast(stmt, expr.X.(*build.Ident).Name) - if index == -1 { - return InsertAtEnd(stmt, expr) - } - return InsertAfter(index, stmt, expr) -} - -// InsertAtEnd inserts an expression at the end of a list, before trailing comments. -func InsertAtEnd(stmt []build.Expr, expr build.Expr) []build.Expr { - var i int - for i = len(stmt) - 1; i >= 0; i-- { - _, ok := stmt[i].(*build.CommentBlock) - if !ok { - break - } - } - return InsertAfter(i, stmt, expr) -} - -// FindRuleByName returns the rule in the file that has the given name. -// If the name is "__pkg__", it returns the global package declaration. -func FindRuleByName(f *build.File, name string) *build.Rule { - if name == "__pkg__" { - return PackageDeclaration(f) - } - _, rule := IndexOfRuleByName(f, name) - return rule -} - -// IndexOfRuleByName returns the index (in f.Stmt) of the CallExpr which defines a rule named `name`, or -1 if it doesn't exist. -func IndexOfRuleByName(f *build.File, name string) (int, *build.Rule) { - linenum := -1 - if strings.HasPrefix(name, "%") { - // "%" will match the rule which begins at LINENUM. - // This is for convenience, "%" is not a valid character in bazel targets. - if result, err := strconv.Atoi(name[1:]); err == nil { - linenum = result - } - } - - for i, stmt := range f.Stmt { - call, ok := stmt.(*build.CallExpr) - if !ok { - continue - } - r := f.Rule(call) - start, _ := call.X.Span() - if r.Name() == name || start.Line == linenum { - return i, r - } - } - return -1, nil -} - -// FindExportedFile returns the first exports_files call which contains the -// file 'name', or nil if not found -func FindExportedFile(f *build.File, name string) *build.Rule { - for _, r := range f.Rules("exports_files") { - if len(r.Call.List) == 0 { - continue - } - pkg := "" // Files are not affected by the package name - if ListFind(r.Call.List[0], name, pkg) != nil { - return r - } - } - return nil -} - -// DeleteRule returns the AST without the specified rule -func DeleteRule(f *build.File, rule *build.Rule) *build.File { - var all []build.Expr - for _, stmt := range f.Stmt { - if stmt == rule.Call { - continue - } - all = append(all, stmt) - } - return &build.File{Path: f.Path, Comments: f.Comments, Stmt: all, Type: build.TypeBuild} -} - -// DeleteRuleByName returns the AST without the rules that have the -// given name. -func DeleteRuleByName(f *build.File, name string) *build.File { - var all []build.Expr - for _, stmt := range f.Stmt { - call, ok := stmt.(*build.CallExpr) - if !ok { - all = append(all, stmt) - continue - } - r := f.Rule(call) - if r.Name() != name { - all = append(all, stmt) - } - } - return &build.File{Path: f.Path, Comments: f.Comments, Stmt: all, Type: build.TypeBuild} -} - -// DeleteRuleByKind removes the rules of the specified kind from the AST. -// Returns an updated copy of f. -func DeleteRuleByKind(f *build.File, kind string) *build.File { - var all []build.Expr - for _, stmt := range f.Stmt { - call, ok := stmt.(*build.CallExpr) - if !ok { - all = append(all, stmt) - continue - } - k, ok := call.X.(*build.Ident) - if !ok || k.Name != kind { - all = append(all, stmt) - } - } - return &build.File{Path: f.Path, Comments: f.Comments, Stmt: all, Type: build.TypeBuild} -} - -// AllLists returns all the lists concatenated in an expression. -// For example, in: glob(["*.go"]) + [":rule"] -// the function will return [[":rule"]]. -func AllLists(e build.Expr) []*build.ListExpr { - switch e := e.(type) { - case *build.ListExpr: - return []*build.ListExpr{e} - case *build.BinaryExpr: - if e.Op == "+" { - return append(AllLists(e.X), AllLists(e.Y)...) - } - } - return nil -} - -// AllSelects returns all the selects concatenated in an expression. -func AllSelects(e build.Expr) []*build.CallExpr { - switch e := e.(type) { - case *build.BinaryExpr: - if e.Op == "+" { - return append(AllSelects(e.X), AllSelects(e.Y)...) - } - case *build.CallExpr: - if x, ok := e.X.(*build.Ident); ok && x.Name == "select" { - return []*build.CallExpr{e} - } - } - return nil -} - -// FirstList works in the same way as AllLists, except that it -// returns only one list, or nil. -func FirstList(e build.Expr) *build.ListExpr { - switch e := e.(type) { - case *build.ListExpr: - return e - case *build.BinaryExpr: - if e.Op == "+" { - li := FirstList(e.X) - if li == nil { - return FirstList(e.Y) - } - return li - } - } - return nil -} - -// AllStrings returns all the string literals concatenated in an expression. -// For example, in: "foo" + x + "bar" -// the function will return ["foo", "bar"]. -func AllStrings(e build.Expr) []*build.StringExpr { - switch e := e.(type) { - case *build.StringExpr: - return []*build.StringExpr{e} - case *build.BinaryExpr: - if e.Op == "+" { - return append(AllStrings(e.X), AllStrings(e.Y)...) - } - } - return nil -} - -// ListFind looks for a string in the list expression (which may be a -// concatenation of lists). It returns the element if it is found. nil -// otherwise. -func ListFind(e build.Expr, item string, pkg string) *build.StringExpr { - item = ShortenLabel(item, pkg) - for _, li := range AllLists(e) { - for _, elem := range li.List { - str, ok := elem.(*build.StringExpr) - if ok && LabelsEqual(str.Value, item, pkg) { - return str - } - } - } - return nil -} - -// hasComments returns whether the StringExpr literal has a comment attached to it. -func hasComments(literal *build.StringExpr) bool { - return len(literal.Before) > 0 || len(literal.Suffix) > 0 -} - -// ContainsComments returns whether the expr has a comment that includes str. -func ContainsComments(expr build.Expr, str string) bool { - str = strings.ToLower(str) - com := expr.Comment() - comments := append(com.Before, com.Suffix...) - comments = append(comments, com.After...) - for _, c := range comments { - if strings.Contains(strings.ToLower(c.Token), str) { - return true - } - } - return false -} - -// RemoveEmptySelectsAndConcatLists iterates the tree in order to turn -// empty selects into empty lists and adjacent lists are concatenated -func RemoveEmptySelectsAndConcatLists(e build.Expr) build.Expr { - switch e := e.(type) { - case *build.BinaryExpr: - if e.Op == "+" { - e.X = RemoveEmptySelectsAndConcatLists(e.X) - e.Y = RemoveEmptySelectsAndConcatLists(e.Y) - - x, xIsList := e.X.(*build.ListExpr) - y, yIsList := e.Y.(*build.ListExpr) - - if xIsList && yIsList { - return &build.ListExpr{List: append(x.List, y.List...)} - } - - if xIsList && len(x.List) == 0 { - return e.Y - } - - if yIsList && len(y.List) == 0 { - return e.X - } - } - case *build.CallExpr: - if x, ok := e.X.(*build.Ident); ok && x.Name == "select" { - if len(e.List) == 0 { - return &build.ListExpr{List: []build.Expr{}} - } - - if dict, ok := e.List[0].(*build.DictExpr); ok { - for _, keyVal := range dict.List { - if keyVal, ok := keyVal.(*build.KeyValueExpr); ok { - val, ok := keyVal.Value.(*build.ListExpr) - if !ok || len(val.List) > 0 { - return e - } - } else { - return e - } - } - - return &build.ListExpr{List: []build.Expr{}} - } - } - } - - return e -} - -// ComputeIntersection returns the intersection of the two lists given as parameters; -// if the containing elements are not build.StringExpr, the result will be nil. -func ComputeIntersection(list1, list2 []build.Expr) []build.Expr { - if list1 == nil || list2 == nil { - return nil - } - - if len(list2) == 0 { - return []build.Expr{} - } - - i := 0 - for j, common := range list1 { - if common, ok := common.(*build.StringExpr); ok { - found := false - for _, elem := range list2 { - if str, ok := elem.(*build.StringExpr); ok { - if str.Value == common.Value { - found = true - break - } - } else { - return nil - } - } - - if found { - list1[i] = list1[j] - i++ - } - } else { - return nil - } - } - return list1[:i] -} - -// SelectListsIntersection returns the intersection of the lists of strings inside -// the dictionary argument of the select expression given as a parameter -func SelectListsIntersection(sel *build.CallExpr, pkg string) (intersection []build.Expr) { - if len(sel.List) == 0 || len(sel.List) > 1 { - return nil - } - - dict, ok := sel.List[0].(*build.DictExpr) - if !ok || len(dict.List) == 0 { - return nil - } - - if keyVal, ok := dict.List[0].(*build.KeyValueExpr); ok { - if val, ok := keyVal.Value.(*build.ListExpr); ok { - intersection = make([]build.Expr, len(val.List)) - copy(intersection, val.List) - } - } - - for _, keyVal := range dict.List[1:] { - if keyVal, ok := keyVal.(*build.KeyValueExpr); ok { - if val, ok := keyVal.Value.(*build.ListExpr); ok { - intersection = ComputeIntersection(intersection, val.List) - if len(intersection) == 0 { - return intersection - } - } else { - return nil - } - } else { - return nil - } - } - - return intersection -} - -// ResolveAttr extracts common elements of the lists inside select dictionaries -// and adds them at attribute level rather than select level, as well as turns -// empty selects into empty lists and concatenates adjacent lists -func ResolveAttr(r *build.Rule, attr, pkg string) { - var toExtract []build.Expr - - e := r.Attr(attr) - if e == nil { - return - } - - for _, sel := range AllSelects(e) { - intersection := SelectListsIntersection(sel, pkg) - if intersection != nil { - toExtract = append(toExtract, intersection...) - } - } - - for _, common := range toExtract { - e = AddValueToList(e, pkg, common, false) // this will also remove them from selects - } - - r.SetAttr(attr, RemoveEmptySelectsAndConcatLists(e)) -} - -// SelectDelete removes the item from all the lists which are values -// in the dictionary of every select -func SelectDelete(e build.Expr, item, pkg string, deleted **build.StringExpr) { - for _, sel := range AllSelects(e) { - if len(sel.List) == 0 { - continue - } - - if dict, ok := sel.List[0].(*build.DictExpr); ok { - for _, keyVal := range dict.List { - if keyVal, ok := keyVal.(*build.KeyValueExpr); ok { - if val, ok := keyVal.Value.(*build.ListExpr); ok { - RemoveFromList(val, item, pkg, deleted) - } - } - } - } - } -} - -// RemoveFromList removes one element from a ListExpr and stores -// the deleted StringExpr at the address pointed by the last parameter -func RemoveFromList(li *build.ListExpr, item, pkg string, deleted **build.StringExpr) { - var all []build.Expr - for _, elem := range li.List { - if str, ok := elem.(*build.StringExpr); ok { - if LabelsEqual(str.Value, item, pkg) && (DeleteWithComments || !hasComments(str)) { - if deleted != nil { - *deleted = str - } - - continue - } - } - all = append(all, elem) - } - li.List = all -} - -// ListDelete deletes the item from a list expression in e and returns -// the StringExpr deleted, or nil otherwise. -func ListDelete(e build.Expr, item, pkg string) (deleted *build.StringExpr) { - if unquoted, _, err := build.Unquote(item); err == nil { - item = unquoted - } - deleted = nil - item = ShortenLabel(item, pkg) - for _, li := range AllLists(e) { - RemoveFromList(li, item, pkg, &deleted) - } - - SelectDelete(e, item, pkg, &deleted) - - return deleted -} - -// ListAttributeDelete deletes string item from list attribute attr, deletes attr if empty, -// and returns the StringExpr deleted, or nil otherwise. -func ListAttributeDelete(rule *build.Rule, attr, item, pkg string) *build.StringExpr { - deleted := ListDelete(rule.Attr(attr), item, pkg) - if deleted != nil { - if listExpr, ok := rule.Attr(attr).(*build.ListExpr); ok && len(listExpr.List) == 0 { - rule.DelAttr(attr) - } - } - return deleted -} - -// ListReplace replaces old with value in all lists in e and returns a Boolean -// to indicate whether the replacement was successful. -func ListReplace(e build.Expr, old, value, pkg string) bool { - replaced := false - old = ShortenLabel(old, pkg) - for _, li := range AllLists(e) { - for k, elem := range li.List { - str, ok := elem.(*build.StringExpr) - if !ok || !LabelsEqual(str.Value, old, pkg) { - continue - } - li.List[k] = &build.StringExpr{Value: ShortenLabel(value, pkg), Comments: *elem.Comment()} - replaced = true - } - } - return replaced -} - -// ListSubstitute replaces strings matching a regular expression in all lists -// in e and returns a Boolean to indicate whether the replacement was -// successful. -func ListSubstitute(e build.Expr, oldRegexp *regexp.Regexp, newTemplate string) bool { - substituted := false - for _, li := range AllLists(e) { - for k, elem := range li.List { - str, ok := elem.(*build.StringExpr) - if !ok { - continue - } - newValue, ok := stringSubstitute(str.Value, oldRegexp, newTemplate) - if ok { - li.List[k] = &build.StringExpr{Value: newValue, Comments: *elem.Comment()} - substituted = true - } - } - } - return substituted -} - -func stringSubstitute(oldValue string, oldRegexp *regexp.Regexp, newTemplate string) (string, bool) { - match := oldRegexp.FindStringSubmatchIndex(oldValue) - if match == nil { - return oldValue, false - } - newValue := string(oldRegexp.ExpandString(nil, newTemplate, oldValue, match)) - if match[0] > 0 { - newValue = oldValue[:match[0]] + newValue - } - if match[1] < len(oldValue) { - newValue = newValue + oldValue[match[1]:] - } - return newValue, true -} - -// isExprLessThan compares two Expr statements. Currently, only labels are supported. -func isExprLessThan(x1, x2 build.Expr) bool { - str1, ok1 := x1.(*build.StringExpr) - str2, ok2 := x2.(*build.StringExpr) - if ok1 != ok2 { - return ok2 - } - if ok1 && ok2 { - // Labels starting with // are put at the end. - pre1 := strings.HasPrefix(str1.Value, "//") - pre2 := strings.HasPrefix(str2.Value, "//") - if pre1 != pre2 { - return pre2 - } - return str1.Value < str2.Value - } - return false -} - -func sortedInsert(list []build.Expr, item build.Expr) []build.Expr { - i := 0 - for ; i < len(list); i++ { - if isExprLessThan(item, list[i]) { - break - } - } - res := make([]build.Expr, 0, len(list)+1) - res = append(res, list[:i]...) - res = append(res, item) - res = append(res, list[i:]...) - return res -} - -// attributeMustNotBeSorted returns true if the list in the attribute cannot be -// sorted. For some attributes, it makes sense to try to do a sorted insert -// (e.g. deps), even when buildifier will not sort it for conservative reasons. -// For a few attributes, sorting will never make sense. -func attributeMustNotBeSorted(rule, attr string) bool { - // TODO(bazel-team): Come up with a more complete list. - return attr == "args" -} - -// getVariable returns the binary expression that assignes a variable to expr, if expr is -// an identifier of a variable that vars contains a mapping for. -func getVariable(expr build.Expr, vars *map[string]*build.AssignExpr) (varAssignment *build.AssignExpr) { - if vars == nil { - return nil - } - - if literal, ok := expr.(*build.Ident); ok { - if varAssignment = (*vars)[literal.Name]; varAssignment != nil { - return varAssignment - } - } - return nil -} - -// AddValueToList adds a value to a list. If the expression is -// not a list, a list with a single element is appended to the original -// expression. -func AddValueToList(oldList build.Expr, pkg string, item build.Expr, sorted bool) build.Expr { - if oldList == nil { - return &build.ListExpr{List: []build.Expr{item}} - } - - str, ok := item.(*build.StringExpr) - if ok { - if ListFind(oldList, str.Value, pkg) != nil { - // The value is already in the list. - return oldList - } - SelectDelete(oldList, str.Value, pkg, nil) - } - - li := FirstList(oldList) - if li != nil { - if sorted { - li.List = sortedInsert(li.List, item) - } else { - li.List = append(li.List, item) - } - return oldList - } - list := &build.ListExpr{List: []build.Expr{item}} - concat := &build.BinaryExpr{Op: "+", X: oldList, Y: list} - return concat -} - -// AddValueToListAttribute adds the given item to the list attribute identified by name and pkg. -func AddValueToListAttribute(r *build.Rule, name string, pkg string, item build.Expr, vars *map[string]*build.AssignExpr) { - old := r.Attr(name) - sorted := !attributeMustNotBeSorted(r.Kind(), name) - if varAssignment := getVariable(old, vars); varAssignment != nil { - varAssignment.RHS = AddValueToList(varAssignment.RHS, pkg, item, sorted) - } else { - r.SetAttr(name, AddValueToList(old, pkg, item, sorted)) - } -} - -// MoveAllListAttributeValues moves all values from list attribute oldAttr to newAttr, -// and deletes oldAttr. -func MoveAllListAttributeValues(rule *build.Rule, oldAttr, newAttr, pkg string, vars *map[string]*build.AssignExpr) error { - if rule.Attr(oldAttr) == nil { - return fmt.Errorf("no attribute %s found in %s", oldAttr, rule.Name()) - } - if rule.Attr(newAttr) == nil { - RenameAttribute(rule, oldAttr, newAttr) - return nil - } - if listExpr, ok := rule.Attr(oldAttr).(*build.ListExpr); ok { - for _, val := range listExpr.List { - AddValueToListAttribute(rule, newAttr, pkg, val, vars) - } - rule.DelAttr(oldAttr) - return nil - } - return fmt.Errorf("%s already exists and %s is not a simple list", newAttr, oldAttr) -} - -// DictionarySet looks for the key in the dictionary expression. If value is not nil, -// it replaces the current value with it. In all cases, it returns the current value. -func DictionarySet(dict *build.DictExpr, key string, value build.Expr) build.Expr { - for _, e := range dict.List { - kv, _ := e.(*build.KeyValueExpr) - if k, ok := kv.Key.(*build.StringExpr); ok && k.Value == key { - if value != nil { - kv.Value = value - } - return kv.Value - } - } - if value != nil { - kv := &build.KeyValueExpr{Key: &build.StringExpr{Value: key}, Value: value} - dict.List = append(dict.List, kv) - } - return nil -} - -// DictionaryGet looks for the key in the dictionary expression, and returns the -// current value. If it is unset, it returns nil. -func DictionaryGet(dict *build.DictExpr, key string) build.Expr { - for _, e := range dict.List { - kv, ok := e.(*build.KeyValueExpr) - if !ok { - continue - } - if k, ok := kv.Key.(*build.StringExpr); ok && k.Value == key { - return kv.Value - } - } - return nil -} - -// DictionaryDelete looks for the key in the dictionary expression. If the key exists, -// it removes the key-value pair and returns it. Otherwise it returns nil. -func DictionaryDelete(dict *build.DictExpr, key string) (deleted build.Expr) { - if unquoted, _, err := build.Unquote(key); err == nil { - key = unquoted - } - deleted = nil - var all []build.Expr - for _, e := range dict.List { - kv, _ := e.(*build.KeyValueExpr) - if k, ok := kv.Key.(*build.StringExpr); ok { - if k.Value == key { - deleted = kv - } else { - all = append(all, e) - } - } - } - dict.List = all - return deleted -} - -// RenameAttribute renames an attribute in a rule. -func RenameAttribute(r *build.Rule, oldName, newName string) error { - if r.Attr(newName) != nil { - return fmt.Errorf("attribute %s already exists in rule %s", newName, r.Name()) - } - for _, kv := range r.Call.List { - as, ok := kv.(*build.AssignExpr) - if !ok { - continue - } - k, ok := as.LHS.(*build.Ident) - if !ok || k.Name != oldName { - continue - } - k.Name = newName - return nil - } - return fmt.Errorf("no attribute %s found in rule %s", oldName, r.Name()) -} - -// EditFunction is a wrapper around build.Edit. The callback is called only on -// functions 'name'. -func EditFunction(v build.Expr, name string, f func(x *build.CallExpr, stk []build.Expr) build.Expr) build.Expr { - return build.Edit(v, func(expr build.Expr, stk []build.Expr) build.Expr { - call, ok := expr.(*build.CallExpr) - if !ok { - return nil - } - fct, ok := call.X.(*build.Ident) - if !ok || fct.Name != name { - return nil - } - return f(call, stk) - }) -} - -// UsedSymbols returns the set of symbols used in the BUILD file (variables, function names). -func UsedSymbols(stmt build.Expr) map[string]bool { - symbols := make(map[string]bool) - build.Walk(stmt, func(expr build.Expr, stack []build.Expr) { - // Don't traverse inside load statements - if len(stack) > 0 { - if _, ok := stack[len(stack)-1].(*build.LoadStmt); ok { - return - } - } - - literal, ok := expr.(*build.Ident) - if !ok { - return - } - // Check if we are on the left-side of an assignment - for _, e := range stack { - if as, ok := e.(*build.AssignExpr); ok { - if as.LHS == expr { - return - } - } - } - symbols[literal.Name] = true - }) - return symbols -} - -// NewLoad creates a new LoadStmt node -func NewLoad(location string, from, to []string) *build.LoadStmt { - load := &build.LoadStmt{ - Module: &build.StringExpr{ - Value: location, - }, - ForceCompact: true, - } - for i := range from { - load.From = append(load.From, &build.Ident{Name: from[i]}) - load.To = append(load.To, &build.Ident{Name: to[i]}) - } - return load -} - -// AppendToLoad appends symbols to an existing load statement -// Returns true if the statement was acually edited (if the required symbols haven't been -// loaded yet) -func AppendToLoad(load *build.LoadStmt, from, to []string) bool { - symbolsToLoad := make(map[string]string) - for i, s := range to { - symbolsToLoad[s] = from[i] - } - for _, ident := range load.To { - delete(symbolsToLoad, ident.Name) // Already loaded. - } - - if len(symbolsToLoad) == 0 { - return false - } - - // Append the remaining loads to the load statement. - sortedSymbols := []string{} - for s := range symbolsToLoad { - sortedSymbols = append(sortedSymbols, s) - } - sort.Strings(sortedSymbols) - for _, s := range sortedSymbols { - load.From = append(load.From, &build.Ident{Name: symbolsToLoad[s]}) - load.To = append(load.To, &build.Ident{Name: s}) - } - return true -} - -// appendLoad tries to find an existing load location and append symbols to it. -func appendLoad(stmts []build.Expr, location string, from, to []string) bool { - symbolsToLoad := make(map[string]string) - for i, s := range to { - symbolsToLoad[s] = from[i] - } - var lastLoad *build.LoadStmt - for _, s := range stmts { - load, ok := s.(*build.LoadStmt) - if !ok { - continue - } - if load.Module.Value != location { - continue // Loads a different file. - } - for _, ident := range load.To { - delete(symbolsToLoad, ident.Name) // Already loaded. - } - // Remember the last insert location, but potentially remove more symbols - // that are already loaded in other subsequent calls. - lastLoad = load - } - if lastLoad == nil { - return false - } - - // Append the remaining loads to the last load location. - from = []string{} - to = []string{} - for t, f := range symbolsToLoad { - from = append(from, f) - to = append(to, t) - } - AppendToLoad(lastLoad, from, to) - return true -} - -// InsertLoad inserts a load statement at the top of the list of statements. -// The load statement is constructed using a string location and two slices of from- and to-symbols. -// The function panics if the slices aren't of the same lentgh. Symbols that are already loaded -// from the given filepath are ignored. If stmts already contains a load for the -// location in arguments, appends the symbols to load to it. -func InsertLoad(stmts []build.Expr, location string, from, to []string) []build.Expr { - if len(from) != len(to) { - panic(fmt.Errorf("length mismatch: %v (from) and %v (to)", len(from), len(to))) - } - - if appendLoad(stmts, location, from, to) { - return stmts - } - - load := NewLoad(location, from, to) - - var all []build.Expr - added := false - for i, stmt := range stmts { - _, isComment := stmt.(*build.CommentBlock) - _, isString := stmt.(*build.StringExpr) - isDocString := isString && i == 0 - if isComment || isDocString || added { - all = append(all, stmt) - continue - } - all = append(all, load) - all = append(all, stmt) - added = true - } - if !added { // Empty file or just comments. - all = append(all, load) - } - return all -} diff --git a/vendor/github.com/bazelbuild/buildtools/edit/fix.go b/vendor/github.com/bazelbuild/buildtools/edit/fix.go deleted file mode 100644 index 51bada13ba8..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/edit/fix.go +++ /dev/null @@ -1,574 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ -// Functions to clean and fix BUILD files - -package edit - -import ( - "regexp" - "sort" - "strings" - - "github.com/bazelbuild/buildtools/build" -) - -// splitOptionsWithSpaces is a cleanup function. -// It splits options strings that contain a space. This change -// should be safe as Blaze is splitting those strings, but we will -// eventually get rid of this misfeature. -// eg. it converts from: -// copts = ["-Dfoo -Dbar"] -// to: -// copts = ["-Dfoo", "-Dbar"] -func splitOptionsWithSpaces(_ *build.File, r *build.Rule, _ string) bool { - var attrToRewrite = []string{ - "copts", - "linkopts", - } - fixed := false - for _, attrName := range attrToRewrite { - attr := r.Attr(attrName) - if attr != nil { - for _, li := range AllLists(attr) { - fixed = splitStrings(li) || fixed - } - } - } - return fixed -} - -func splitStrings(list *build.ListExpr) bool { - var all []build.Expr - fixed := false - for _, e := range list.List { - str, ok := e.(*build.StringExpr) - if !ok { - all = append(all, e) - continue - } - if strings.Contains(str.Value, " ") && !strings.Contains(str.Value, "'\"") { - fixed = true - for i, substr := range strings.Fields(str.Value) { - item := &build.StringExpr{Value: substr} - if i == 0 { - item.Comments = str.Comments - } - all = append(all, item) - } - } else { - all = append(all, str) - } - } - list.List = all - return fixed -} - -// shortenLabels rewrites the labels in the rule using the short notation. -func shortenLabels(_ *build.File, r *build.Rule, pkg string) bool { - fixed := false - for _, attr := range r.AttrKeys() { - e := r.Attr(attr) - if !ContainsLabels(attr) { - continue - } - for _, li := range AllLists(e) { - for _, elem := range li.List { - str, ok := elem.(*build.StringExpr) - if ok && str.Value != ShortenLabel(str.Value, pkg) { - str.Value = ShortenLabel(str.Value, pkg) - fixed = true - } - } - } - } - return fixed -} - -// removeVisibility removes useless visibility attributes. -func removeVisibility(f *build.File, r *build.Rule, pkg string) bool { - pkgDecl := PackageDeclaration(f) - defaultVisibility := pkgDecl.AttrStrings("default_visibility") - - // If no default_visibility is given, it is implicitly private. - if len(defaultVisibility) == 0 { - defaultVisibility = []string{"//visibility:private"} - } - - visibility := r.AttrStrings("visibility") - if len(visibility) == 0 || len(visibility) != len(defaultVisibility) { - return false - } - sort.Strings(defaultVisibility) - sort.Strings(visibility) - for i, vis := range visibility { - if vis != defaultVisibility[i] { - return false - } - } - r.DelAttr("visibility") - return true -} - -// removeTestOnly removes the useless testonly attributes. -func removeTestOnly(f *build.File, r *build.Rule, pkg string) bool { - pkgDecl := PackageDeclaration(f) - - def := strings.HasSuffix(r.Kind(), "_test") || r.Kind() == "test_suite" - if !def { - if pkgDecl.Attr("default_testonly") == nil { - def = strings.HasPrefix(pkg, "javatests/") - } else if pkgDecl.AttrLiteral("default_testonly") == "1" { - def = true - } else if pkgDecl.AttrLiteral("default_testonly") != "0" { - // Non-literal value: it's not safe to do a change. - return false - } - } - - testonly := r.AttrLiteral("testonly") - if def && testonly == "1" { - r.DelAttr("testonly") - return true - } - if !def && testonly == "0" { - r.DelAttr("testonly") - return true - } - return false -} - -func genruleRenameDepsTools(_ *build.File, r *build.Rule, _ string) bool { - return r.Kind() == "genrule" && RenameAttribute(r, "deps", "tools") == nil -} - -// explicitHeuristicLabels adds $(location ...) for each label in the string s. -func explicitHeuristicLabels(s string, labels map[string]bool) string { - // Regexp comes from LABEL_CHAR_MATCHER in - // java/com/google/devtools/build/lib/analysis/LabelExpander.java - re := regexp.MustCompile("[a-zA-Z0-9:/_.+-]+|[^a-zA-Z0-9:/_.+-]+") - parts := re.FindAllString(s, -1) - changed := false - canChange := true - for i, part := range parts { - // We don't want to add $(location when it's already present. - // So we skip the next label when we see location(s). - if part == "location" || part == "locations" { - canChange = false - } - if !labels[part] { - if labels[":"+part] { // leading colon is often missing - part = ":" + part - } else { - continue - } - } - - if !canChange { - canChange = true - continue - } - parts[i] = "$(location " + part + ")" - changed = true - } - if changed { - return strings.Join(parts, "") - } - return s -} - -func addLabels(r *build.Rule, attr string, labels map[string]bool) { - a := r.Attr(attr) - if a == nil { - return - } - for _, li := range AllLists(a) { - for _, item := range li.List { - if str, ok := item.(*build.StringExpr); ok { - labels[str.Value] = true - } - } - } -} - -// genruleFixHeuristicLabels modifies the cmd attribute of genrules, so -// that they don't rely on heuristic label expansion anymore. -// Label expansion is made explicit with the $(location ...) command. -func genruleFixHeuristicLabels(_ *build.File, r *build.Rule, _ string) bool { - if r.Kind() != "genrule" { - return false - } - - cmd := r.Attr("cmd") - if cmd == nil { - return false - } - labels := make(map[string]bool) - addLabels(r, "tools", labels) - addLabels(r, "srcs", labels) - - fixed := false - for _, str := range AllStrings(cmd) { - newVal := explicitHeuristicLabels(str.Value, labels) - if newVal != str.Value { - fixed = true - str.Value = newVal - } - } - return fixed -} - -// sortExportsFiles sorts the first argument of exports_files if it is a list. -func sortExportsFiles(_ *build.File, r *build.Rule, _ string) bool { - if r.Kind() != "exports_files" || len(r.Call.List) == 0 { - return false - } - build.SortStringList(r.Call.List[0]) - return true -} - -// removeVarref replaces all varref('x') with '$(x)'. -// The goal is to eventually remove varref from the build language. -func removeVarref(_ *build.File, r *build.Rule, _ string) bool { - fixed := false - EditFunction(r.Call, "varref", func(call *build.CallExpr, stk []build.Expr) build.Expr { - if len(call.List) != 1 { - return nil - } - str, ok := (call.List[0]).(*build.StringExpr) - if !ok { - return nil - } - fixed = true - str.Value = "$(" + str.Value + ")" - // Preserve suffix comments from the function call - str.Comment().Suffix = append(str.Comment().Suffix, call.Comment().Suffix...) - return str - }) - return fixed -} - -// sortGlob sorts the list argument to glob. -func sortGlob(_ *build.File, r *build.Rule, _ string) bool { - fixed := false - EditFunction(r.Call, "glob", func(call *build.CallExpr, stk []build.Expr) build.Expr { - if len(call.List) == 0 { - return nil - } - build.SortStringList(call.List[0]) - fixed = true - return call - }) - return fixed -} - -func evaluateListConcatenation(expr build.Expr) build.Expr { - if _, ok := expr.(*build.ListExpr); ok { - return expr - } - bin, ok := expr.(*build.BinaryExpr) - if !ok || bin.Op != "+" { - return expr - } - li1, ok1 := evaluateListConcatenation(bin.X).(*build.ListExpr) - li2, ok2 := evaluateListConcatenation(bin.Y).(*build.ListExpr) - if !ok1 || !ok2 { - return expr - } - res := *li1 - res.List = append(li1.List, li2.List...) - return &res -} - -// mergeLiteralLists evaluates the concatenation of two literal lists. -// e.g. [1, 2] + [3, 4] -> [1, 2, 3, 4] -func mergeLiteralLists(_ *build.File, r *build.Rule, _ string) bool { - fixed := false - build.Edit(r.Call, func(expr build.Expr, stk []build.Expr) build.Expr { - newexpr := evaluateListConcatenation(expr) - fixed = fixed || (newexpr != expr) - return newexpr - }) - return fixed -} - -// usePlusEqual replaces uses of extend and append with the += operator. -// e.g. foo.extend(bar) => foo += bar -// foo.append(bar) => foo += [bar] -func usePlusEqual(f *build.File) bool { - fixed := false - for i, stmt := range f.Stmt { - call, ok := stmt.(*build.CallExpr) - if !ok { - continue - } - dot, ok := call.X.(*build.DotExpr) - if !ok || len(call.List) != 1 { - continue - } - obj, ok := dot.X.(*build.Ident) - if !ok { - continue - } - - var fix *build.AssignExpr - if dot.Name == "extend" { - fix = &build.AssignExpr{LHS: obj, Op: "+=", RHS: call.List[0]} - } else if dot.Name == "append" { - list := &build.ListExpr{List: []build.Expr{call.List[0]}} - fix = &build.AssignExpr{LHS: obj, Op: "+=", RHS: list} - } else { - continue - } - fix.Comments = call.Comments // Keep original comments - f.Stmt[i] = fix - fixed = true - } - return fixed -} - -func isNonemptyComment(comment *build.Comments) bool { - return len(comment.Before)+len(comment.Suffix)+len(comment.After) > 0 -} - -// Checks whether a load statement or any of its arguments have a comment -func hasComment(load *build.LoadStmt) bool { - if isNonemptyComment(load.Comment()) { - return true - } - if isNonemptyComment(load.Module.Comment()) { - return true - } - - for i := range load.From { - if isNonemptyComment(load.From[i].Comment()) || isNonemptyComment(load.To[i].Comment()) { - return true - } - } - return false -} - -// cleanUnusedLoads removes symbols from load statements that are not used in the file. -// It also cleans symbols loaded multiple times, sorts symbol list, and removes load -// statements when the list is empty. -func cleanUnusedLoads(f *build.File) bool { - symbols := UsedSymbols(f) - fixed := false - - var all []build.Expr - for _, stmt := range f.Stmt { - load, ok := stmt.(*build.LoadStmt) - if !ok || hasComment(load) { - all = append(all, stmt) - continue - } - var fromSymbols, toSymbols []*build.Ident - for i := range load.From { - fromSymbol := load.From[i] - toSymbol := load.To[i] - if symbols[toSymbol.Name] { - // The symbol is actually used - fromSymbols = append(fromSymbols, fromSymbol) - toSymbols = append(toSymbols, toSymbol) - // If the same symbol is loaded twice, we'll remove it. - delete(symbols, toSymbol.Name) - } else { - fixed = true - } - } - if len(toSymbols) > 0 { // Keep the load statement if it loads at least one symbol. - sort.Sort(loadArgs{fromSymbols, toSymbols}) - load.From = fromSymbols - load.To = toSymbols - all = append(all, load) - } else { - fixed = true - } - } - f.Stmt = all - return fixed -} - -// movePackageDeclarationToTheTop ensures that the call to package() is done -// before everything else (except comments). -func movePackageDeclarationToTheTop(f *build.File) bool { - pkg := ExistingPackageDeclaration(f) - if pkg == nil { - return false - } - all := []build.Expr{} - inserted := false // true when the package declaration has been inserted - for _, stmt := range f.Stmt { - _, isComment := stmt.(*build.CommentBlock) - _, isString := stmt.(*build.StringExpr) // typically a docstring - _, isAssignExpr := stmt.(*build.AssignExpr) // e.g. variable declaration - _, isLoad := stmt.(*build.LoadStmt) - if isComment || isString || isAssignExpr || isLoad { - all = append(all, stmt) - continue - } - if stmt == pkg.Call { - if inserted { - // remove the old package - continue - } - return false // the file was ok - } - if !inserted { - all = append(all, pkg.Call) - inserted = true - } - all = append(all, stmt) - } - f.Stmt = all - return true -} - -// moveToPackage is an auxilliary function used by moveLicensesAndDistribs. -// The function shouldn't appear more than once in the file (depot cleanup has -// been done). -func moveToPackage(f *build.File, attrname string) bool { - var all []build.Expr - fixed := false - for _, stmt := range f.Stmt { - rule, ok := ExprToRule(stmt, attrname) - if !ok || len(rule.Call.List) != 1 { - all = append(all, stmt) - continue - } - pkgDecl := PackageDeclaration(f) - pkgDecl.SetAttr(attrname, rule.Call.List[0]) - pkgDecl.AttrDefn(attrname).Comments = *stmt.Comment() - fixed = true - } - f.Stmt = all - return fixed -} - -// moveLicensesAndDistribs replaces the 'licenses' and 'distribs' functions -// with an attribute in package. -// Before: licenses(["notice"]) -// After: package(licenses = ["notice"]) -func moveLicensesAndDistribs(f *build.File) bool { - fixed1 := moveToPackage(f, "licenses") - fixed2 := moveToPackage(f, "distribs") - return fixed1 || fixed2 -} - -// AllRuleFixes is a list of all Buildozer fixes that can be applied on a rule. -var AllRuleFixes = []struct { - Name string - Fn func(file *build.File, rule *build.Rule, pkg string) bool - Message string -}{ - {"sortGlob", sortGlob, - "Sort the list in a call to glob"}, - {"splitOptions", splitOptionsWithSpaces, - "Each option should be given separately in the list"}, - {"shortenLabels", shortenLabels, - "Style: Use the canonical label notation"}, - {"removeVisibility", removeVisibility, - "This visibility attribute is useless (it corresponds to the default value)"}, - {"removeTestOnly", removeTestOnly, - "This testonly attribute is useless (it corresponds to the default value)"}, - {"genruleRenameDepsTools", genruleRenameDepsTools, - "'deps' attribute in genrule has been renamed 'tools'"}, - {"genruleFixHeuristicLabels", genruleFixHeuristicLabels, - "$(location) should be called explicitely"}, - {"sortExportsFiles", sortExportsFiles, - "Files in exports_files should be sorted"}, - {"varref", removeVarref, - "All varref('foo') should be replaced with '$foo'"}, - {"mergeLiteralLists", mergeLiteralLists, - "Remove useless list concatenation"}, -} - -// FileLevelFixes is a list of all Buildozer fixes that apply on the whole file. -var FileLevelFixes = []struct { - Name string - Fn func(file *build.File) bool - Message string -}{ - {"movePackageToTop", movePackageDeclarationToTheTop, - "The package declaration should be the first rule in a file"}, - {"usePlusEqual", usePlusEqual, - "Prefer '+=' over 'extend' or 'append'"}, - {"unusedLoads", cleanUnusedLoads, - "Remove unused symbols from load statements"}, - {"moveLicensesAndDistribs", moveLicensesAndDistribs, - "Move licenses and distribs to the package function"}, -} - -// FixRule aims to fix errors in BUILD files, remove deprecated features, and -// simplify the code. -func FixRule(f *build.File, pkg string, rule *build.Rule, fixes []string) *build.File { - fixesAsMap := make(map[string]bool) - for _, fix := range fixes { - fixesAsMap[fix] = true - } - fixed := false - for _, fix := range AllRuleFixes { - if len(fixes) == 0 || fixesAsMap[fix.Name] { - fixed = fix.Fn(f, rule, pkg) || fixed - } - } - if !fixed { - return nil - } - return f -} - -// FixFile fixes everything it can in the BUILD file. -func FixFile(f *build.File, pkg string, fixes []string) *build.File { - fixesAsMap := make(map[string]bool) - for _, fix := range fixes { - fixesAsMap[fix] = true - } - fixed := false - for _, rule := range f.Rules("") { - res := FixRule(f, pkg, rule, fixes) - if res != nil { - fixed = true - f = res - } - } - for _, fix := range FileLevelFixes { - if len(fixes) == 0 || fixesAsMap[fix.Name] { - fixed = fix.Fn(f) || fixed - } - } - if !fixed { - return nil - } - return f -} - -// 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, the items of `From` are swapped exactly the same way as the items of `To`. -type loadArgs struct { - From []*build.Ident - To []*build.Ident -} - -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] -} - -func (args loadArgs) Less(i, j int) bool { - return args.To[i].Name < args.To[j].Name -} diff --git a/vendor/github.com/bazelbuild/buildtools/edit/types.go b/vendor/github.com/bazelbuild/buildtools/edit/types.go deleted file mode 100644 index 4c7ff0aa454..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/edit/types.go +++ /dev/null @@ -1,69 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ -// Type information for attributes. - -package edit - -import ( - buildpb "github.com/bazelbuild/buildtools/build_proto" - "github.com/bazelbuild/buildtools/lang" - "github.com/bazelbuild/buildtools/tables" -) - -var typeOf = lang.TypeOf - -// IsList returns true for all attributes whose type is a list. -func IsList(attr string) bool { - overrideValue, isOverridden := tables.IsListArg[attr] - if isOverridden { - return overrideValue - } - // It stands to reason that a sortable list must be a list. - isSortableList := tables.IsSortableListArg[attr] - if isSortableList { - return true - } - ty := typeOf[attr] - return ty == buildpb.Attribute_STRING_LIST || - ty == buildpb.Attribute_LABEL_LIST || - ty == buildpb.Attribute_OUTPUT_LIST || - ty == buildpb.Attribute_FILESET_ENTRY_LIST || - ty == buildpb.Attribute_INTEGER_LIST || - ty == buildpb.Attribute_LICENSE || - ty == buildpb.Attribute_DISTRIBUTION_SET -} - -// IsIntList returns true for all attributes whose type is an int list. -func IsIntList(attr string) bool { - return typeOf[attr] == buildpb.Attribute_INTEGER_LIST -} - -// IsString returns true for all attributes whose type is a string or a label. -func IsString(attr string) bool { - ty := typeOf[attr] - return ty == buildpb.Attribute_LABEL || - ty == buildpb.Attribute_STRING || - ty == buildpb.Attribute_OUTPUT -} - -// IsStringDict returns true for all attributes whose type is a string dictionary. -func IsStringDict(attr string) bool { - return typeOf[attr] == buildpb.Attribute_STRING_DICT -} - -// ContainsLabels returns true for all attributes whose type is a label or a label list. -func ContainsLabels(attr string) bool { - ty := typeOf[attr] - return ty == buildpb.Attribute_LABEL_LIST || - ty == buildpb.Attribute_LABEL -} diff --git a/vendor/github.com/bazelbuild/buildtools/file/BUILD b/vendor/github.com/bazelbuild/buildtools/file/BUILD deleted file mode 100644 index 574f1f56e2f..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/file/BUILD +++ /dev/null @@ -1,23 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["file.go"], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/buildtools/file", - importpath = "github.com/bazelbuild/buildtools/file", - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/buildtools/file/file.go b/vendor/github.com/bazelbuild/buildtools/file/file.go deleted file mode 100644 index a311099b184..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/file/file.go +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2016 Google Inc. 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 file provides utility file operations. -package file - -import ( - "fmt" - "io" - "io/ioutil" - "os" -) - -// ReadFile is like ioutil.ReadFile. -func ReadFile(name string) ([]byte, os.FileInfo, error) { - fi, err := os.Stat(name) - if err != nil { - return nil, nil, err - } - - data, err := ioutil.ReadFile(name) - return data, fi, err -} - -// WriteFile is like ioutil.WriteFile -func WriteFile(name string, data []byte) error { - return ioutil.WriteFile(name, data, 0644) -} - -// OpenReadFile is like os.Open. -func OpenReadFile(name string) io.ReadCloser { - f, err := os.Open(name) - if err != nil { - fmt.Fprintf(os.Stderr, "Could not open %s\n", name) - os.Exit(1) - } - return f -} diff --git a/vendor/github.com/bazelbuild/buildtools/lang/BUILD b/vendor/github.com/bazelbuild/buildtools/lang/BUILD deleted file mode 100644 index 684538930e6..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/lang/BUILD +++ /dev/null @@ -1,24 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["tables.gen.go"], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/buildtools/lang", - importpath = "github.com/bazelbuild/buildtools/lang", - visibility = ["//visibility:public"], - deps = ["//vendor/github.com/bazelbuild/buildtools/build_proto:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/buildtools/lang/build-language.pb b/vendor/github.com/bazelbuild/buildtools/lang/build-language.pb deleted file mode 100644 index 6cf953ba856..00000000000 Binary files a/vendor/github.com/bazelbuild/buildtools/lang/build-language.pb and /dev/null differ diff --git a/vendor/github.com/bazelbuild/buildtools/lang/tables.gen.go b/vendor/github.com/bazelbuild/buildtools/lang/tables.gen.go deleted file mode 100644 index 2d739d2d3a2..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/lang/tables.gen.go +++ /dev/null @@ -1,270 +0,0 @@ -// Generated file, do not edit. -package lang - -import buildpb "github.com/bazelbuild/buildtools/build_proto" - -var TypeOf = map[string]buildpb.Attribute_Discriminator{ - "aar": buildpb.Attribute_LABEL, - "absolute_path_profile": buildpb.Attribute_STRING, - "actual": buildpb.Attribute_LABEL, - "aliases": buildpb.Attribute_STRING_LIST, - "all_files": buildpb.Attribute_LABEL, - "alwayslink": buildpb.Attribute_BOOLEAN, - "api_level": buildpb.Attribute_INTEGER, - "ar_files": buildpb.Attribute_LABEL, - "archives": buildpb.Attribute_LABEL_LIST, - "args": buildpb.Attribute_STRING_LIST, - "artifact": buildpb.Attribute_STRING, - "as_files": buildpb.Attribute_LABEL, - "asset_catalogs": buildpb.Attribute_LABEL_LIST, - "assets": buildpb.Attribute_LABEL_LIST, - "assets_dir": buildpb.Attribute_STRING, - "avoid_deps": buildpb.Attribute_LABEL_LIST, - "binary_type": buildpb.Attribute_STRING, - "blacklisted_protos": buildpb.Attribute_LABEL_LIST, - "bootclasspath": buildpb.Attribute_LABEL_LIST, - "build_file": buildpb.Attribute_STRING, - "build_file_content": buildpb.Attribute_STRING, - "build_tools_version": buildpb.Attribute_STRING, - "bundle_imports": buildpb.Attribute_LABEL_LIST, - "bundle_loader": buildpb.Attribute_LABEL, - "bundles": buildpb.Attribute_LABEL_LIST, - "cache": buildpb.Attribute_INTEGER, - "classpath_resources": buildpb.Attribute_LABEL_LIST, - "cmd": buildpb.Attribute_STRING, - "command_line": buildpb.Attribute_STRING, - "commit": buildpb.Attribute_STRING, - "compatible_with": buildpb.Attribute_LABEL_LIST, - "compiler": buildpb.Attribute_STRING, - "compiler_files": buildpb.Attribute_LABEL, - "constraint_setting": buildpb.Attribute_LABEL, - "constraint_values": buildpb.Attribute_LABEL_LIST, - "constraints": buildpb.Attribute_STRING_LIST, - "copts": buildpb.Attribute_STRING_LIST, - "coverage_files": buildpb.Attribute_LABEL, - "cpu": buildpb.Attribute_STRING, - "create_executable": buildpb.Attribute_BOOLEAN, - "crunch_png": buildpb.Attribute_BOOLEAN, - "custom_package": buildpb.Attribute_STRING, - "data": buildpb.Attribute_LABEL_LIST, - "datamodels": buildpb.Attribute_LABEL_LIST, - "debug_key": buildpb.Attribute_LABEL, - "default": buildpb.Attribute_LABEL, - "default_copts": buildpb.Attribute_STRING_LIST, - "default_deprecation": buildpb.Attribute_STRING, - "default_hdrs_check": buildpb.Attribute_STRING, - "default_ios_sdk_version": buildpb.Attribute_STRING, - "default_macos_sdk_version": buildpb.Attribute_STRING, - "default_properties": buildpb.Attribute_LABEL, - "default_python_version": buildpb.Attribute_STRING, - "default_testonly": buildpb.Attribute_BOOLEAN, - "default_tvos_sdk_version": buildpb.Attribute_STRING, - "default_visibility": buildpb.Attribute_STRING_LIST, - "default_watchos_sdk_version": buildpb.Attribute_STRING, - "define_values": buildpb.Attribute_STRING_DICT, - "defines": buildpb.Attribute_STRING_LIST, - "densities": buildpb.Attribute_STRING_LIST, - "deploy_manifest_lines": buildpb.Attribute_STRING_LIST, - "deprecation": buildpb.Attribute_STRING, - "deps": buildpb.Attribute_LABEL_LIST, - "dex_shards": buildpb.Attribute_INTEGER, - "dexopts": buildpb.Attribute_STRING_LIST, - "distribs": buildpb.Attribute_DISTRIBUTION_SET, - "dwp_files": buildpb.Attribute_LABEL, - "dylibs": buildpb.Attribute_LABEL_LIST, - "dynamic_runtime_libs": buildpb.Attribute_LABEL_LIST, - "enable_data_binding": buildpb.Attribute_BOOLEAN, - "enable_modules": buildpb.Attribute_BOOLEAN, - "encoding": buildpb.Attribute_STRING, - "entry_classes": buildpb.Attribute_STRING_LIST, - "exec_compatible_with": buildpb.Attribute_LABEL_LIST, - "executable": buildpb.Attribute_BOOLEAN, - "exported_plugins": buildpb.Attribute_LABEL_LIST, - "exports": buildpb.Attribute_LABEL_LIST, - "exports_manifest": buildpb.Attribute_TRISTATE, - "expression": buildpb.Attribute_STRING, - "extclasspath": buildpb.Attribute_LABEL_LIST, - "extension_safe": buildpb.Attribute_BOOLEAN, - "extra_actions": buildpb.Attribute_LABEL_LIST, - "extra_srcs": buildpb.Attribute_LABEL_LIST, - "families": buildpb.Attribute_STRING_LIST, - "features": buildpb.Attribute_STRING_LIST, - "files": buildpb.Attribute_LABEL_LIST, - "flaky": buildpb.Attribute_BOOLEAN, - "forcibly_disable_header_compilation": buildpb.Attribute_BOOLEAN, - "framework_imports": buildpb.Attribute_LABEL_LIST, - "genclass": buildpb.Attribute_LABEL_LIST, - "generates_api": buildpb.Attribute_BOOLEAN, - "hdrs": buildpb.Attribute_LABEL_LIST, - "header_compiler": buildpb.Attribute_LABEL_LIST, - "heuristic_label_expansion": buildpb.Attribute_BOOLEAN, - "horizontal_resolution": buildpb.Attribute_INTEGER, - "idl_import_root": buildpb.Attribute_STRING, - "idl_parcelables": buildpb.Attribute_LABEL_LIST, - "idl_preprocessed": buildpb.Attribute_LABEL_LIST, - "idl_srcs": buildpb.Attribute_LABEL_LIST, - "ijar": buildpb.Attribute_LABEL_LIST, - "imports": buildpb.Attribute_STRING_LIST, - "include_prefix": buildpb.Attribute_STRING, - "includes": buildpb.Attribute_STRING_LIST, - "incremental_dexing": buildpb.Attribute_TRISTATE, - "infoplist": buildpb.Attribute_LABEL, - "infoplists": buildpb.Attribute_LABEL_LIST, - "init_submodules": buildpb.Attribute_BOOLEAN, - "instruments": buildpb.Attribute_LABEL, - "interface_library": buildpb.Attribute_LABEL, - "interpreter": buildpb.Attribute_LABEL, - "interpreter_path": buildpb.Attribute_STRING, - "is_dynamic": buildpb.Attribute_BOOLEAN, - "jars": buildpb.Attribute_LABEL_LIST, - "java_home": buildpb.Attribute_STRING, - "javabuilder": buildpb.Attribute_LABEL_LIST, - "javac": buildpb.Attribute_LABEL_LIST, - "javac_supports_workers": buildpb.Attribute_BOOLEAN, - "javacopts": buildpb.Attribute_STRING_LIST, - "jre_deps": buildpb.Attribute_LABEL_LIST, - "jvm_flags": buildpb.Attribute_STRING_LIST, - "jvm_opts": buildpb.Attribute_STRING_LIST, - "launcher": buildpb.Attribute_LABEL, - "legacy_create_init": buildpb.Attribute_BOOLEAN, - "libc": buildpb.Attribute_STRING, - "licenses": buildpb.Attribute_LICENSE, - "linker_files": buildpb.Attribute_LABEL, - "linkopts": buildpb.Attribute_STRING_LIST, - "linkshared": buildpb.Attribute_BOOLEAN, - "linkstamp": buildpb.Attribute_LABEL, - "linkstatic": buildpb.Attribute_BOOLEAN, - "local": buildpb.Attribute_BOOLEAN, - "main": buildpb.Attribute_LABEL, - "main_class": buildpb.Attribute_STRING, - "main_dex_list": buildpb.Attribute_LABEL, - "main_dex_list_opts": buildpb.Attribute_STRING_LIST, - "main_dex_proguard_specs": buildpb.Attribute_LABEL_LIST, - "malloc": buildpb.Attribute_LABEL, - "manifest": buildpb.Attribute_LABEL, - "manifest_values": buildpb.Attribute_STRING_DICT, - "message": buildpb.Attribute_STRING, - "minimum_os_version": buildpb.Attribute_STRING, - "mnemonics": buildpb.Attribute_STRING_LIST, - "module_map": buildpb.Attribute_LABEL, - "multidex": buildpb.Attribute_STRING, - "name": buildpb.Attribute_STRING, - "neverlink": buildpb.Attribute_BOOLEAN, - "nocompress_extensions": buildpb.Attribute_STRING_LIST, - "nocopts": buildpb.Attribute_STRING, - "non_arc_srcs": buildpb.Attribute_LABEL_LIST, - "non_propagated_deps": buildpb.Attribute_LABEL_LIST, - "objcopy_files": buildpb.Attribute_LABEL, - "oneversion": buildpb.Attribute_LABEL, - "oneversion_whitelist": buildpb.Attribute_LABEL, - "opts": buildpb.Attribute_STRING_LIST, - "out": buildpb.Attribute_STRING, - "out_templates": buildpb.Attribute_STRING_LIST, - "output_group": buildpb.Attribute_STRING, - "output_licenses": buildpb.Attribute_LICENSE, - "output_to_bindir": buildpb.Attribute_BOOLEAN, - "outs": buildpb.Attribute_STRING_LIST, - "package_configuration": buildpb.Attribute_LABEL_LIST, - "packages": buildpb.Attribute_LABEL_LIST, - "path": buildpb.Attribute_STRING, - "pch": buildpb.Attribute_LABEL, - "platform_apks": buildpb.Attribute_LABEL_LIST, - "platform_type": buildpb.Attribute_STRING, - "plugin": buildpb.Attribute_LABEL, - "plugins": buildpb.Attribute_LABEL_LIST, - "portable_proto_filters": buildpb.Attribute_LABEL_LIST, - "pregenerate_oat_files_for_tests": buildpb.Attribute_BOOLEAN, - "processor_class": buildpb.Attribute_STRING, - "profile": buildpb.Attribute_LABEL, - "proguard_apply_dictionary": buildpb.Attribute_LABEL, - "proguard_apply_mapping": buildpb.Attribute_LABEL, - "proguard_generate_mapping": buildpb.Attribute_BOOLEAN, - "proguard_specs": buildpb.Attribute_LABEL_LIST, - "proto": buildpb.Attribute_STRING, - "proto_source_root": buildpb.Attribute_STRING, - "pytype_deps": buildpb.Attribute_LABEL_LIST, - "ram": buildpb.Attribute_INTEGER, - "reexport_deps": buildpb.Attribute_LABEL_LIST, - "remote": buildpb.Attribute_STRING, - "remote_execution_properties": buildpb.Attribute_STRING, - "repository": buildpb.Attribute_STRING, - "require_defined_version": buildpb.Attribute_BOOLEAN, - "requires_action_output": buildpb.Attribute_BOOLEAN, - "resource_configuration_filters": buildpb.Attribute_STRING_LIST, - "resource_files": buildpb.Attribute_LABEL_LIST, - "resource_jars": buildpb.Attribute_LABEL_LIST, - "resource_strip_prefix": buildpb.Attribute_STRING, - "resourcejar": buildpb.Attribute_LABEL_LIST, - "resources": buildpb.Attribute_LABEL_LIST, - "restricted_to": buildpb.Attribute_LABEL_LIST, - "runtime": buildpb.Attribute_LABEL, - "runtime_deps": buildpb.Attribute_LABEL_LIST, - "runtimes": buildpb.Attribute_LABEL_DICT_UNARY, - "scope": buildpb.Attribute_LABEL_LIST, - "screen_density": buildpb.Attribute_INTEGER, - "sdk_dylibs": buildpb.Attribute_STRING_LIST, - "sdk_frameworks": buildpb.Attribute_STRING_LIST, - "sdk_includes": buildpb.Attribute_STRING_LIST, - "server": buildpb.Attribute_STRING, - "settings_file": buildpb.Attribute_STRING, - "sha1": buildpb.Attribute_STRING, - "sha256": buildpb.Attribute_STRING, - "shard_count": buildpb.Attribute_INTEGER, - "shared_library": buildpb.Attribute_LABEL, - "shrink_resources": buildpb.Attribute_TRISTATE, - "singlejar": buildpb.Attribute_LABEL_LIST, - "size": buildpb.Attribute_STRING, - "source_version": buildpb.Attribute_STRING, - "srcjar": buildpb.Attribute_LABEL, - "srcs": buildpb.Attribute_LABEL_LIST, - "srcs_version": buildpb.Attribute_STRING, - "stamp": buildpb.Attribute_TRISTATE, - "static_library": buildpb.Attribute_LABEL, - "static_runtime_libs": buildpb.Attribute_LABEL_LIST, - "storyboards": buildpb.Attribute_LABEL_LIST, - "strict": buildpb.Attribute_BOOLEAN, - "strings": buildpb.Attribute_LABEL_LIST, - "strip": buildpb.Attribute_BOOLEAN, - "strip_files": buildpb.Attribute_LABEL, - "strip_include_prefix": buildpb.Attribute_STRING, - "strip_prefix": buildpb.Attribute_STRING, - "structured_resources": buildpb.Attribute_LABEL_LIST, - "support_apks": buildpb.Attribute_LABEL_LIST, - "supports_header_parsing": buildpb.Attribute_BOOLEAN, - "supports_param_files": buildpb.Attribute_BOOLEAN, - "system_image": buildpb.Attribute_LABEL, - "system_provided": buildpb.Attribute_BOOLEAN, - "tag": buildpb.Attribute_STRING, - "tags": buildpb.Attribute_STRING_LIST, - "target_compatible_with": buildpb.Attribute_LABEL_LIST, - "target_device": buildpb.Attribute_LABEL, - "target_version": buildpb.Attribute_STRING, - "test_app": buildpb.Attribute_LABEL, - "test_class": buildpb.Attribute_STRING, - "testonly": buildpb.Attribute_BOOLEAN, - "tests": buildpb.Attribute_LABEL_LIST, - "textual_hdrs": buildpb.Attribute_LABEL_LIST, - "timeout": buildpb.Attribute_STRING, - "timezone_data": buildpb.Attribute_LABEL, - "toolchain": buildpb.Attribute_STRING, - "toolchain_type": buildpb.Attribute_STRING, - "toolchains": buildpb.Attribute_LABEL_LIST, - "tools": buildpb.Attribute_LABEL_LIST, - "type": buildpb.Attribute_STRING, - "url": buildpb.Attribute_STRING, - "urls": buildpb.Attribute_STRING_LIST, - "use_testrunner": buildpb.Attribute_BOOLEAN, - "values": buildpb.Attribute_STRING_DICT, - "version": buildpb.Attribute_STRING, - "versions": buildpb.Attribute_LABEL_LIST, - "vertical_resolution": buildpb.Attribute_INTEGER, - "visibility": buildpb.Attribute_STRING_LIST, - "vm_heap": buildpb.Attribute_INTEGER, - "weak_sdk_frameworks": buildpb.Attribute_STRING_LIST, - "win_def_file": buildpb.Attribute_LABEL, - "workspace_file": buildpb.Attribute_STRING, - "workspace_file_content": buildpb.Attribute_STRING, - "xcenv_based_path": buildpb.Attribute_STRING, - "xibs": buildpb.Attribute_LABEL_LIST, - "xlint": buildpb.Attribute_STRING_LIST, -} diff --git a/vendor/github.com/bazelbuild/buildtools/tables/BUILD b/vendor/github.com/bazelbuild/buildtools/tables/BUILD deleted file mode 100644 index 2b691ea99bc..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/tables/BUILD +++ /dev/null @@ -1,26 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "jsonparser.go", - "tables.go", - ], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/buildtools/tables", - importpath = "github.com/bazelbuild/buildtools/tables", - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/buildtools/tables/jsonparser.go b/vendor/github.com/bazelbuild/buildtools/tables/jsonparser.go deleted file mode 100644 index ca2bc4443af..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/tables/jsonparser.go +++ /dev/null @@ -1,63 +0,0 @@ -/* -Copyright 2017 Google Inc. 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 tables - -import ( - "encoding/json" - "io/ioutil" -) - -type Definitions struct { - IsLabelArg map[string]bool - LabelBlacklist map[string]bool - IsListArg map[string]bool - IsSortableListArg map[string]bool - SortableBlacklist map[string]bool - SortableWhitelist map[string]bool - NamePriority map[string]int - StripLabelLeadingSlashes bool - ShortenAbsoluteLabelsToRelative bool -} - -// ParseJSONDefinitions reads and parses JSON table definitions from file. -func ParseJSONDefinitions(file string) (Definitions, error) { - var definitions Definitions - - data, err := ioutil.ReadFile(file) - if err != nil { - return definitions, err - } - - err = json.Unmarshal(data, &definitions) - return definitions, err -} - -// ParseAndUpdateJSONDefinitions reads definitions from file and merges or -// overrides the values in memory. -func ParseAndUpdateJSONDefinitions(file string, merge bool) error { - definitions, err := ParseJSONDefinitions(file) - if err != nil { - return err - } - - if merge { - MergeTables(definitions.IsLabelArg, definitions.LabelBlacklist, definitions.IsListArg, definitions.IsSortableListArg, definitions.SortableBlacklist, definitions.SortableWhitelist, definitions.NamePriority, definitions.StripLabelLeadingSlashes, definitions.ShortenAbsoluteLabelsToRelative) - } else { - OverrideTables(definitions.IsLabelArg, definitions.LabelBlacklist, definitions.IsListArg, definitions.IsSortableListArg, definitions.SortableBlacklist, definitions.SortableWhitelist, definitions.NamePriority, definitions.StripLabelLeadingSlashes, definitions.ShortenAbsoluteLabelsToRelative) - } - return nil -} diff --git a/vendor/github.com/bazelbuild/buildtools/tables/tables.go b/vendor/github.com/bazelbuild/buildtools/tables/tables.go deleted file mode 100644 index 05bda4c2e7c..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/tables/tables.go +++ /dev/null @@ -1,325 +0,0 @@ -/* -Copyright 2016 Google Inc. 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. -*/ -// Tables about what Buildifier can and cannot edit. -// Perhaps eventually this will be -// derived from the BUILD encyclopedia. - -package tables - -// IsLabelArg: a named argument to a rule call is considered to have a value -// that can be treated as a label or list of labels if the name -// is one of these names. There is a separate blacklist for -// rule-specific exceptions. -var IsLabelArg = map[string]bool{ - "app_target": true, - "appdir": true, - "base_package": true, - "build_deps": true, - "cc_deps": true, - "ccdeps": true, - "common_deps": true, - "compile_deps": true, - "compiler": true, - "data": true, - "default_visibility": true, - "dep": true, - "deps": true, - "deps_java": true, - "dont_depend_on": true, - "env_deps": true, - "envscripts": true, - "exported_deps": true, - "exports": true, - "externs_list": true, - "files": true, - "globals": true, - "implementation": true, - "implements": true, - "includes": true, - "interface": true, - "jar": true, - "jars": true, - "javadeps": true, - "lib_deps": true, - "library": true, - "malloc": true, - "model": true, - "mods": true, - "module_deps": true, - "module_target": true, - "of": true, - "plugins": true, - "proto_deps": true, - "proto_target": true, - "protos": true, - "resource": true, - "resources": true, - "runtime_deps": true, - "scope": true, - "shared_deps": true, - "similar_deps": true, - "source_jar": true, - "src": true, - "srcs": true, - "stripped_targets": true, - "suites": true, - "swigdeps": true, - "target": true, - "target_devices": true, - "target_platforms": true, - "template": true, - "test": true, - "tests": true, - "tests_deps": true, - "tool": true, - "tools": true, - "visibility": true, -} - -// LabelBlacklist is the list of call arguments that cannot be -// shortened, because they are not interpreted using the same -// rules as for other labels. -var LabelBlacklist = map[string]bool{ - // Shortening this can cause visibility checks to fail. - "package_group.includes": true, -} - -// By default, edit.types.IsList consults lang.TypeOf to determine if an arg is a list. -// You may override this using IsListArg. Specifying a name here overrides any value -// in lang.TypeOf. -var IsListArg = map[string]bool{} - -// IsSortableListArg: a named argument to a rule call is considered to be a sortable list -// if the name is one of these names. There is a separate blacklist for -// rule-specific exceptions. -var IsSortableListArg = map[string]bool{ - "cc_deps": true, - "common_deps": true, - "compile_deps": true, - "configs": true, - "constraints": true, - "data": true, - "default_visibility": true, - "deps": true, - "deps_java": true, - "exported_deps": true, - "exports": true, - "filegroups": true, - "files": true, - "hdrs": true, - "imports": true, - "includes": true, - "inherits": true, - "javadeps": true, - "lib_deps": true, - "module_deps": true, - "out": true, - "outs": true, - "packages": true, - "plugin_modules": true, - "proto_deps": true, - "protos": true, - "pubs": true, - "resources": true, - "runtime_deps": true, - "shared_deps": true, - "similar_deps": true, - "srcs": true, - "swigdeps": true, - "swig_includes": true, - "tags": true, - "tests": true, - "tools": true, - "to_start_extensions": true, - "visibility": true, -} - -// SortableBlacklist records specific rule arguments that must not be reordered. -var SortableBlacklist = map[string]bool{ - "genrule.outs": true, - "genrule.srcs": true, -} - -// SortableWhitelist records specific rule arguments that are guaranteed -// to be reorderable, because bazel re-sorts the list itself after reading the BUILD file. -var SortableWhitelist = map[string]bool{ - "cc_inc_library.hdrs": true, - "cc_library.hdrs": true, - "java_library.srcs": true, - "java_library.resources": true, - "java_binary.srcs": true, - "java_binary.resources": true, - "java_test.srcs": true, - "java_test.resources": true, - "java_library.constraints": true, - "java_import.constraints": true, -} - -// NamePriority maps an argument name to its sorting priority. -// -// NOTE(bazel-team): These are the old buildifier rules. It is likely that this table -// will change, perhaps swapping in a separate table for each call, -// derived from the order used in the Build Encyclopedia. -var NamePriority = map[string]int{ - "name": -99, - "gwt_name": -98, - "package_name": -97, - "visible_node_name": -96, // for boq_initial_css_modules and boq_jswire_test_suite - "size": -95, - "timeout": -94, - "testonly": -93, - "src": -92, - "srcdir": -91, - "srcs": -90, - "out": -89, - "outs": -88, - "hdrs": -87, - "has_services": -86, // before api versions, for proto - "include": -85, // before exclude, for glob - "of": -84, // for check_dependencies - "baseline": -83, // for searchbox_library - // All others sort here, at 0. - "destdir": 1, - "exports": 2, - "runtime_deps": 3, - "deps": 4, - "implementation": 5, - "implements": 6, - "alwayslink": 7, - // default condition in a dictionary literal passed to select should be - // the last one by convention. - "//conditions:default": 50, -} - -var StripLabelLeadingSlashes = false - -var ShortenAbsoluteLabelsToRelative = false - -// AndroidNativeRules lists all Android rules that are being migrated from Native to Starlark. -var AndroidNativeRules = []string{ - "aar_import", - "android_binary", - "android_device", - "android_instrumentation_test", - "android_library", - "android_local_test", - "android_ndk_respository", - "android_sdk_repository", -} - -// AndroidLoadPath is the load path for the Starlark Android Rules. -var AndroidLoadPath = "@rules_android//android:rules.bzl" - -// CcNativeRules lists all C++ rules that are being migrated from Native to Starlark. -var CcNativeRules = []string{ - "cc_binary", - "cc_test", - "cc_library", - "cc_import", - "cc_proto_library", - "fdo_prefetch_hints", - "fdo_profile", - "cc_toolchain", - "cc_toolchain_suite", - "objc_library", - "objc_import", -} - -// CcLoadPath is the load path for the Starlark C++ Rules. -var CcLoadPath = "@rules_cc//cc:defs.bzl" - -// JavaNativeRules lists all Java rules that are being migrated from Native to Starlark. -var JavaNativeRules = []string{ - "java_binary", - "java_import", - "java_library", - "java_lite_proto_library", - "java_proto_library", - "java_test", - "java_package_configuration", - "java_plugin", - "java_runtime", - "java_toolchain", -} - -// JavaLoadPath is the load path for the Starlark Java Rules. -var JavaLoadPath = "@rules_java//java:defs.bzl" - -// PyNativeRules lists all Python rules that are being migrated from Native to Starlark. -var PyNativeRules = []string{ - "py_library", - "py_binary", - "py_test", - "py_runtime", -} - -// PyLoadPath is the load path for the Starlark Python Rules. -var PyLoadPath = "@rules_python//python:defs.bzl" - -// ProtoNativeRules lists all Proto rules that are being migrated from Native to Starlark. -var ProtoNativeRules = []string{ - "proto_lang_toolchain", - "proto_library", -} - -// ProtoNativeSymbols lists all Proto symbols that are being migrated from Native to Starlark. -var ProtoNativeSymbols = []string{ - "ProtoInfo", - "proto_common", -} - -// ProtoLoadPath is the load path for the Starlark Proto Rules. -var ProtoLoadPath = "@rules_proto//proto:defs.bzl" - -// OverrideTables allows a user of the build package to override the special-case rules. The user-provided tables replace the built-in tables. -func OverrideTables(labelArg, blacklist, listArg, sortableListArg, sortBlacklist, sortWhitelist map[string]bool, namePriority map[string]int, stripLabelLeadingSlashes, shortenAbsoluteLabelsToRelative bool) { - IsLabelArg = labelArg - LabelBlacklist = blacklist - IsListArg = listArg - IsSortableListArg = sortableListArg - SortableBlacklist = sortBlacklist - SortableWhitelist = sortWhitelist - NamePriority = namePriority - StripLabelLeadingSlashes = stripLabelLeadingSlashes - ShortenAbsoluteLabelsToRelative = shortenAbsoluteLabelsToRelative -} - -// MergeTables allows a user of the build package to override the special-case rules. The user-provided tables are merged into the built-in tables. -func MergeTables(labelArg, blacklist, listArg, sortableListArg, sortBlacklist, sortWhitelist map[string]bool, namePriority map[string]int, stripLabelLeadingSlashes, shortenAbsoluteLabelsToRelative bool) { - for k, v := range labelArg { - IsLabelArg[k] = v - } - for k, v := range blacklist { - LabelBlacklist[k] = v - } - for k, v := range listArg { - IsListArg[k] = v - } - for k, v := range sortableListArg { - IsSortableListArg[k] = v - } - for k, v := range sortBlacklist { - SortableBlacklist[k] = v - } - for k, v := range sortWhitelist { - SortableWhitelist[k] = v - } - for k, v := range namePriority { - NamePriority[k] = v - } - StripLabelLeadingSlashes = stripLabelLeadingSlashes || StripLabelLeadingSlashes - ShortenAbsoluteLabelsToRelative = shortenAbsoluteLabelsToRelative || ShortenAbsoluteLabelsToRelative -} diff --git a/vendor/github.com/bazelbuild/buildtools/wspace/BUILD b/vendor/github.com/bazelbuild/buildtools/wspace/BUILD deleted file mode 100644 index 8deb2e44fe3..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/wspace/BUILD +++ /dev/null @@ -1,24 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["workspace.go"], - importmap = "k8s.io/kubernetes/vendor/github.com/bazelbuild/buildtools/wspace", - importpath = "github.com/bazelbuild/buildtools/wspace", - visibility = ["//visibility:public"], - deps = ["//vendor/github.com/bazelbuild/buildtools/build:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/github.com/bazelbuild/buildtools/wspace/workspace.go b/vendor/github.com/bazelbuild/buildtools/wspace/workspace.go deleted file mode 100644 index 9ca226b43f3..00000000000 --- a/vendor/github.com/bazelbuild/buildtools/wspace/workspace.go +++ /dev/null @@ -1,114 +0,0 @@ -/* -Copyright 2016 Google Inc. 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 wspace provides a method to find the root of the bazel tree. -package wspace - -import ( - "io/ioutil" - "os" - "path/filepath" - "strings" - - "github.com/bazelbuild/buildtools/build" -) - -const workspaceFile = "WORKSPACE" - -func alwaysTrue(fi os.FileInfo) bool { - return true -} - -var repoRootFiles = map[string]func(os.FileInfo) bool{ - workspaceFile: alwaysTrue, - ".buckconfig": alwaysTrue, - "pants": func(fi os.FileInfo) bool { - return fi.Mode()&os.ModeType == 0 && fi.Mode()&0100 == 0100 - }, -} - -// findContextPath finds the context path inside of a WORKSPACE-rooted source tree. -func findContextPath(rootDir string) (string, error) { - if rootDir == "" { - return os.Getwd() - } - return rootDir, nil -} - -// FindWorkspaceRoot splits the current code context (the rootDir if present, -// the working directory if not.) It returns the path of the directory -// containing the WORKSPACE file, and the rest. -func FindWorkspaceRoot(rootDir string) (root string, rest string) { - wd, err := findContextPath(rootDir) - if err != nil { - return "", "" - } - if root, err = Find(wd); err != nil { - return "", "" - } - if len(wd) == len(root) { - return root, "" - } - return root, wd[len(root)+1:] -} - -// Find searches from the given dir and up for the WORKSPACE file -// returning the directory containing it, or an error if none found in the tree. -func Find(dir string) (string, error) { - if dir == "" || dir == "/" || dir == "." || (len(dir) == 3 && strings.HasSuffix(dir, ":\\")) { - return "", os.ErrNotExist - } - for repoRootFile, fiFunc := range repoRootFiles { - if fi, err := os.Stat(filepath.Join(dir, repoRootFile)); err == nil && fiFunc(fi) { - return dir, nil - } else if !os.IsNotExist(err) { - return "", err - } - } - return Find(filepath.Dir(dir)) -} - -// FindRepoBuildFiles parses the WORKSPACE to find BUILD files for non-Bazel -// external repositories, specifically those defined by one of these rules: -// new_local_repository(), new_git_repository(), new_http_archive() -func FindRepoBuildFiles(root string) (map[string]string, error) { - ws := filepath.Join(root, workspaceFile) - kinds := []string{ - "new_local_repository", - "new_git_repository", - "new_http_archive", - } - data, err := ioutil.ReadFile(ws) - if err != nil { - return nil, err - } - ast, err := build.Parse(ws, data) - if err != nil { - return nil, err - } - files := make(map[string]string) - for _, kind := range kinds { - for _, r := range ast.Rules(kind) { - buildFile := r.AttrString("build_file") - if buildFile == "" { - continue - } - buildFile = strings.Replace(buildFile, ":", "/", -1) - files[r.Name()] = filepath.Join(root, buildFile) - } - } - return files, nil -} diff --git a/vendor/golang.org/x/tools/go/vcs/BUILD b/vendor/golang.org/x/tools/go/vcs/BUILD deleted file mode 100644 index 1f308f128d3..00000000000 --- a/vendor/golang.org/x/tools/go/vcs/BUILD +++ /dev/null @@ -1,28 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "discovery.go", - "env.go", - "http.go", - "vcs.go", - ], - importmap = "k8s.io/kubernetes/vendor/golang.org/x/tools/go/vcs", - importpath = "golang.org/x/tools/go/vcs", - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/golang.org/x/tools/go/vcs/discovery.go b/vendor/golang.org/x/tools/go/vcs/discovery.go deleted file mode 100644 index 2428d88852c..00000000000 --- a/vendor/golang.org/x/tools/go/vcs/discovery.go +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package vcs - -import ( - "encoding/xml" - "fmt" - "io" - "strings" -) - -// charsetReader returns a reader for the given charset. Currently -// it only supports UTF-8 and ASCII. Otherwise, it returns a meaningful -// error which is printed by go get, so the user can find why the package -// wasn't downloaded if the encoding is not supported. Note that, in -// order to reduce potential errors, ASCII is treated as UTF-8 (i.e. characters -// greater than 0x7f are not rejected). -func charsetReader(charset string, input io.Reader) (io.Reader, error) { - switch strings.ToLower(charset) { - case "ascii": - return input, nil - default: - return nil, fmt.Errorf("can't decode XML document using charset %q", charset) - } -} - -// parseMetaGoImports returns meta imports from the HTML in r. -// Parsing ends at the end of the section or the beginning of the . -// -// This copy of cmd/go/internal/vcs.parseMetaGoImports always operates -// in IgnoreMod ModuleMode. -func parseMetaGoImports(r io.Reader) (imports []metaImport, err error) { - d := xml.NewDecoder(r) - d.CharsetReader = charsetReader - d.Strict = false - var t xml.Token - for { - t, err = d.RawToken() - if err != nil { - if err == io.EOF || len(imports) > 0 { - err = nil - } - return - } - if e, ok := t.(xml.StartElement); ok && strings.EqualFold(e.Name.Local, "body") { - return - } - if e, ok := t.(xml.EndElement); ok && strings.EqualFold(e.Name.Local, "head") { - return - } - e, ok := t.(xml.StartElement) - if !ok || !strings.EqualFold(e.Name.Local, "meta") { - continue - } - if attrValue(e.Attr, "name") != "go-import" { - continue - } - if f := strings.Fields(attrValue(e.Attr, "content")); len(f) == 3 { - // Ignore VCS type "mod", which is applicable only in module mode. - if f[1] == "mod" { - continue - } - imports = append(imports, metaImport{ - Prefix: f[0], - VCS: f[1], - RepoRoot: f[2], - }) - } - } -} - -// attrValue returns the attribute value for the case-insensitive key -// `name', or the empty string if nothing is found. -func attrValue(attrs []xml.Attr, name string) string { - for _, a := range attrs { - if strings.EqualFold(a.Name.Local, name) { - return a.Value - } - } - return "" -} diff --git a/vendor/golang.org/x/tools/go/vcs/env.go b/vendor/golang.org/x/tools/go/vcs/env.go deleted file mode 100644 index e846f5b3b86..00000000000 --- a/vendor/golang.org/x/tools/go/vcs/env.go +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2013 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package vcs - -import ( - "os" - "strings" -) - -// envForDir returns a copy of the environment -// suitable for running in the given directory. -// The environment is the current process's environment -// but with an updated $PWD, so that an os.Getwd in the -// child will be faster. -func envForDir(dir string) []string { - env := os.Environ() - // Internally we only use rooted paths, so dir is rooted. - // Even if dir is not rooted, no harm done. - return mergeEnvLists([]string{"PWD=" + dir}, env) -} - -// mergeEnvLists merges the two environment lists such that -// variables with the same name in "in" replace those in "out". -func mergeEnvLists(in, out []string) []string { -NextVar: - for _, inkv := range in { - k := strings.SplitAfterN(inkv, "=", 2)[0] - for i, outkv := range out { - if strings.HasPrefix(outkv, k) { - out[i] = inkv - continue NextVar - } - } - out = append(out, inkv) - } - return out -} diff --git a/vendor/golang.org/x/tools/go/vcs/http.go b/vendor/golang.org/x/tools/go/vcs/http.go deleted file mode 100644 index 96188185cb6..00000000000 --- a/vendor/golang.org/x/tools/go/vcs/http.go +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package vcs - -import ( - "fmt" - "io" - "io/ioutil" - "log" - "net/http" - "net/url" -) - -// httpClient is the default HTTP client, but a variable so it can be -// changed by tests, without modifying http.DefaultClient. -var httpClient = http.DefaultClient - -// httpGET returns the data from an HTTP GET request for the given URL. -func httpGET(url string) ([]byte, error) { - resp, err := httpClient.Get(url) - if err != nil { - return nil, err - } - defer resp.Body.Close() - if resp.StatusCode != 200 { - return nil, fmt.Errorf("%s: %s", url, resp.Status) - } - b, err := ioutil.ReadAll(resp.Body) - if err != nil { - return nil, fmt.Errorf("%s: %v", url, err) - } - return b, nil -} - -// httpsOrHTTP returns the body of either the importPath's -// https resource or, if unavailable, the http resource. -func httpsOrHTTP(importPath string) (urlStr string, body io.ReadCloser, err error) { - fetch := func(scheme string) (urlStr string, res *http.Response, err error) { - u, err := url.Parse(scheme + "://" + importPath) - if err != nil { - return "", nil, err - } - u.RawQuery = "go-get=1" - urlStr = u.String() - if Verbose { - log.Printf("Fetching %s", urlStr) - } - res, err = httpClient.Get(urlStr) - return - } - closeBody := func(res *http.Response) { - if res != nil { - res.Body.Close() - } - } - urlStr, res, err := fetch("https") - if err != nil || res.StatusCode != 200 { - if Verbose { - if err != nil { - log.Printf("https fetch failed.") - } else { - log.Printf("ignoring https fetch with status code %d", res.StatusCode) - } - } - closeBody(res) - urlStr, res, err = fetch("http") - } - if err != nil { - closeBody(res) - return "", nil, err - } - // Note: accepting a non-200 OK here, so people can serve a - // meta import in their http 404 page. - if Verbose { - log.Printf("Parsing meta tags from %s (status code %d)", urlStr, res.StatusCode) - } - return urlStr, res.Body, nil -} diff --git a/vendor/golang.org/x/tools/go/vcs/vcs.go b/vendor/golang.org/x/tools/go/vcs/vcs.go deleted file mode 100644 index 6e58ac74911..00000000000 --- a/vendor/golang.org/x/tools/go/vcs/vcs.go +++ /dev/null @@ -1,759 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package vcs exposes functions for resolving import paths -// and using version control systems, which can be used to -// implement behavior similar to the standard "go get" command. -// -// This package is a copy of internal code in package cmd/go/internal/get, -// modified to make the identifiers exported. It's provided here -// for developers who want to write tools with similar semantics. -// It needs to be manually kept in sync with upstream when changes are -// made to cmd/go/internal/get; see https://golang.org/issue/11490. -// -package vcs // import "golang.org/x/tools/go/vcs" - -import ( - "bytes" - "encoding/json" - "errors" - "fmt" - "log" - "net/url" - "os" - "os/exec" - "path/filepath" - "regexp" - "strconv" - "strings" -) - -// Verbose enables verbose operation logging. -var Verbose bool - -// ShowCmd controls whether VCS commands are printed. -var ShowCmd bool - -// A Cmd describes how to use a version control system -// like Mercurial, Git, or Subversion. -type Cmd struct { - Name string - Cmd string // name of binary to invoke command - - CreateCmd string // command to download a fresh copy of a repository - DownloadCmd string // command to download updates into an existing repository - - TagCmd []TagCmd // commands to list tags - TagLookupCmd []TagCmd // commands to lookup tags before running tagSyncCmd - TagSyncCmd string // command to sync to specific tag - TagSyncDefault string // command to sync to default tag - - LogCmd string // command to list repository changelogs in an XML format - - Scheme []string - PingCmd string -} - -// A TagCmd describes a command to list available tags -// that can be passed to Cmd.TagSyncCmd. -type TagCmd struct { - Cmd string // command to list tags - Pattern string // regexp to extract tags from list -} - -// vcsList lists the known version control systems -var vcsList = []*Cmd{ - vcsHg, - vcsGit, - vcsSvn, - vcsBzr, -} - -// ByCmd returns the version control system for the given -// command name (hg, git, svn, bzr). -func ByCmd(cmd string) *Cmd { - for _, vcs := range vcsList { - if vcs.Cmd == cmd { - return vcs - } - } - return nil -} - -// vcsHg describes how to use Mercurial. -var vcsHg = &Cmd{ - Name: "Mercurial", - Cmd: "hg", - - CreateCmd: "clone -U {repo} {dir}", - DownloadCmd: "pull", - - // We allow both tag and branch names as 'tags' - // for selecting a version. This lets people have - // a go.release.r60 branch and a go1 branch - // and make changes in both, without constantly - // editing .hgtags. - TagCmd: []TagCmd{ - {"tags", `^(\S+)`}, - {"branches", `^(\S+)`}, - }, - TagSyncCmd: "update -r {tag}", - TagSyncDefault: "update default", - - LogCmd: "log --encoding=utf-8 --limit={limit} --template={template}", - - Scheme: []string{"https", "http", "ssh"}, - PingCmd: "identify {scheme}://{repo}", -} - -// vcsGit describes how to use Git. -var vcsGit = &Cmd{ - Name: "Git", - Cmd: "git", - - CreateCmd: "clone {repo} {dir}", - DownloadCmd: "pull --ff-only", - - TagCmd: []TagCmd{ - // tags/xxx matches a git tag named xxx - // origin/xxx matches a git branch named xxx on the default remote repository - {"show-ref", `(?:tags|origin)/(\S+)$`}, - }, - TagLookupCmd: []TagCmd{ - {"show-ref tags/{tag} origin/{tag}", `((?:tags|origin)/\S+)$`}, - }, - TagSyncCmd: "checkout {tag}", - TagSyncDefault: "checkout master", - - Scheme: []string{"git", "https", "http", "git+ssh"}, - PingCmd: "ls-remote {scheme}://{repo}", -} - -// vcsBzr describes how to use Bazaar. -var vcsBzr = &Cmd{ - Name: "Bazaar", - Cmd: "bzr", - - CreateCmd: "branch {repo} {dir}", - - // Without --overwrite bzr will not pull tags that changed. - // Replace by --overwrite-tags after http://pad.lv/681792 goes in. - DownloadCmd: "pull --overwrite", - - TagCmd: []TagCmd{{"tags", `^(\S+)`}}, - TagSyncCmd: "update -r {tag}", - TagSyncDefault: "update -r revno:-1", - - Scheme: []string{"https", "http", "bzr", "bzr+ssh"}, - PingCmd: "info {scheme}://{repo}", -} - -// vcsSvn describes how to use Subversion. -var vcsSvn = &Cmd{ - Name: "Subversion", - Cmd: "svn", - - CreateCmd: "checkout {repo} {dir}", - DownloadCmd: "update", - - // There is no tag command in subversion. - // The branch information is all in the path names. - - LogCmd: "log --xml --limit={limit}", - - Scheme: []string{"https", "http", "svn", "svn+ssh"}, - PingCmd: "info {scheme}://{repo}", -} - -func (v *Cmd) String() string { - return v.Name -} - -// run runs the command line cmd in the given directory. -// keyval is a list of key, value pairs. run expands -// instances of {key} in cmd into value, but only after -// splitting cmd into individual arguments. -// If an error occurs, run prints the command line and the -// command's combined stdout+stderr to standard error. -// Otherwise run discards the command's output. -func (v *Cmd) run(dir string, cmd string, keyval ...string) error { - _, err := v.run1(dir, cmd, keyval, true) - return err -} - -// runVerboseOnly is like run but only generates error output to standard error in verbose mode. -func (v *Cmd) runVerboseOnly(dir string, cmd string, keyval ...string) error { - _, err := v.run1(dir, cmd, keyval, false) - return err -} - -// runOutput is like run but returns the output of the command. -func (v *Cmd) runOutput(dir string, cmd string, keyval ...string) ([]byte, error) { - return v.run1(dir, cmd, keyval, true) -} - -// run1 is the generalized implementation of run and runOutput. -func (v *Cmd) run1(dir string, cmdline string, keyval []string, verbose bool) ([]byte, error) { - m := make(map[string]string) - for i := 0; i < len(keyval); i += 2 { - m[keyval[i]] = keyval[i+1] - } - args := strings.Fields(cmdline) - for i, arg := range args { - args[i] = expand(m, arg) - } - - _, err := exec.LookPath(v.Cmd) - if err != nil { - fmt.Fprintf(os.Stderr, - "go: missing %s command. See http://golang.org/s/gogetcmd\n", - v.Name) - return nil, err - } - - cmd := exec.Command(v.Cmd, args...) - cmd.Dir = dir - cmd.Env = envForDir(cmd.Dir) - if ShowCmd { - fmt.Printf("cd %s\n", dir) - fmt.Printf("%s %s\n", v.Cmd, strings.Join(args, " ")) - } - var buf bytes.Buffer - cmd.Stdout = &buf - cmd.Stderr = &buf - err = cmd.Run() - out := buf.Bytes() - if err != nil { - if verbose || Verbose { - fmt.Fprintf(os.Stderr, "# cd %s; %s %s\n", dir, v.Cmd, strings.Join(args, " ")) - os.Stderr.Write(out) - } - return nil, err - } - return out, nil -} - -// Ping pings the repo to determine if scheme used is valid. -// This repo must be pingable with this scheme and VCS. -func (v *Cmd) Ping(scheme, repo string) error { - return v.runVerboseOnly(".", v.PingCmd, "scheme", scheme, "repo", repo) -} - -// Create creates a new copy of repo in dir. -// The parent of dir must exist; dir must not. -func (v *Cmd) Create(dir, repo string) error { - return v.run(".", v.CreateCmd, "dir", dir, "repo", repo) -} - -// CreateAtRev creates a new copy of repo in dir at revision rev. -// The parent of dir must exist; dir must not. -// rev must be a valid revision in repo. -func (v *Cmd) CreateAtRev(dir, repo, rev string) error { - if err := v.Create(dir, repo); err != nil { - return err - } - return v.run(dir, v.TagSyncCmd, "tag", rev) -} - -// Download downloads any new changes for the repo in dir. -// dir must be a valid VCS repo compatible with v. -func (v *Cmd) Download(dir string) error { - return v.run(dir, v.DownloadCmd) -} - -// Tags returns the list of available tags for the repo in dir. -// dir must be a valid VCS repo compatible with v. -func (v *Cmd) Tags(dir string) ([]string, error) { - var tags []string - for _, tc := range v.TagCmd { - out, err := v.runOutput(dir, tc.Cmd) - if err != nil { - return nil, err - } - re := regexp.MustCompile(`(?m-s)` + tc.Pattern) - for _, m := range re.FindAllStringSubmatch(string(out), -1) { - tags = append(tags, m[1]) - } - } - return tags, nil -} - -// TagSync syncs the repo in dir to the named tag, which is either a -// tag returned by Tags or the empty string (the default tag). -// dir must be a valid VCS repo compatible with v and the tag must exist. -func (v *Cmd) TagSync(dir, tag string) error { - if v.TagSyncCmd == "" { - return nil - } - if tag != "" { - for _, tc := range v.TagLookupCmd { - out, err := v.runOutput(dir, tc.Cmd, "tag", tag) - if err != nil { - return err - } - re := regexp.MustCompile(`(?m-s)` + tc.Pattern) - m := re.FindStringSubmatch(string(out)) - if len(m) > 1 { - tag = m[1] - break - } - } - } - if tag == "" && v.TagSyncDefault != "" { - return v.run(dir, v.TagSyncDefault) - } - return v.run(dir, v.TagSyncCmd, "tag", tag) -} - -// Log logs the changes for the repo in dir. -// dir must be a valid VCS repo compatible with v. -func (v *Cmd) Log(dir, logTemplate string) ([]byte, error) { - if err := v.Download(dir); err != nil { - return []byte{}, err - } - - const N = 50 // how many revisions to grab - return v.runOutput(dir, v.LogCmd, "limit", strconv.Itoa(N), "template", logTemplate) -} - -// LogAtRev logs the change for repo in dir at the rev revision. -// dir must be a valid VCS repo compatible with v. -// rev must be a valid revision for the repo in dir. -func (v *Cmd) LogAtRev(dir, rev, logTemplate string) ([]byte, error) { - if err := v.Download(dir); err != nil { - return []byte{}, err - } - - // Append revision flag to LogCmd. - logAtRevCmd := v.LogCmd + " --rev=" + rev - return v.runOutput(dir, logAtRevCmd, "limit", strconv.Itoa(1), "template", logTemplate) -} - -// A vcsPath describes how to convert an import path into a -// version control system and repository name. -type vcsPath struct { - prefix string // prefix this description applies to - re string // pattern for import path - repo string // repository to use (expand with match of re) - vcs string // version control system to use (expand with match of re) - check func(match map[string]string) error // additional checks - ping bool // ping for scheme to use to download repo - - regexp *regexp.Regexp // cached compiled form of re -} - -// FromDir inspects dir and its parents to determine the -// version control system and code repository to use. -// On return, root is the import path -// corresponding to the root of the repository. -func FromDir(dir, srcRoot string) (vcs *Cmd, root string, err error) { - // Clean and double-check that dir is in (a subdirectory of) srcRoot. - dir = filepath.Clean(dir) - srcRoot = filepath.Clean(srcRoot) - if len(dir) <= len(srcRoot) || dir[len(srcRoot)] != filepath.Separator { - return nil, "", fmt.Errorf("directory %q is outside source root %q", dir, srcRoot) - } - - var vcsRet *Cmd - var rootRet string - - origDir := dir - for len(dir) > len(srcRoot) { - for _, vcs := range vcsList { - if _, err := os.Stat(filepath.Join(dir, "."+vcs.Cmd)); err == nil { - root := filepath.ToSlash(dir[len(srcRoot)+1:]) - // Record first VCS we find, but keep looking, - // to detect mistakes like one kind of VCS inside another. - if vcsRet == nil { - vcsRet = vcs - rootRet = root - continue - } - // Allow .git inside .git, which can arise due to submodules. - if vcsRet == vcs && vcs.Cmd == "git" { - continue - } - // Otherwise, we have one VCS inside a different VCS. - return nil, "", fmt.Errorf("directory %q uses %s, but parent %q uses %s", - filepath.Join(srcRoot, rootRet), vcsRet.Cmd, filepath.Join(srcRoot, root), vcs.Cmd) - } - } - - // Move to parent. - ndir := filepath.Dir(dir) - if len(ndir) >= len(dir) { - // Shouldn't happen, but just in case, stop. - break - } - dir = ndir - } - - if vcsRet != nil { - return vcsRet, rootRet, nil - } - - return nil, "", fmt.Errorf("directory %q is not using a known version control system", origDir) -} - -// RepoRoot represents a version control system, a repo, and a root of -// where to put it on disk. -type RepoRoot struct { - VCS *Cmd - - // Repo is the repository URL, including scheme. - Repo string - - // Root is the import path corresponding to the root of the - // repository. - Root string -} - -// RepoRootForImportPath analyzes importPath to determine the -// version control system, and code repository to use. -func RepoRootForImportPath(importPath string, verbose bool) (*RepoRoot, error) { - rr, err := RepoRootForImportPathStatic(importPath, "") - if err == errUnknownSite { - rr, err = RepoRootForImportDynamic(importPath, verbose) - - // RepoRootForImportDynamic returns error detail - // that is irrelevant if the user didn't intend to use a - // dynamic import in the first place. - // Squelch it. - if err != nil { - if Verbose { - log.Printf("import %q: %v", importPath, err) - } - err = fmt.Errorf("unrecognized import path %q", importPath) - } - } - - if err == nil && strings.Contains(importPath, "...") && strings.Contains(rr.Root, "...") { - // Do not allow wildcards in the repo root. - rr = nil - err = fmt.Errorf("cannot expand ... in %q", importPath) - } - return rr, err -} - -var errUnknownSite = errors.New("dynamic lookup required to find mapping") - -// RepoRootForImportPathStatic attempts to map importPath to a -// RepoRoot using the commonly-used VCS hosting sites in vcsPaths -// (github.com/user/dir), or from a fully-qualified importPath already -// containing its VCS type (foo.com/repo.git/dir) -// -// If scheme is non-empty, that scheme is forced. -func RepoRootForImportPathStatic(importPath, scheme string) (*RepoRoot, error) { - if strings.Contains(importPath, "://") { - return nil, fmt.Errorf("invalid import path %q", importPath) - } - for _, srv := range vcsPaths { - if !strings.HasPrefix(importPath, srv.prefix) { - continue - } - m := srv.regexp.FindStringSubmatch(importPath) - if m == nil { - if srv.prefix != "" { - return nil, fmt.Errorf("invalid %s import path %q", srv.prefix, importPath) - } - continue - } - - // Build map of named subexpression matches for expand. - match := map[string]string{ - "prefix": srv.prefix, - "import": importPath, - } - for i, name := range srv.regexp.SubexpNames() { - if name != "" && match[name] == "" { - match[name] = m[i] - } - } - if srv.vcs != "" { - match["vcs"] = expand(match, srv.vcs) - } - if srv.repo != "" { - match["repo"] = expand(match, srv.repo) - } - if srv.check != nil { - if err := srv.check(match); err != nil { - return nil, err - } - } - vcs := ByCmd(match["vcs"]) - if vcs == nil { - return nil, fmt.Errorf("unknown version control system %q", match["vcs"]) - } - if srv.ping { - if scheme != "" { - match["repo"] = scheme + "://" + match["repo"] - } else { - for _, scheme := range vcs.Scheme { - if vcs.Ping(scheme, match["repo"]) == nil { - match["repo"] = scheme + "://" + match["repo"] - break - } - } - } - } - rr := &RepoRoot{ - VCS: vcs, - Repo: match["repo"], - Root: match["root"], - } - return rr, nil - } - return nil, errUnknownSite -} - -// RepoRootForImportDynamic finds a *RepoRoot for a custom domain that's not -// statically known by RepoRootForImportPathStatic. -// -// This handles custom import paths like "name.tld/pkg/foo" or just "name.tld". -func RepoRootForImportDynamic(importPath string, verbose bool) (*RepoRoot, error) { - slash := strings.Index(importPath, "/") - if slash < 0 { - slash = len(importPath) - } - host := importPath[:slash] - if !strings.Contains(host, ".") { - return nil, errors.New("import path doesn't contain a hostname") - } - urlStr, body, err := httpsOrHTTP(importPath) - if err != nil { - return nil, fmt.Errorf("http/https fetch: %v", err) - } - defer body.Close() - imports, err := parseMetaGoImports(body) - if err != nil { - return nil, fmt.Errorf("parsing %s: %v", importPath, err) - } - metaImport, err := matchGoImport(imports, importPath) - if err != nil { - if err != errNoMatch { - return nil, fmt.Errorf("parse %s: %v", urlStr, err) - } - return nil, fmt.Errorf("parse %s: no go-import meta tags", urlStr) - } - if verbose { - log.Printf("get %q: found meta tag %#v at %s", importPath, metaImport, urlStr) - } - // If the import was "uni.edu/bob/project", which said the - // prefix was "uni.edu" and the RepoRoot was "evilroot.com", - // make sure we don't trust Bob and check out evilroot.com to - // "uni.edu" yet (possibly overwriting/preempting another - // non-evil student). Instead, first verify the root and see - // if it matches Bob's claim. - if metaImport.Prefix != importPath { - if verbose { - log.Printf("get %q: verifying non-authoritative meta tag", importPath) - } - urlStr0 := urlStr - urlStr, body, err = httpsOrHTTP(metaImport.Prefix) - if err != nil { - return nil, fmt.Errorf("fetch %s: %v", urlStr, err) - } - imports, err := parseMetaGoImports(body) - if err != nil { - return nil, fmt.Errorf("parsing %s: %v", importPath, err) - } - if len(imports) == 0 { - return nil, fmt.Errorf("fetch %s: no go-import meta tag", urlStr) - } - metaImport2, err := matchGoImport(imports, importPath) - if err != nil || metaImport != metaImport2 { - return nil, fmt.Errorf("%s and %s disagree about go-import for %s", urlStr0, urlStr, metaImport.Prefix) - } - } - - if err := validateRepoRoot(metaImport.RepoRoot); err != nil { - return nil, fmt.Errorf("%s: invalid repo root %q: %v", urlStr, metaImport.RepoRoot, err) - } - rr := &RepoRoot{ - VCS: ByCmd(metaImport.VCS), - Repo: metaImport.RepoRoot, - Root: metaImport.Prefix, - } - if rr.VCS == nil { - return nil, fmt.Errorf("%s: unknown vcs %q", urlStr, metaImport.VCS) - } - return rr, nil -} - -// validateRepoRoot returns an error if repoRoot does not seem to be -// a valid URL with scheme. -func validateRepoRoot(repoRoot string) error { - url, err := url.Parse(repoRoot) - if err != nil { - return err - } - if url.Scheme == "" { - return errors.New("no scheme") - } - return nil -} - -// metaImport represents the parsed tags from HTML files. -type metaImport struct { - Prefix, VCS, RepoRoot string -} - -// errNoMatch is returned from matchGoImport when there's no applicable match. -var errNoMatch = errors.New("no import match") - -// pathPrefix reports whether sub is a prefix of s, -// only considering entire path components. -func pathPrefix(s, sub string) bool { - // strings.HasPrefix is necessary but not sufficient. - if !strings.HasPrefix(s, sub) { - return false - } - // The remainder after the prefix must either be empty or start with a slash. - rem := s[len(sub):] - return rem == "" || rem[0] == '/' -} - -// matchGoImport returns the metaImport from imports matching importPath. -// An error is returned if there are multiple matches. -// errNoMatch is returned if none match. -func matchGoImport(imports []metaImport, importPath string) (_ metaImport, err error) { - match := -1 - for i, im := range imports { - if !pathPrefix(importPath, im.Prefix) { - continue - } - - if match != -1 { - err = fmt.Errorf("multiple meta tags match import path %q", importPath) - return - } - match = i - } - if match == -1 { - err = errNoMatch - return - } - return imports[match], nil -} - -// expand rewrites s to replace {k} with match[k] for each key k in match. -func expand(match map[string]string, s string) string { - for k, v := range match { - s = strings.Replace(s, "{"+k+"}", v, -1) - } - return s -} - -// vcsPaths lists the known vcs paths. -var vcsPaths = []*vcsPath{ - // Github - { - prefix: "github.com/", - re: `^(?Pgithub\.com/[A-Za-z0-9_.\-]+/[A-Za-z0-9_.\-]+)(/[\p{L}0-9_.\-]+)*$`, - vcs: "git", - repo: "https://{root}", - check: noVCSSuffix, - }, - - // Bitbucket - { - prefix: "bitbucket.org/", - re: `^(?Pbitbucket\.org/(?P[A-Za-z0-9_.\-]+/[A-Za-z0-9_.\-]+))(/[A-Za-z0-9_.\-]+)*$`, - repo: "https://{root}", - check: bitbucketVCS, - }, - - // Launchpad - { - prefix: "launchpad.net/", - re: `^(?Plaunchpad\.net/((?P[A-Za-z0-9_.\-]+)(?P/[A-Za-z0-9_.\-]+)?|~[A-Za-z0-9_.\-]+/(\+junk|[A-Za-z0-9_.\-]+)/[A-Za-z0-9_.\-]+))(/[A-Za-z0-9_.\-]+)*$`, - vcs: "bzr", - repo: "https://{root}", - check: launchpadVCS, - }, - - // Git at OpenStack - { - prefix: "git.openstack.org", - re: `^(?Pgit\.openstack\.org/[A-Za-z0-9_.\-]+/[A-Za-z0-9_.\-]+)(\.git)?(/[A-Za-z0-9_.\-]+)*$`, - vcs: "git", - repo: "https://{root}", - check: noVCSSuffix, - }, - - // General syntax for any server. - { - re: `^(?P(?P([a-z0-9.\-]+\.)+[a-z0-9.\-]+(:[0-9]+)?/[A-Za-z0-9_.\-/]*?)\.(?Pbzr|git|hg|svn))(/[A-Za-z0-9_.\-]+)*$`, - ping: true, - }, -} - -func init() { - // fill in cached regexps. - // Doing this eagerly discovers invalid regexp syntax - // without having to run a command that needs that regexp. - for _, srv := range vcsPaths { - srv.regexp = regexp.MustCompile(srv.re) - } -} - -// noVCSSuffix checks that the repository name does not -// end in .foo for any version control system foo. -// The usual culprit is ".git". -func noVCSSuffix(match map[string]string) error { - repo := match["repo"] - for _, vcs := range vcsList { - if strings.HasSuffix(repo, "."+vcs.Cmd) { - return fmt.Errorf("invalid version control suffix in %s path", match["prefix"]) - } - } - return nil -} - -// bitbucketVCS determines the version control system for a -// Bitbucket repository, by using the Bitbucket API. -func bitbucketVCS(match map[string]string) error { - if err := noVCSSuffix(match); err != nil { - return err - } - - var resp struct { - SCM string `json:"scm"` - } - url := expand(match, "https://api.bitbucket.org/2.0/repositories/{bitname}?fields=scm") - data, err := httpGET(url) - if err != nil { - return err - } - if err := json.Unmarshal(data, &resp); err != nil { - return fmt.Errorf("decoding %s: %v", url, err) - } - - if ByCmd(resp.SCM) != nil { - match["vcs"] = resp.SCM - if resp.SCM == "git" { - match["repo"] += ".git" - } - return nil - } - - return fmt.Errorf("unable to detect version control system for bitbucket.org/ path") -} - -// launchpadVCS solves the ambiguity for "lp.net/project/foo". In this case, -// "foo" could be a series name registered in Launchpad with its own branch, -// and it could also be the name of a directory within the main project -// branch one level up. -func launchpadVCS(match map[string]string) error { - if match["project"] == "" || match["series"] == "" { - return nil - } - _, err := httpGET(expand(match, "https://code.launchpad.net/{project}{series}/.bzr/branch-format")) - if err != nil { - match["root"] = expand(match, "launchpad.net/{project}") - match["repo"] = expand(match, "https://{root}") - } - return nil -} diff --git a/vendor/k8s.io/repo-infra/LICENSE b/vendor/k8s.io/repo-infra/LICENSE deleted file mode 100644 index 8dada3edaf5..00000000000 --- a/vendor/k8s.io/repo-infra/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - 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. diff --git a/vendor/k8s.io/repo-infra/cmd/kazel/BUILD b/vendor/k8s.io/repo-infra/cmd/kazel/BUILD deleted file mode 100644 index 8f559f39384..00000000000 --- a/vendor/k8s.io/repo-infra/cmd/kazel/BUILD +++ /dev/null @@ -1,40 +0,0 @@ -load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library") - -go_library( - name = "go_default_library", - srcs = [ - "config.go", - "diff.go", - "generator.go", - "kazel.go", - "sourcerer.go", - ], - importmap = "k8s.io/kubernetes/vendor/k8s.io/repo-infra/cmd/kazel", - importpath = "k8s.io/repo-infra/cmd/kazel", - visibility = ["//visibility:private"], - deps = [ - "//vendor/github.com/bazelbuild/buildtools/build:go_default_library", - "//vendor/k8s.io/klog:go_default_library", - ], -) - -go_binary( - name = "kazel", - embed = [":go_default_library"], - tags = ["manual"], - visibility = ["//visibility:public"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], - visibility = ["//visibility:public"], -) diff --git a/vendor/k8s.io/repo-infra/cmd/kazel/README.rst b/vendor/k8s.io/repo-infra/cmd/kazel/README.rst deleted file mode 100644 index 2cc96aee7cd..00000000000 --- a/vendor/k8s.io/repo-infra/cmd/kazel/README.rst +++ /dev/null @@ -1,90 +0,0 @@ -kazel - a BUILD file generator for go and bazel -=============================================== - -Requirements: -############# - -* Your project must be somewhat compatible with go tool because - kazel uses go tool to parse your import tree. -* You must have a **GOPATH** and **GOROOT** setup and your project must - be in the correct location in your **GOPATH**. -* Your ``./vendor`` directory may not contain ``BUILD`` files. - -Usage: -###### - -1. Get kazel by running ``go get k8s.io/repo-infra/kazel``. - -2. Create a ``.kazelcfg.json`` in the root of the repository. For the - kazel repository, the ``.kazelcfg.json`` would look like: - - .. code-block:: json - - { - "GoPrefix": "k8s.io/repo-infra", - "SrcDirs": [ - "./kazel" - ], - "SkippedPaths": [ - ".*foobar(baz)?.*$" - ] - } - -3. Run kazel: - - .. code-block:: bash - - $ kazel -root=$GOPATH/src/k8s.io/repo-infra - -Defaults: -######### - -* **SrcDirs** in ``.kazelcfg.json`` defaults to ``["./"]`` -* ``-root`` option defaults to the current working directory - -Automanagement: -############### - -kazel reconciles rules that have the "**automanaged**" tag. If -you no longer want kazel to manage a rule, you can remove the -**automanaged** tag and kazel will no longer manage that rule. - -kazel only manages srcs, deps, and library attributes of a -rule after initial creation so you can add and managed other -attributes like data and copts and kazel will respect your -changes. - -kazel automatically formats all ``BUILD`` files in your repository -except for those matching **SkippedPaths**. - -Adding "sources" rules: -####################### - -If you set "**AddSourcesRules**": ``true`` in your ``.kazelcfg.json``, -kazel will create "**package-srcs**" and "**all-srcs**" rules in every -package. - -The "**package-srcs**" rule is a glob matching all files in the -package recursively, but not any files owned by packages in -subdirectories. - -The "**all-srcs**" rule includes both the "**package-srcs**" rule and -the "**all-srcs**" rules of all subpackages; i.e. **//:all-srcs** will -include all files in your repository. - -The "**package-srcs**" rule defaults to private visibility, -since it is safer to depend on the "**all-srcs**" rule: if a -subpackage is added, the "**package-srcs**" rule will no longer -include those files. - -You can remove the "**automanaged**" tag from the "**package-srcs**" -rule if you need to modify the glob (such as adding excludes). -It's recommended that you leave the "**all-srcs**" rule -automanaged. - -Validating BUILD files in CI: -############################# - -If you run kazel with ``--validate``, it will not update any ``BUILD`` files, but it -will exit nonzero if any ``BUILD`` files are out-of-date. You can add ``--print-diff`` -to print out the changes needed. diff --git a/vendor/k8s.io/repo-infra/cmd/kazel/config.go b/vendor/k8s.io/repo-infra/cmd/kazel/config.go deleted file mode 100644 index 3d2363196ce..00000000000 --- a/vendor/k8s.io/repo-infra/cmd/kazel/config.go +++ /dev/null @@ -1,70 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -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 ( - "encoding/json" - "io/ioutil" -) - -// Cfg defines the configuration options for kazel. -type Cfg struct { - GoPrefix string - // evaluated recursively, defaults to ["."] - SrcDirs []string - // regexps that match packages to skip - SkippedPaths []string - // regexps that match packages to skip for k8s codegen. - // note that this skips anything matched by SkippedPaths as well. - SkippedK8sCodegenPaths []string - // whether to add "pkg-srcs" and "all-srcs" filegroups - // note that this operates on the entire tree (not just SrcsDirs) but skips anything matching SkippedPaths - AddSourcesRules bool - // whether to have multiple build files in vendor/ or just one. - VendorMultipleBuildFiles bool - // Whether to manage the upstream Go rules provided by bazelbuild/rules_go. - // If using gazelle, set this to false (or omit). - ManageGoRules bool - // If defined, metadata parsed from "+k8s:" codegen build tags will be saved into this file. - K8sCodegenBzlFile string - // If defined, contains the boilerplate text to be included in the header of the generated bzl file. - K8sCodegenBoilerplateFile string - // Which tags to include in the codegen bzl file. - // Include only the name of the tag. - // For example, to include +k8s:foo=bar, list "foo" here. - K8sCodegenTags []string -} - -// ReadCfg reads and unmarshals the specified json file into a Cfg struct. -func ReadCfg(cfgPath string) (*Cfg, error) { - b, err := ioutil.ReadFile(cfgPath) - if err != nil { - return nil, err - } - var cfg Cfg - if err := json.Unmarshal(b, &cfg); err != nil { - return nil, err - } - defaultCfg(&cfg) - return &cfg, nil -} - -func defaultCfg(c *Cfg) { - if len(c.SrcDirs) == 0 { - c.SrcDirs = []string{"."} - } -} diff --git a/vendor/k8s.io/repo-infra/cmd/kazel/diff.go b/vendor/k8s.io/repo-infra/cmd/kazel/diff.go deleted file mode 100644 index 37bed9381cd..00000000000 --- a/vendor/k8s.io/repo-infra/cmd/kazel/diff.go +++ /dev/null @@ -1,60 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -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 ( - "io/ioutil" - "os" - "os/exec" -) - -// Diff prints the unified diff of the two provided byte slices -// using the unix diff command. -func Diff(left, right []byte) error { - lf, err := ioutil.TempFile("/tmp", "actual-file-") - if err != nil { - return err - } - defer lf.Close() - defer os.Remove(lf.Name()) - - rf, err := ioutil.TempFile("/tmp", "expected-file-") - if err != nil { - return err - } - defer rf.Close() - defer os.Remove(rf.Name()) - - _, err = lf.Write(left) - if err != nil { - return err - } - lf.Close() - - _, err = rf.Write(right) - if err != nil { - return err - } - rf.Close() - - cmd := exec.Command("/usr/bin/diff", "-u", lf.Name(), rf.Name()) - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - cmd.Run() - - return nil -} diff --git a/vendor/k8s.io/repo-infra/cmd/kazel/generator.go b/vendor/k8s.io/repo-infra/cmd/kazel/generator.go deleted file mode 100644 index 2cb8c0fc7e9..00000000000 --- a/vendor/k8s.io/repo-infra/cmd/kazel/generator.go +++ /dev/null @@ -1,178 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -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 ( - "io/ioutil" - "os" - "path/filepath" - "regexp" - "sort" - "strings" - - "github.com/bazelbuild/buildtools/build" -) - -var ( - // Generator tags are specified using the format "// +k8s:name=value" - genTagRe = regexp.MustCompile(`//\s*\+k8s:([^\s=]+)(?:=(\S+))\s*\n`) -) - -// {tagName: {value: {pkgs}}} or {tagName: {pkg: {values}}} -type generatorTagsMap map[string]map[string]map[string]bool - -// extractTags finds k8s codegen tags found in b listed in requestedTags. -// It returns a map of {tag name: slice of values for that tag}. -func extractTags(b []byte, requestedTags map[string]bool) map[string][]string { - tags := make(map[string][]string) - matches := genTagRe.FindAllSubmatch(b, -1) - for _, m := range matches { - if len(m) >= 3 { - tag, values := string(m[1]), string(m[2]) - if _, requested := requestedTags[tag]; !requested { - continue - } - tags[tag] = append(tags[tag], strings.Split(values, ",")...) - } - } - return tags -} - -// findGeneratorTags searches for all packages under root that include a kubernetes generator -// tag comment. It does not follow symlinks, and any path in the configured skippedPaths -// or codegen skipped paths is skipped. -func (v *Vendorer) findGeneratorTags(root string, requestedTags map[string]bool) (tagsValuesPkgs, tagsPkgsValues generatorTagsMap, err error) { - tagsValuesPkgs = make(generatorTagsMap) - tagsPkgsValues = make(generatorTagsMap) - - err = filepath.Walk(root, func(path string, info os.FileInfo, err error) error { - if err != nil { - return err - } - pkg := filepath.Dir(path) - - for _, r := range v.skippedK8sCodegenPaths { - if r.MatchString(pkg) { - return filepath.SkipDir - } - } - - if !strings.HasSuffix(path, ".go") || strings.HasSuffix(path, "_test.go") { - return nil - } - - b, err := ioutil.ReadFile(path) - if err != nil { - return err - } - - for tag, values := range extractTags(b, requestedTags) { - if _, present := tagsValuesPkgs[tag]; !present { - tagsValuesPkgs[tag] = make(map[string]map[string]bool) - } - if _, present := tagsPkgsValues[tag]; !present { - tagsPkgsValues[tag] = make(map[string]map[string]bool) - } - if _, present := tagsPkgsValues[tag][pkg]; !present { - tagsPkgsValues[tag][pkg] = make(map[string]bool) - } - for _, v := range values { - if _, present := tagsValuesPkgs[tag][v]; !present { - tagsValuesPkgs[tag][v] = make(map[string]bool) - } - // Since multiple files in the same package may list a given tag/value, use a set to deduplicate. - tagsValuesPkgs[tag][v][pkg] = true - tagsPkgsValues[tag][pkg][v] = true - } - } - - return nil - }) - - if err != nil { - return nil, nil, err - } - - return -} - -// flattened returns a copy of the map with the final stringSet flattened into a sorted slice. -func flattened(m generatorTagsMap) map[string]map[string][]string { - flattened := make(map[string]map[string][]string) - for tag, subMap := range m { - flattened[tag] = make(map[string][]string) - for k, subSet := range subMap { - for v := range subSet { - flattened[tag][k] = append(flattened[tag][k], v) - } - sort.Strings(flattened[tag][k]) - } - } - return flattened -} - -// walkGenerated generates a k8s codegen bzl file that can be parsed by Starlark -// rules and macros to find packages needed k8s code generation. -// This involves reading all non-test go sources in the tree and looking for -// "+k8s:name=value" tags. Only those tags listed in K8sCodegenTags will be -// included. -// If a K8sCodegenBoilerplateFile was configured, the contents of this file -// will be included as the header of the generated bzl file. -// Returns true if there are diffs against the existing generated bzl file. -func (v *Vendorer) walkGenerated() (bool, error) { - if v.cfg.K8sCodegenBzlFile == "" { - return false, nil - } - // only include the specified tags - requestedTags := make(map[string]bool) - for _, tag := range v.cfg.K8sCodegenTags { - requestedTags[tag] = true - } - tagsValuesPkgs, tagsPkgsValues, err := v.findGeneratorTags(".", requestedTags) - if err != nil { - return false, err - } - - f := &build.File{ - Path: v.cfg.K8sCodegenBzlFile, - } - addCommentBefore(f, "#################################################") - addCommentBefore(f, "# # # # # # # # # # # # # # # # # # # # # # # # #") - addCommentBefore(f, "This file is autogenerated by kazel. DO NOT EDIT.") - addCommentBefore(f, "# # # # # # # # # # # # # # # # # # # # # # # # #") - addCommentBefore(f, "#################################################") - addCommentBefore(f, "") - - f.Stmt = append(f.Stmt, varExpr("go_prefix", "The go prefix passed to kazel", v.cfg.GoPrefix)) - f.Stmt = append(f.Stmt, varExpr("kazel_configured_tags", "The list of codegen tags kazel is configured to find", v.cfg.K8sCodegenTags)) - f.Stmt = append(f.Stmt, varExpr("tags_values_pkgs", "tags_values_pkgs is a dictionary mapping {k8s build tag: {tag value: [pkgs including that tag:value]}}", flattened(tagsValuesPkgs))) - f.Stmt = append(f.Stmt, varExpr("tags_pkgs_values", "tags_pkgs_values is a dictionary mapping {k8s build tag: {pkg: [tag values in pkg]}}", flattened(tagsPkgsValues))) - - var boilerplate []byte - if v.cfg.K8sCodegenBoilerplateFile != "" { - boilerplate, err = ioutil.ReadFile(v.cfg.K8sCodegenBoilerplateFile) - if err != nil { - return false, err - } - } - // Open existing file to use in diff mode. - _, err = os.Stat(f.Path) - if err != nil && !os.IsNotExist(err) { - return false, err - } - return writeFile(f.Path, f, boilerplate, !os.IsNotExist(err), v.dryRun) -} diff --git a/vendor/k8s.io/repo-infra/cmd/kazel/kazel.go b/vendor/k8s.io/repo-infra/cmd/kazel/kazel.go deleted file mode 100644 index ae04aeb535f..00000000000 --- a/vendor/k8s.io/repo-infra/cmd/kazel/kazel.go +++ /dev/null @@ -1,402 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -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 ( - "bytes" - "flag" - "fmt" - "io/ioutil" - "os" - "path/filepath" - "reflect" - "regexp" - "sort" - - "github.com/bazelbuild/buildtools/build" - - "k8s.io/klog" -) - -const ( - automanagedTag = "automanaged" -) - -var ( - root = flag.String("root", ".", "root of go source") - dryRun = flag.Bool("dry-run", false, "run in dry mode") - printDiff = flag.Bool("print-diff", false, "print diff to stdout") - validate = flag.Bool("validate", false, "run in dry mode and exit nonzero if any BUILD files need to be updated") - cfgPath = flag.String("cfg-path", ".kazelcfg.json", "path to kazel config (relative paths interpreted relative to -repo.") -) - -func main() { - flag.Parse() - flag.Set("alsologtostderr", "true") - if *root == "" { - klog.Fatalf("-root argument is required") - } - if *validate { - *dryRun = true - } - v, err := newVendorer(*root, *cfgPath, *dryRun) - if err != nil { - klog.Fatalf("unable to build vendorer: %v", err) - } - if err = os.Chdir(v.root); err != nil { - klog.Fatalf("cannot chdir into root %q: %v", v.root, err) - } - if v.cfg.ManageGoRules { - klog.Fatalf("kazel no longer supports managing Go rules") - } - - wroteGenerated := false - if wroteGenerated, err = v.walkGenerated(); err != nil { - klog.Fatalf("err walking generated: %v", err) - } - if _, err = v.walkSource("."); err != nil { - klog.Fatalf("err walking source: %v", err) - } - written := 0 - if written, err = v.reconcileAllRules(); err != nil { - klog.Fatalf("err reconciling rules: %v", err) - } - if wroteGenerated { - written++ - } - if *validate && written > 0 { - fmt.Fprintf(os.Stderr, "\n%d BUILD files not up-to-date.\n", written) - os.Exit(1) - } -} - -// Vendorer collects context, configuration, and cache while walking the tree. -type Vendorer struct { - skippedPaths []*regexp.Regexp - skippedK8sCodegenPaths []*regexp.Regexp - dryRun bool - root string - cfg *Cfg - newRules map[string][]*build.Rule // package path -> list of rules to add or update - managedAttrs []string // which rule attributes kazel will overwrite -} - -func newVendorer(root, cfgPath string, dryRun bool) (*Vendorer, error) { - absRoot, err := filepath.Abs(root) - if err != nil { - return nil, fmt.Errorf("could not get absolute path: %v", err) - } - if !filepath.IsAbs(cfgPath) { - cfgPath = filepath.Join(absRoot, cfgPath) - } - cfg, err := ReadCfg(cfgPath) - if err != nil { - return nil, err - } - - v := Vendorer{ - dryRun: dryRun, - root: absRoot, - cfg: cfg, - newRules: make(map[string][]*build.Rule), - managedAttrs: []string{"srcs"}, - } - - builtIn, err := compileSkippedPaths([]string{"^\\.git", "^bazel-*"}) - if err != nil { - return nil, err - } - - sp, err := compileSkippedPaths(cfg.SkippedPaths) - if err != nil { - return nil, err - } - sp = append(builtIn, sp...) - v.skippedPaths = sp - - sop, err := compileSkippedPaths(cfg.SkippedK8sCodegenPaths) - if err != nil { - return nil, err - } - v.skippedK8sCodegenPaths = append(sop, sp...) - - return &v, nil - -} - -func writeRules(file *build.File, rules []*build.Rule) { - for _, rule := range rules { - file.Stmt = append(file.Stmt, rule.Call) - } -} - -func (v *Vendorer) addRules(pkgPath string, rules []*build.Rule) { - cleanPath := filepath.Clean(pkgPath) - v.newRules[cleanPath] = append(v.newRules[cleanPath], rules...) -} - -func (v *Vendorer) reconcileAllRules() (int, error) { - var paths []string - for path := range v.newRules { - paths = append(paths, path) - } - sort.Strings(paths) - written := 0 - for _, path := range paths { - w, err := ReconcileRules(path, v.newRules[path], v.managedAttrs, v.dryRun) - if w { - written++ - } - if err != nil { - return written, err - } - } - return written, nil -} - -// addCommentBefore adds a whole-line comment before the provided Expr. -func addCommentBefore(e build.Expr, comment string) { - c := e.Comment() - c.Before = append(c.Before, build.Comment{Token: fmt.Sprintf("# %s", comment)}) -} - -// varExpr creates a variable expression of the form "name = expr". -// v will be converted into an appropriate Expr using asExpr. -// The optional description will be included as a comment before the expression. -func varExpr(name, desc string, v interface{}) build.Expr { - e := &build.BinaryExpr{ - X: &build.LiteralExpr{Token: name}, - Op: "=", - Y: asExpr(v), - } - if desc != "" { - addCommentBefore(e, desc) - } - return e -} - -// rvSliceLessFunc returns a function that can be used with sort.Slice() or sort.SliceStable() -// to sort a slice of reflect.Values. -// It sorts ints and floats as their native kinds, and everything else as a string. -func rvSliceLessFunc(k reflect.Kind, vs []reflect.Value) func(int, int) bool { - switch k { - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return func(i, j int) bool { return vs[i].Int() < vs[j].Int() } - case reflect.Float32, reflect.Float64: - return func(i, j int) bool { return vs[i].Float() < vs[j].Float() } - default: - return func(i, j int) bool { - return fmt.Sprintf("%v", vs[i]) < fmt.Sprintf("%v", vs[j]) - } - } -} - -// asExpr converts a native Go type into the equivalent Starlark expression using reflection. -// The keys of maps will be sorted for reproducibility. -func asExpr(e interface{}) build.Expr { - rv := reflect.ValueOf(e) - switch rv.Kind() { - case reflect.Bool: - return &build.LiteralExpr{Token: fmt.Sprintf("%t", e)} - case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, - reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: - return &build.LiteralExpr{Token: fmt.Sprintf("%d", e)} - case reflect.Float32, reflect.Float64: - return &build.LiteralExpr{Token: fmt.Sprintf("%g", e)} - case reflect.String: - return &build.StringExpr{Value: e.(string)} - case reflect.Slice, reflect.Array: - var list []build.Expr - for i := 0; i < rv.Len(); i++ { - list = append(list, asExpr(rv.Index(i).Interface())) - } - return &build.ListExpr{List: list} - case reflect.Map: - var list []build.Expr - keys := rv.MapKeys() - sort.SliceStable(keys, rvSliceLessFunc(rv.Type().Key().Kind(), keys)) - for _, key := range keys { - list = append(list, &build.KeyValueExpr{ - Key: asExpr(key.Interface()), - Value: asExpr(rv.MapIndex(key).Interface()), - }) - } - return &build.DictExpr{List: list} - default: - klog.Fatalf("unhandled kind: %q for value: %q", rv.Kind(), rv) - return nil - } -} - -func newRule(rt, name string, attrs map[string]build.Expr) *build.Rule { - rule := &build.Rule{ - Call: &build.CallExpr{ - X: &build.LiteralExpr{Token: rt}, - }, - } - rule.SetAttr("name", asExpr(name)) - for k, v := range attrs { - rule.SetAttr(k, v) - } - rule.SetAttr("tags", asExpr([]string{automanagedTag})) - return rule -} - -// findBuildFile determines the name of a preexisting BUILD file, returning -// a default if no such file exists. -func findBuildFile(pkgPath string) (bool, string) { - options := []string{"BUILD.bazel", "BUILD"} - for _, b := range options { - path := filepath.Join(pkgPath, b) - info, err := os.Stat(path) - if err == nil && !info.IsDir() { - return true, path - } - } - return false, filepath.Join(pkgPath, "BUILD.bazel") -} - -// ReconcileRules reconciles, simplifies, and writes the rules for the specified package, adding -// additional dependency rules as needed. -func ReconcileRules(pkgPath string, rules []*build.Rule, managedAttrs []string, dryRun bool) (bool, error) { - _, path := findBuildFile(pkgPath) - info, err := os.Stat(path) - if err != nil && os.IsNotExist(err) { - f := &build.File{} - writeRules(f, rules) - return writeFile(path, f, nil, false, dryRun) - } else if err != nil { - return false, err - } - if info.IsDir() { - return false, fmt.Errorf("%q cannot be a directory", path) - } - b, err := ioutil.ReadFile(path) - if err != nil { - return false, err - } - f, err := build.Parse(path, b) - if err != nil { - return false, err - } - oldRules := make(map[string]*build.Rule) - for _, r := range f.Rules("") { - oldRules[r.Name()] = r - } - for _, r := range rules { - o, ok := oldRules[r.Name()] - if !ok { - f.Stmt = append(f.Stmt, r.Call) - continue - } - if !RuleIsManaged(o) { - continue - } - reconcileAttr := func(o, n *build.Rule, name string) { - if e := n.Attr(name); e != nil { - o.SetAttr(name, e) - } else { - o.DelAttr(name) - } - } - for _, attr := range managedAttrs { - reconcileAttr(o, r, attr) - } - delete(oldRules, r.Name()) - } - - for _, r := range oldRules { - if !RuleIsManaged(r) { - continue - } - f.DelRules(r.Kind(), r.Name()) - } - - return writeFile(path, f, nil, true, dryRun) -} - -// RuleIsManaged returns whether the provided rule is managed by this tool, -// based on the tags set on the rule. -func RuleIsManaged(r *build.Rule) bool { - for _, tag := range r.AttrStrings("tags") { - if tag == automanagedTag { - return true - } - } - return false -} - -// writeFile writes out f to path, prepending boilerplate to the output. -// If exists is true, compares against the existing file specified by path, -// returning false if there are no changes. -// Otherwise, returns true. -// If dryRun is false, no files are actually changed; otherwise, the file will be written. -func writeFile(path string, f *build.File, boilerplate []byte, exists, dryRun bool) (bool, error) { - var info build.RewriteInfo - build.Rewrite(f, &info) - var out []byte - out = append(out, boilerplate...) - // double format the source file as our modification logic sometimes uses - // LiteralExpr where it should use other types of expressions, and this - // prevents issues where kazel thus formats structures incorrectly. - // :this_is_fine: - outData := build.Format(f) - var err error - f, err = build.Parse(path, outData) - if err != nil { - return false, fmt.Errorf("internal error occurred formatting file: %v", err) - } - // also call Rewrite again to run Buildifier against the results as - // visibility rules are not ordered correctly for some reason - build.Rewrite(f, &info) - out = append(out, build.Format(f)...) - if exists { - orig, err := ioutil.ReadFile(path) - if err != nil { - return false, err - } - if bytes.Compare(orig, out) == 0 { - return false, nil - } - if *printDiff { - Diff(orig, out) - } - } - if dryRun { - fmt.Fprintf(os.Stderr, "DRY-RUN: wrote %q\n", path) - return true, nil - } - werr := ioutil.WriteFile(path, out, 0644) - if werr == nil { - fmt.Fprintf(os.Stderr, "wrote %q\n", path) - } - return werr == nil, werr -} - -func compileSkippedPaths(skippedPaths []string) ([]*regexp.Regexp, error) { - regexPaths := []*regexp.Regexp{} - - for _, sp := range skippedPaths { - r, err := regexp.Compile(sp) - if err != nil { - return nil, err - } - regexPaths = append(regexPaths, r) - } - return regexPaths, nil -} diff --git a/vendor/k8s.io/repo-infra/cmd/kazel/sourcerer.go b/vendor/k8s.io/repo-infra/cmd/kazel/sourcerer.go deleted file mode 100644 index 68ef83146b6..00000000000 --- a/vendor/k8s.io/repo-infra/cmd/kazel/sourcerer.go +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -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 ( - "fmt" - "io/ioutil" - "path/filepath" - - "github.com/bazelbuild/buildtools/build" -) - -const ( - pkgSrcsTarget = "package-srcs" - allSrcsTarget = "all-srcs" -) - -// walkSource walks the source tree recursively from pkgPath, adding -// any BUILD files to v.newRules to be formatted. -// -// If AddSourcesRules is enabled in the kazel config, then we additionally add -// package-sources and recursive all-srcs filegroups rules to every BUILD file. -// -// Returns the list of children all-srcs targets that should be added to the -// all-srcs rule of the enclosing package. -func (v *Vendorer) walkSource(pkgPath string) ([]string, error) { - // clean pkgPath since we access v.newRules directly - pkgPath = filepath.Clean(pkgPath) - for _, r := range v.skippedPaths { - if r.MatchString(pkgPath) { - return nil, nil - } - } - files, err := ioutil.ReadDir(pkgPath) - if err != nil { - return nil, err - } - - // Find any children packages we need to include in an all-srcs rule. - var children []string - for _, f := range files { - if f.IsDir() { - c, err := v.walkSource(filepath.Join(pkgPath, f.Name())) - if err != nil { - return nil, err - } - children = append(children, c...) - } - } - - // This path is a package either if we've added rules or if a BUILD file already exists. - _, hasRules := v.newRules[pkgPath] - isPkg := hasRules - if !isPkg { - isPkg, _ = findBuildFile(pkgPath) - } - - if !isPkg { - // This directory isn't a package (doesn't contain a BUILD file), - // but there might be subdirectories that are packages, - // so pass that up to our parent. - return children, nil - } - - // Enforce formatting the BUILD file, even if we're not adding srcs rules - if !hasRules { - v.addRules(pkgPath, nil) - } - - if !v.cfg.AddSourcesRules { - return nil, nil - } - - pkgSrcsExpr := &build.LiteralExpr{Token: `glob(["**"])`} - if pkgPath == "." { - pkgSrcsExpr = &build.LiteralExpr{Token: `glob(["**"], exclude=["bazel-*/**", ".git/**"])`} - } - - v.addRules(pkgPath, []*build.Rule{ - newRule("filegroup", - pkgSrcsTarget, - map[string]build.Expr{ - "srcs": pkgSrcsExpr, - "visibility": asExpr([]string{"//visibility:private"}), - }), - newRule("filegroup", - allSrcsTarget, - map[string]build.Expr{ - "srcs": asExpr(append(children, fmt.Sprintf(":%s", pkgSrcsTarget))), - // TODO: should this be more restricted? - "visibility": asExpr([]string{"//visibility:public"}), - }), - }) - return []string{fmt.Sprintf("//%s:%s", pkgPath, allSrcsTarget)}, nil -} diff --git a/vendor/modules.txt b/vendor/modules.txt index eeee916ead1..b33127fda22 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -114,32 +114,6 @@ github.com/aws/aws-sdk-go/service/elbv2 github.com/aws/aws-sdk-go/service/kms github.com/aws/aws-sdk-go/service/sts github.com/aws/aws-sdk-go/service/sts/stsiface -# github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798 => github.com/bazelbuild/bazel-gazelle v0.19.1-0.20191105222053-70208cbdc798 -github.com/bazelbuild/bazel-gazelle/cmd/gazelle -github.com/bazelbuild/bazel-gazelle/config -github.com/bazelbuild/bazel-gazelle/flag -github.com/bazelbuild/bazel-gazelle/internal/version -github.com/bazelbuild/bazel-gazelle/internal/wspace -github.com/bazelbuild/bazel-gazelle/label -github.com/bazelbuild/bazel-gazelle/language -github.com/bazelbuild/bazel-gazelle/language/go -github.com/bazelbuild/bazel-gazelle/language/proto -github.com/bazelbuild/bazel-gazelle/merger -github.com/bazelbuild/bazel-gazelle/pathtools -github.com/bazelbuild/bazel-gazelle/repo -github.com/bazelbuild/bazel-gazelle/resolve -github.com/bazelbuild/bazel-gazelle/rule -github.com/bazelbuild/bazel-gazelle/walk -# github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89 => github.com/bazelbuild/buildtools v0.0.0-20190917191645-69366ca98f89 -github.com/bazelbuild/buildtools/api_proto -github.com/bazelbuild/buildtools/build -github.com/bazelbuild/buildtools/build_proto -github.com/bazelbuild/buildtools/buildozer -github.com/bazelbuild/buildtools/edit -github.com/bazelbuild/buildtools/file -github.com/bazelbuild/buildtools/lang -github.com/bazelbuild/buildtools/tables -github.com/bazelbuild/buildtools/wspace # github.com/beorn7/perks v1.0.0 => github.com/beorn7/perks v1.0.0 github.com/beorn7/perks/quantile # github.com/blang/semver v3.5.0+incompatible => github.com/blang/semver v3.5.0+incompatible @@ -950,7 +924,6 @@ golang.org/x/tools/go/internal/packagesdriver golang.org/x/tools/go/packages golang.org/x/tools/go/types/objectpath golang.org/x/tools/go/types/typeutil -golang.org/x/tools/go/vcs golang.org/x/tools/imports golang.org/x/tools/internal/fastwalk golang.org/x/tools/internal/gopathwalk @@ -1928,8 +1901,6 @@ k8s.io/metrics/pkg/client/custom_metrics/fake k8s.io/metrics/pkg/client/custom_metrics/scheme k8s.io/metrics/pkg/client/external_metrics k8s.io/metrics/pkg/client/external_metrics/fake -# k8s.io/repo-infra v0.0.1-alpha.1 => k8s.io/repo-infra v0.0.1-alpha.1 -k8s.io/repo-infra/cmd/kazel # k8s.io/sample-apiserver v0.0.0 => ./staging/src/k8s.io/sample-apiserver k8s.io/sample-apiserver/pkg/admission/plugin/banflunder k8s.io/sample-apiserver/pkg/admission/wardleinitializer