upgrade kustomize to v4.1.3
Signed-off-by: Gautier Delorme <gautier.delorme@gmail.com>
This commit is contained in:
parent
0b80fbf978
commit
ac753f44cc
206
LICENSES/vendor/github.com/go-openapi/spec/LICENSE
generated
vendored
206
LICENSES/vendor/github.com/go-openapi/spec/LICENSE
generated
vendored
@ -1,206 +0,0 @@
|
|||||||
= vendor/github.com/go-openapi/spec 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/go-openapi/spec/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
|
|
23
go.mod
23
go.mod
@ -169,11 +169,9 @@ replace (
|
|||||||
github.com/NYTimes/gziphandler => github.com/NYTimes/gziphandler v1.1.1
|
github.com/NYTimes/gziphandler => github.com/NYTimes/gziphandler v1.1.1
|
||||||
github.com/PuerkitoBio/purell => github.com/PuerkitoBio/purell v1.1.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/PuerkitoBio/urlesc => github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
|
||||||
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/ajstarks/svgo => github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
|
||||||
github.com/alecthomas/template => github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
|
github.com/alecthomas/template => github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
|
||||||
github.com/alecthomas/units => github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4
|
github.com/alecthomas/units => github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4
|
||||||
github.com/andreyvit/diff => github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883
|
|
||||||
github.com/armon/circbuf => github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e
|
github.com/armon/circbuf => github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e
|
||||||
github.com/armon/go-metrics => github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da
|
github.com/armon/go-metrics => github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da
|
||||||
github.com/armon/go-radix => github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310
|
github.com/armon/go-radix => github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310
|
||||||
@ -253,19 +251,10 @@ replace (
|
|||||||
github.com/go-kit/kit => github.com/go-kit/kit v0.9.0
|
github.com/go-kit/kit => github.com/go-kit/kit v0.9.0
|
||||||
github.com/go-logfmt/logfmt => github.com/go-logfmt/logfmt v0.4.0
|
github.com/go-logfmt/logfmt => github.com/go-logfmt/logfmt v0.4.0
|
||||||
github.com/go-logr/logr => github.com/go-logr/logr v0.4.0
|
github.com/go-logr/logr => github.com/go-logr/logr v0.4.0
|
||||||
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
|
github.com/go-openapi/jsonpointer => github.com/go-openapi/jsonpointer v0.19.3
|
||||||
github.com/go-openapi/jsonreference => github.com/go-openapi/jsonreference v0.19.3
|
github.com/go-openapi/jsonreference => github.com/go-openapi/jsonreference v0.19.3
|
||||||
github.com/go-openapi/loads => github.com/go-openapi/loads v0.19.4
|
|
||||||
github.com/go-openapi/runtime => github.com/go-openapi/runtime v0.19.4
|
|
||||||
github.com/go-openapi/spec => github.com/go-openapi/spec v0.19.5
|
|
||||||
github.com/go-openapi/strfmt => github.com/go-openapi/strfmt v0.19.5
|
|
||||||
github.com/go-openapi/swag => github.com/go-openapi/swag v0.19.5
|
github.com/go-openapi/swag => github.com/go-openapi/swag v0.19.5
|
||||||
github.com/go-openapi/validate => github.com/go-openapi/validate v0.19.8
|
|
||||||
github.com/go-ozzo/ozzo-validation => github.com/go-ozzo/ozzo-validation v3.5.0+incompatible
|
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/gobuffalo/here => github.com/gobuffalo/here v0.6.0
|
|
||||||
github.com/godbus/dbus/v5 => github.com/godbus/dbus/v5 v5.0.4
|
github.com/godbus/dbus/v5 => github.com/godbus/dbus/v5 v5.0.4
|
||||||
github.com/gofrs/uuid => github.com/gofrs/uuid v4.0.0+incompatible
|
github.com/gofrs/uuid => github.com/gofrs/uuid v4.0.0+incompatible
|
||||||
github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2
|
github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2
|
||||||
@ -346,7 +335,6 @@ replace (
|
|||||||
github.com/lucas-clemente/quic-go-certificates => github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced
|
github.com/lucas-clemente/quic-go-certificates => github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced
|
||||||
github.com/magiconair/properties => github.com/magiconair/properties v1.8.1
|
github.com/magiconair/properties => github.com/magiconair/properties v1.8.1
|
||||||
github.com/mailru/easyjson => github.com/mailru/easyjson v0.7.0
|
github.com/mailru/easyjson => github.com/mailru/easyjson v0.7.0
|
||||||
github.com/markbates/pkger => github.com/markbates/pkger v0.17.1
|
|
||||||
github.com/marten-seemann/qtls => github.com/marten-seemann/qtls v0.2.3
|
github.com/marten-seemann/qtls => github.com/marten-seemann/qtls v0.2.3
|
||||||
github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9
|
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.4
|
github.com/mattn/go-isatty => github.com/mattn/go-isatty v0.0.4
|
||||||
@ -429,11 +417,9 @@ replace (
|
|||||||
github.com/stretchr/testify => github.com/stretchr/testify v1.7.0
|
github.com/stretchr/testify => github.com/stretchr/testify v1.7.0
|
||||||
github.com/subosito/gotenv => github.com/subosito/gotenv v1.2.0
|
github.com/subosito/gotenv => github.com/subosito/gotenv v1.2.0
|
||||||
github.com/syndtr/gocapability => github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
|
github.com/syndtr/gocapability => github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
|
||||||
github.com/tidwall/pretty => github.com/tidwall/pretty v1.0.0
|
|
||||||
github.com/tmc/grpc-websocket-proxy => github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5
|
github.com/tmc/grpc-websocket-proxy => github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5
|
||||||
github.com/urfave/cli => github.com/urfave/cli v1.22.2
|
github.com/urfave/cli => github.com/urfave/cli v1.22.2
|
||||||
github.com/urfave/negroni => github.com/urfave/negroni v1.0.0
|
github.com/urfave/negroni => github.com/urfave/negroni v1.0.0
|
||||||
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/netlink => github.com/vishvananda/netlink v1.1.0
|
||||||
github.com/vishvananda/netns => github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae
|
github.com/vishvananda/netns => github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae
|
||||||
github.com/vmware/govmomi => github.com/vmware/govmomi v0.20.3
|
github.com/vmware/govmomi => github.com/vmware/govmomi v0.20.3
|
||||||
@ -443,7 +429,6 @@ replace (
|
|||||||
github.com/yuin/goldmark => github.com/yuin/goldmark v1.2.1
|
github.com/yuin/goldmark => github.com/yuin/goldmark v1.2.1
|
||||||
go.etcd.io/bbolt => go.etcd.io/bbolt v1.3.5
|
go.etcd.io/bbolt => go.etcd.io/bbolt v1.3.5
|
||||||
go.etcd.io/etcd => go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 // ae9734ed278b is the SHA for git tag v3.4.13
|
go.etcd.io/etcd => go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 // ae9734ed278b is the SHA for git tag v3.4.13
|
||||||
go.mongodb.org/mongo-driver => go.mongodb.org/mongo-driver v1.1.2
|
|
||||||
go.opencensus.io => go.opencensus.io v0.22.3
|
go.opencensus.io => go.opencensus.io v0.22.3
|
||||||
go.starlark.net => go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5
|
go.starlark.net => go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5
|
||||||
go.uber.org/atomic => go.uber.org/atomic v1.6.0
|
go.uber.org/atomic => go.uber.org/atomic v1.6.0
|
||||||
@ -533,10 +518,10 @@ replace (
|
|||||||
rsc.io/quote/v3 => rsc.io/quote/v3 v3.1.0
|
rsc.io/quote/v3 => rsc.io/quote/v3 v3.1.0
|
||||||
rsc.io/sampler => rsc.io/sampler v1.3.0
|
rsc.io/sampler => rsc.io/sampler v1.3.0
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15
|
||||||
sigs.k8s.io/kustomize/api => sigs.k8s.io/kustomize/api v0.8.8
|
sigs.k8s.io/kustomize/api => sigs.k8s.io/kustomize/api v0.8.10
|
||||||
sigs.k8s.io/kustomize/cmd/config => sigs.k8s.io/kustomize/cmd/config v0.9.10
|
sigs.k8s.io/kustomize/cmd/config => sigs.k8s.io/kustomize/cmd/config v0.9.12
|
||||||
sigs.k8s.io/kustomize/kustomize/v4 => sigs.k8s.io/kustomize/kustomize/v4 v4.1.2
|
sigs.k8s.io/kustomize/kustomize/v4 => sigs.k8s.io/kustomize/kustomize/v4 v4.1.3
|
||||||
sigs.k8s.io/kustomize/kyaml => sigs.k8s.io/kustomize/kyaml v0.10.17
|
sigs.k8s.io/kustomize/kyaml => sigs.k8s.io/kustomize/kyaml v0.10.20
|
||||||
sigs.k8s.io/structured-merge-diff/v4 => sigs.k8s.io/structured-merge-diff/v4 v4.1.1
|
sigs.k8s.io/structured-merge-diff/v4 => sigs.k8s.io/structured-merge-diff/v4 v4.1.1
|
||||||
sigs.k8s.io/yaml => sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml => sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
30
go.sum
30
go.sum
@ -49,11 +49,9 @@ github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tN
|
|||||||
github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
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 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
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/ajstarks/svgo v0.0.0-20180226025133-644b8db467af/go.mod h1:K08gAheRH3/J6wwsYMMT4xOr94bZjxIelGM0+d/wbFw=
|
||||||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
|
|
||||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA=
|
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/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||||
@ -185,24 +183,14 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2
|
|||||||
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
|
||||||
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
|
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
|
||||||
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||||
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
|
|
||||||
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
||||||
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
||||||
github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk=
|
|
||||||
github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
|
|
||||||
github.com/go-openapi/spec v0.19.5 h1:Xm0Ao53uqnk9QE/LlYV5DEU09UAgpliA85QoT9LzqPw=
|
|
||||||
github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
|
||||||
github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
|
|
||||||
github.com/go-ozzo/ozzo-validation v3.5.0+incompatible h1:sUy/in/P6askYr16XJgTKq/0SZhiWsdg4WZGaLsGQkM=
|
github.com/go-ozzo/ozzo-validation v3.5.0+incompatible h1:sUy/in/P6askYr16XJgTKq/0SZhiWsdg4WZGaLsGQkM=
|
||||||
github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU=
|
github.com/go-ozzo/ozzo-validation v3.5.0+incompatible/go.mod h1:gsEKFIVnabGBt6mXmxK0MoFy+cZoTJY6mu5Ll3LVLBU=
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
|
||||||
github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM=
|
|
||||||
github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
|
github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA=
|
||||||
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||||
github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=
|
github.com/gofrs/uuid v4.0.0+incompatible h1:1SD/1F5pU8p29ybwgQSwpQk+mwdRrXCYuPhW6m+TnJw=
|
||||||
@ -328,7 +316,6 @@ github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzR
|
|||||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
|
github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
|
||||||
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
||||||
github.com/markbates/pkger v0.17.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI=
|
|
||||||
github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk=
|
github.com/marten-seemann/qtls v0.2.3/go.mod h1:xzjG7avBwGGbdZ8dTGxlBnLArsVKLvwmjgmPuiQEcYk=
|
||||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||||
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||||
@ -471,13 +458,11 @@ github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s
|
|||||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||||
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
|
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI=
|
||||||
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
|
github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
|
||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ=
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0=
|
||||||
github.com/urfave/negroni v1.0.0 h1:kIimOitoypq34K7TG7DUaJ9kq/N4Ofuwi1sjz0KipXc=
|
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/urfave/negroni v1.0.0/go.mod h1:Meg73S6kFm/4PpbYdq35yYWoCZ9mS/YSx+lKnmiohz4=
|
||||||
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 h1:1iyaYNBLmP6L0220aDnYQpo1QEV4t4hJ+xEEhhJH8j0=
|
||||||
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE=
|
||||||
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae h1:4hwBBUfQCFe3Cym0ZtKyq7L16eZUtYKs+BaHDN6mAns=
|
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae h1:4hwBBUfQCFe3Cym0ZtKyq7L16eZUtYKs+BaHDN6mAns=
|
||||||
@ -495,7 +480,6 @@ go.etcd.io/bbolt v1.3.5 h1:XAzx9gjCb0Rxj7EoqcClPD1d5ZBxZJk0jbuoPHenBt0=
|
|||||||
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
|
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
|
||||||
go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 h1:1JFLBqwIgdyHN1ZtgjTBwO+blA6gVOmZurpiMEsETKo=
|
go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489 h1:1JFLBqwIgdyHN1ZtgjTBwO+blA6gVOmZurpiMEsETKo=
|
||||||
go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg=
|
go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg=
|
||||||
go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
|
||||||
go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8=
|
go.opencensus.io v0.22.3 h1:8sGtKOrtQqkN1bp2AtX+misvLIlOmsEsNd+9NIcPEm8=
|
||||||
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc=
|
go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 h1:+FNtrFTmVw0YZGpBGX56XDee331t6JAXeK2bcyhLOOc=
|
||||||
@ -604,13 +588,13 @@ rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
|||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 h1:4uqm9Mv+w2MmBYD+F4qf/v6tDFUdPOk29C095RbU5mY=
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 h1:4uqm9Mv+w2MmBYD+F4qf/v6tDFUdPOk29C095RbU5mY=
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg=
|
||||||
sigs.k8s.io/kustomize/api v0.8.8 h1:G2z6JPSSjtWWgMeWSoHdXqyftJNmMmyxXpwENGoOtGE=
|
sigs.k8s.io/kustomize/api v0.8.10 h1:CqbdK/qT7JE+uVETkrVMk7pQf0fPFXk9+QQ//Q7sAtc=
|
||||||
sigs.k8s.io/kustomize/api v0.8.8/go.mod h1:He1zoK0nk43Pc6NlV085xDXDXTNprtcyKZVm3swsdNY=
|
sigs.k8s.io/kustomize/api v0.8.10/go.mod h1:ImeIkhUU7GIhamOtKPlkllt+fkBKL5f6/4NLhVwkinA=
|
||||||
sigs.k8s.io/kustomize/cmd/config v0.9.10/go.mod h1:Mrby0WnRH7hA6OwOYnYpfpiY0WJIMgYrEDfwOeFdMK0=
|
sigs.k8s.io/kustomize/cmd/config v0.9.12/go.mod h1:hVG/nPSqccrnogZ4ehzw3cTSR2fT6hdWeyojILHZivA=
|
||||||
sigs.k8s.io/kustomize/kustomize/v4 v4.1.2 h1:iP3ckqMIftwsIKnMqtztReSkkPJvhqNc5QiOpMoFpbY=
|
sigs.k8s.io/kustomize/kustomize/v4 v4.1.3 h1:ZX0RYU4VMkOu+pqLlUMECGsjReDzgfWF1NbojnFd/ZY=
|
||||||
sigs.k8s.io/kustomize/kustomize/v4 v4.1.2/go.mod h1:PxBvo4WGYlCLeRPL+ziT64wBXqbgfcalOS/SXa/tcyo=
|
sigs.k8s.io/kustomize/kustomize/v4 v4.1.3/go.mod h1:Zw+pVPW6cHyb0zkOb24HU6NjJziqPY/abiiVLQVrzp4=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.10.17 h1:4zrV0ym5AYa0e512q7K3Wp1u7mzoWW0xR3UHJcGWGIg=
|
sigs.k8s.io/kustomize/kyaml v0.10.20 h1:L9JNKvJfCBpmYFr4tP0igpfj/pXP7nW2aXOWNtF5k1g=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.10.17/go.mod h1:mlQFagmkm1P+W4lZJbJ/yaxMd8PqMRSC4cPcfUVt5Hg=
|
sigs.k8s.io/kustomize/kyaml v0.10.20/go.mod h1:TYWhGwW9vjoRh3rWqBwB/ZOXyEGRVWe7Ggc3+KZIO+c=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.1 h1:nYqY2A6oy37sKLYuSBXuQhbj4JVclzJK13BOIvJG5XU=
|
sigs.k8s.io/structured-merge-diff/v4 v4.1.1 h1:nYqY2A6oy37sKLYuSBXuQhbj4JVclzJK13BOIvJG5XU=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.1.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q=
|
||||||
|
@ -19,7 +19,7 @@ require (
|
|||||||
k8s.io/apimachinery v0.0.0
|
k8s.io/apimachinery v0.0.0
|
||||||
k8s.io/client-go v0.0.0
|
k8s.io/client-go v0.0.0
|
||||||
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e
|
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e
|
||||||
sigs.k8s.io/kustomize/api v0.8.8
|
sigs.k8s.io/kustomize/api v0.8.10
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
80
staging/src/k8s.io/cli-runtime/go.sum
generated
80
staging/src/k8s.io/cli-runtime/go.sum
generated
@ -34,20 +34,16 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
|
|||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||||
github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
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/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 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
|
|
||||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
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/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/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
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=
|
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
||||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||||
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||||
@ -73,8 +69,6 @@ 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/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||||
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
|
||||||
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
|
||||||
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
||||||
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
@ -88,8 +82,6 @@ github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoD
|
|||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
|
||||||
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
|
||||||
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
|
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
|
||||||
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
|
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
|
||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||||
@ -101,53 +93,13 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V
|
|||||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
||||||
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
|
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
|
||||||
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||||
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
|
|
||||||
github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
|
||||||
github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
|
||||||
github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
|
|
||||||
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
|
|
||||||
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
|
||||||
github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
|
||||||
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
|
||||||
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
|
||||||
github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
|
||||||
github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
||||||
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
||||||
github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
|
||||||
github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
|
||||||
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
|
||||||
github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
|
|
||||||
github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk=
|
|
||||||
github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
|
|
||||||
github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
|
|
||||||
github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
|
|
||||||
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
|
||||||
github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
|
||||||
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
|
|
||||||
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
|
|
||||||
github.com/go-openapi/spec v0.19.5 h1:Xm0Ao53uqnk9QE/LlYV5DEU09UAgpliA85QoT9LzqPw=
|
|
||||||
github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
|
||||||
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
|
||||||
github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
|
||||||
github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
|
|
||||||
github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
|
|
||||||
github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
|
||||||
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
|
||||||
github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
|
|
||||||
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
|
|
||||||
github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
|
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM=
|
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
||||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
@ -198,7 +150,6 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf
|
|||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
||||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
||||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
|
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
|
||||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
@ -256,7 +207,6 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB
|
|||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
@ -264,13 +214,10 @@ 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/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
|
||||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
|
github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
|
||||||
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
||||||
github.com/markbates/pkger v0.17.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI=
|
|
||||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||||
@ -307,7 +254,6 @@ github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGV
|
|||||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
|
||||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
|
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
@ -333,7 +279,6 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
|
|||||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
|
||||||
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
|
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
|
||||||
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
||||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||||
@ -367,10 +312,8 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
|
|||||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
||||||
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
|
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||||
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI=
|
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI=
|
||||||
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
|
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
|
||||||
@ -378,9 +321,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:
|
|||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||||
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
|
||||||
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
|
||||||
go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
|
||||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
@ -393,11 +333,8 @@ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
|||||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/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-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
||||||
golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -435,7 +372,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/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-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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -443,13 +379,11 @@ golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/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-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-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -486,12 +420,10 @@ golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5h
|
|||||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/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-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-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@ -533,7 +465,6 @@ golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxb
|
|||||||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/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-20180917221912-90fa682c2a6e/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-20190114222345-bf090417da8b/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-20190125232054-d66bd3c5d5a6/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-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-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
@ -543,8 +474,6 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn
|
|||||||
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
@ -643,7 +572,6 @@ gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bl
|
|||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
@ -668,10 +596,10 @@ k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
|
|||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
sigs.k8s.io/kustomize/api v0.8.8 h1:G2z6JPSSjtWWgMeWSoHdXqyftJNmMmyxXpwENGoOtGE=
|
sigs.k8s.io/kustomize/api v0.8.10 h1:CqbdK/qT7JE+uVETkrVMk7pQf0fPFXk9+QQ//Q7sAtc=
|
||||||
sigs.k8s.io/kustomize/api v0.8.8/go.mod h1:He1zoK0nk43Pc6NlV085xDXDXTNprtcyKZVm3swsdNY=
|
sigs.k8s.io/kustomize/api v0.8.10/go.mod h1:ImeIkhUU7GIhamOtKPlkllt+fkBKL5f6/4NLhVwkinA=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.10.17 h1:4zrV0ym5AYa0e512q7K3Wp1u7mzoWW0xR3UHJcGWGIg=
|
sigs.k8s.io/kustomize/kyaml v0.10.20 h1:L9JNKvJfCBpmYFr4tP0igpfj/pXP7nW2aXOWNtF5k1g=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.10.17/go.mod h1:mlQFagmkm1P+W4lZJbJ/yaxMd8PqMRSC4cPcfUVt5Hg=
|
sigs.k8s.io/kustomize/kyaml v0.10.20/go.mod h1:TYWhGwW9vjoRh3rWqBwB/ZOXyEGRVWe7Ggc3+KZIO+c=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.1 h1:nYqY2A6oy37sKLYuSBXuQhbj4JVclzJK13BOIvJG5XU=
|
sigs.k8s.io/structured-merge-diff/v4 v4.1.1 h1:nYqY2A6oy37sKLYuSBXuQhbj4JVclzJK13BOIvJG5XU=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.1.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
|
@ -41,8 +41,8 @@ require (
|
|||||||
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e
|
k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e
|
||||||
k8s.io/metrics v0.0.0
|
k8s.io/metrics v0.0.0
|
||||||
k8s.io/utils v0.0.0-20201110183641-67b214c5f920
|
k8s.io/utils v0.0.0-20201110183641-67b214c5f920
|
||||||
sigs.k8s.io/kustomize/api v0.8.8
|
sigs.k8s.io/kustomize/api v0.8.10
|
||||||
sigs.k8s.io/kustomize/kustomize/v4 v4.1.2
|
sigs.k8s.io/kustomize/kustomize/v4 v4.1.3
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
85
staging/src/k8s.io/kubectl/go.sum
generated
85
staging/src/k8s.io/kubectl/go.sum
generated
@ -38,22 +38,18 @@ github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd h1:sjQovDkwrZp
|
|||||||
github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E=
|
github.com/MakeNowJust/heredoc v0.0.0-20170808103936-bb23615498cd/go.mod h1:64YHyfSL2R96J44Nlwm39UHepQbyR5q10x7iYa1ks2E=
|
||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||||
github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
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/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 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
|
|
||||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||||
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
|
|
||||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
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=
|
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
||||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||||
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||||
@ -90,8 +86,6 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm
|
|||||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||||
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
|
github.com/docker/distribution v2.7.1+incompatible h1:a5mlkVzth6W5A4fOsS3D2EO5BUmsJpcB+cRlLU7cSug=
|
||||||
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||||
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
|
||||||
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
|
||||||
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
||||||
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc=
|
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153 h1:yUdfgN0XgIJw7foRItutHYUIhlcKzcSf5vDpdhQAKTc=
|
||||||
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
||||||
@ -114,8 +108,6 @@ github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4
|
|||||||
github.com/fvbommel/sortorder v1.0.1 h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE=
|
github.com/fvbommel/sortorder v1.0.1 h1:dSnXLt4mJYH25uDDGa3biZNQsozaUWDSWeKJ0qqFfzE=
|
||||||
github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
|
github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
|
||||||
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
|
||||||
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
|
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
|
||||||
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
|
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
|
||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||||
@ -129,53 +121,13 @@ github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7
|
|||||||
github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||||
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
|
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
|
||||||
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||||
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
|
|
||||||
github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
|
||||||
github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
|
||||||
github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
|
|
||||||
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
|
|
||||||
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
|
||||||
github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
|
||||||
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
|
||||||
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
|
||||||
github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
|
||||||
github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
||||||
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
||||||
github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
|
||||||
github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
|
||||||
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
|
||||||
github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
|
|
||||||
github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk=
|
|
||||||
github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
|
|
||||||
github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
|
|
||||||
github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
|
|
||||||
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
|
||||||
github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
|
||||||
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
|
|
||||||
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
|
|
||||||
github.com/go-openapi/spec v0.19.5 h1:Xm0Ao53uqnk9QE/LlYV5DEU09UAgpliA85QoT9LzqPw=
|
|
||||||
github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
|
||||||
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
|
||||||
github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
|
||||||
github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
|
|
||||||
github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
|
|
||||||
github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
|
||||||
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
|
||||||
github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
|
|
||||||
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
|
|
||||||
github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
|
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM=
|
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
||||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
@ -230,7 +182,6 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf
|
|||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
||||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
||||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
|
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
|
||||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
@ -290,7 +241,6 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB
|
|||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
@ -300,13 +250,10 @@ github.com/lithammer/dedent v1.1.0 h1:VNzHMVCBNG1j0fh3OrsFRkVUwStdDArbgBWoPAffkt
|
|||||||
github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc=
|
github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc=
|
||||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
|
github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
|
||||||
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
||||||
github.com/markbates/pkger v0.17.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI=
|
|
||||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||||
github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
|
||||||
@ -357,7 +304,6 @@ github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1y
|
|||||||
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
|
||||||
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
|
||||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
|
||||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
|
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
@ -393,7 +339,6 @@ github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR
|
|||||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
|
||||||
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
|
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
|
||||||
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
||||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||||
@ -429,10 +374,8 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/
|
|||||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
||||||
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
|
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||||
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI=
|
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI=
|
||||||
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
|
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
|
||||||
@ -440,9 +383,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:
|
|||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||||
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
|
||||||
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
|
||||||
go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
|
||||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
@ -459,11 +399,8 @@ go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ=
|
|||||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/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-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
||||||
golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -502,7 +439,6 @@ golang.org/x/mod v0.3.1-0.20200828183125-ce943fd02449/go.mod h1:s0Qsj1ACt9ePp/hM
|
|||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/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-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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -510,7 +446,6 @@ golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/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-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-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
@ -554,13 +489,11 @@ golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5h
|
|||||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/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-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-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@ -606,7 +539,6 @@ golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxb
|
|||||||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/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-20180917221912-90fa682c2a6e/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-20190114222345-bf090417da8b/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-20190125232054-d66bd3c5d5a6/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-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-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
@ -616,8 +548,6 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn
|
|||||||
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
@ -723,7 +653,6 @@ gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
@ -753,13 +682,13 @@ k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
|
|||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
sigs.k8s.io/kustomize/api v0.8.8 h1:G2z6JPSSjtWWgMeWSoHdXqyftJNmMmyxXpwENGoOtGE=
|
sigs.k8s.io/kustomize/api v0.8.10 h1:CqbdK/qT7JE+uVETkrVMk7pQf0fPFXk9+QQ//Q7sAtc=
|
||||||
sigs.k8s.io/kustomize/api v0.8.8/go.mod h1:He1zoK0nk43Pc6NlV085xDXDXTNprtcyKZVm3swsdNY=
|
sigs.k8s.io/kustomize/api v0.8.10/go.mod h1:ImeIkhUU7GIhamOtKPlkllt+fkBKL5f6/4NLhVwkinA=
|
||||||
sigs.k8s.io/kustomize/cmd/config v0.9.10/go.mod h1:Mrby0WnRH7hA6OwOYnYpfpiY0WJIMgYrEDfwOeFdMK0=
|
sigs.k8s.io/kustomize/cmd/config v0.9.12/go.mod h1:hVG/nPSqccrnogZ4ehzw3cTSR2fT6hdWeyojILHZivA=
|
||||||
sigs.k8s.io/kustomize/kustomize/v4 v4.1.2 h1:iP3ckqMIftwsIKnMqtztReSkkPJvhqNc5QiOpMoFpbY=
|
sigs.k8s.io/kustomize/kustomize/v4 v4.1.3 h1:ZX0RYU4VMkOu+pqLlUMECGsjReDzgfWF1NbojnFd/ZY=
|
||||||
sigs.k8s.io/kustomize/kustomize/v4 v4.1.2/go.mod h1:PxBvo4WGYlCLeRPL+ziT64wBXqbgfcalOS/SXa/tcyo=
|
sigs.k8s.io/kustomize/kustomize/v4 v4.1.3/go.mod h1:Zw+pVPW6cHyb0zkOb24HU6NjJziqPY/abiiVLQVrzp4=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.10.17 h1:4zrV0ym5AYa0e512q7K3Wp1u7mzoWW0xR3UHJcGWGIg=
|
sigs.k8s.io/kustomize/kyaml v0.10.20 h1:L9JNKvJfCBpmYFr4tP0igpfj/pXP7nW2aXOWNtF5k1g=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.10.17/go.mod h1:mlQFagmkm1P+W4lZJbJ/yaxMd8PqMRSC4cPcfUVt5Hg=
|
sigs.k8s.io/kustomize/kyaml v0.10.20/go.mod h1:TYWhGwW9vjoRh3rWqBwB/ZOXyEGRVWe7Ggc3+KZIO+c=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.1 h1:nYqY2A6oy37sKLYuSBXuQhbj4JVclzJK13BOIvJG5XU=
|
sigs.k8s.io/structured-merge-diff/v4 v4.1.1 h1:nYqY2A6oy37sKLYuSBXuQhbj4JVclzJK13BOIvJG5XU=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.1.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
|
80
staging/src/k8s.io/sample-cli-plugin/go.sum
generated
80
staging/src/k8s.io/sample-cli-plugin/go.sum
generated
@ -34,20 +34,16 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03
|
|||||||
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
|
||||||
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ=
|
||||||
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
|
||||||
github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
|
|
||||||
github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI=
|
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/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 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
|
||||||
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
|
||||||
github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
|
|
||||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
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/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/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
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=
|
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
||||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||||
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
|
||||||
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
|
||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
|
||||||
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
|
||||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||||
@ -73,8 +69,6 @@ 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/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||||
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
|
||||||
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
|
|
||||||
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
||||||
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
@ -88,8 +82,6 @@ github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoD
|
|||||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
|
||||||
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
|
|
||||||
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
|
github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w=
|
||||||
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
|
github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q=
|
||||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||||
@ -101,53 +93,13 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V
|
|||||||
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas=
|
||||||
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
|
github.com/go-logr/logr v0.4.0 h1:K7/B1jt6fIBQVd4Owv2MqGQClcgf0R266+7C/QjRcLc=
|
||||||
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU=
|
||||||
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
|
|
||||||
github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
|
||||||
github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik=
|
|
||||||
github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
|
|
||||||
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
|
|
||||||
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
|
||||||
github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
|
|
||||||
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
|
|
||||||
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
|
||||||
github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
||||||
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
|
||||||
github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
github.com/go-openapi/jsonreference v0.19.3 h1:5cxNfTy0UVC3X8JL5ymxzyoUZmo8iZb+jeTWn7tUa8o=
|
||||||
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8=
|
||||||
github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
|
||||||
github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
|
||||||
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
|
|
||||||
github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
|
|
||||||
github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk=
|
|
||||||
github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
|
|
||||||
github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64=
|
|
||||||
github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
|
|
||||||
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
|
||||||
github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
|
|
||||||
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
|
|
||||||
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
|
|
||||||
github.com/go-openapi/spec v0.19.5 h1:Xm0Ao53uqnk9QE/LlYV5DEU09UAgpliA85QoT9LzqPw=
|
|
||||||
github.com/go-openapi/spec v0.19.5/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk=
|
|
||||||
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
|
||||||
github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
|
|
||||||
github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
|
|
||||||
github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
|
|
||||||
github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk=
|
|
||||||
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
|
||||||
github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
|
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
||||||
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
|
|
||||||
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
|
|
||||||
github.com/go-openapi/validate v0.19.8/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
|
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/gobuffalo/here v0.6.0/go.mod h1:wAG085dHOYqUpf+Ap+WOdrPTp5IYcDAs/x7PLa8Y5fM=
|
|
||||||
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
|
||||||
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
|
||||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
|
||||||
@ -198,7 +150,6 @@ github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hf
|
|||||||
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
|
||||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
|
||||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
||||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
|
||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
|
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
|
||||||
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
|
||||||
@ -256,7 +207,6 @@ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFB
|
|||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||||
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
|
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||||
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
||||||
@ -264,13 +214,10 @@ 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/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE=
|
||||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
||||||
github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
|
github.com/mailru/easyjson v0.7.0 h1:aizVhC/NAAcKWb+5QsU1iNOZb4Yws5UO2I+aIprQITM=
|
||||||
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs=
|
||||||
github.com/markbates/pkger v0.17.1/go.mod h1:0JoVlrol20BSywW79rN3kdFFsE5xYM+rSCQDXbLhiuI=
|
|
||||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||||
@ -307,7 +254,6 @@ github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGV
|
|||||||
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
|
||||||
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
|
||||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
|
|
||||||
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
|
github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI=
|
||||||
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
|
||||||
@ -333,7 +279,6 @@ github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFR
|
|||||||
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||||
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
|
||||||
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
|
||||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
|
||||||
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
|
github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0=
|
||||||
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
|
||||||
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
|
||||||
@ -367,10 +312,8 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
|
|||||||
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
|
||||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||||
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
|
||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
|
|
||||||
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
|
||||||
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
|
||||||
github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw=
|
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||||
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI=
|
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca h1:1CFlNzQhALwjS9mBAUkycX616GzgsuYUOCHA5+HSlXI=
|
||||||
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
|
github.com/xlab/treeprint v0.0.0-20181112141820-a009c3971eca/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
|
||||||
@ -378,9 +321,6 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:
|
|||||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||||
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
|
||||||
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
|
||||||
go.mongodb.org/mongo-driver v1.1.2/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
|
|
||||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||||
@ -393,11 +333,8 @@ go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
|
|||||||
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/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-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
||||||
golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
|
||||||
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
||||||
golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -435,7 +372,6 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/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-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-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
|
||||||
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -443,13 +379,11 @@ golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73r
|
|||||||
golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/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-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-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
|
||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
|
||||||
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
||||||
@ -486,12 +420,10 @@ golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5h
|
|||||||
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/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-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-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
|
||||||
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@ -533,7 +465,6 @@ golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxb
|
|||||||
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/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-20180917221912-90fa682c2a6e/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-20190114222345-bf090417da8b/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-20190125232054-d66bd3c5d5a6/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-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-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
|
||||||
@ -543,8 +474,6 @@ golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBn
|
|||||||
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
|
||||||
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
|
||||||
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
|
||||||
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
|
||||||
@ -643,7 +572,6 @@ gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bl
|
|||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
@ -668,10 +596,10 @@ k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/
|
|||||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||||
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
|
||||||
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
|
||||||
sigs.k8s.io/kustomize/api v0.8.8 h1:G2z6JPSSjtWWgMeWSoHdXqyftJNmMmyxXpwENGoOtGE=
|
sigs.k8s.io/kustomize/api v0.8.10 h1:CqbdK/qT7JE+uVETkrVMk7pQf0fPFXk9+QQ//Q7sAtc=
|
||||||
sigs.k8s.io/kustomize/api v0.8.8/go.mod h1:He1zoK0nk43Pc6NlV085xDXDXTNprtcyKZVm3swsdNY=
|
sigs.k8s.io/kustomize/api v0.8.10/go.mod h1:ImeIkhUU7GIhamOtKPlkllt+fkBKL5f6/4NLhVwkinA=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.10.17 h1:4zrV0ym5AYa0e512q7K3Wp1u7mzoWW0xR3UHJcGWGIg=
|
sigs.k8s.io/kustomize/kyaml v0.10.20 h1:L9JNKvJfCBpmYFr4tP0igpfj/pXP7nW2aXOWNtF5k1g=
|
||||||
sigs.k8s.io/kustomize/kyaml v0.10.17/go.mod h1:mlQFagmkm1P+W4lZJbJ/yaxMd8PqMRSC4cPcfUVt5Hg=
|
sigs.k8s.io/kustomize/kyaml v0.10.20/go.mod h1:TYWhGwW9vjoRh3rWqBwB/ZOXyEGRVWe7Ggc3+KZIO+c=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.1 h1:nYqY2A6oy37sKLYuSBXuQhbj4JVclzJK13BOIvJG5XU=
|
sigs.k8s.io/structured-merge-diff/v4 v4.1.1 h1:nYqY2A6oy37sKLYuSBXuQhbj4JVclzJK13BOIvJG5XU=
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.1.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
sigs.k8s.io/structured-merge-diff/v4 v4.1.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw=
|
||||||
|
26
vendor/github.com/go-openapi/spec/.editorconfig
generated
vendored
26
vendor/github.com/go-openapi/spec/.editorconfig
generated
vendored
@ -1,26 +0,0 @@
|
|||||||
# top-most EditorConfig file
|
|
||||||
root = true
|
|
||||||
|
|
||||||
# Unix-style newlines with a newline ending every file
|
|
||||||
[*]
|
|
||||||
end_of_line = lf
|
|
||||||
insert_final_newline = true
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
|
|
||||||
# Set default charset
|
|
||||||
[*.{js,py,go,scala,rb,java,html,css,less,sass,md}]
|
|
||||||
charset = utf-8
|
|
||||||
|
|
||||||
# Tab indentation (no size specified)
|
|
||||||
[*.go]
|
|
||||||
indent_style = tab
|
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
|
||||||
|
|
||||||
# Matches the exact files either package.json or .travis.yml
|
|
||||||
[{package.json,.travis.yml}]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
2
vendor/github.com/go-openapi/spec/.gitignore
generated
vendored
2
vendor/github.com/go-openapi/spec/.gitignore
generated
vendored
@ -1,2 +0,0 @@
|
|||||||
secrets.yml
|
|
||||||
coverage.out
|
|
28
vendor/github.com/go-openapi/spec/.golangci.yml
generated
vendored
28
vendor/github.com/go-openapi/spec/.golangci.yml
generated
vendored
@ -1,28 +0,0 @@
|
|||||||
linters-settings:
|
|
||||||
govet:
|
|
||||||
check-shadowing: true
|
|
||||||
golint:
|
|
||||||
min-confidence: 0
|
|
||||||
gocyclo:
|
|
||||||
min-complexity: 45
|
|
||||||
maligned:
|
|
||||||
suggest-new: true
|
|
||||||
dupl:
|
|
||||||
threshold: 200
|
|
||||||
goconst:
|
|
||||||
min-len: 2
|
|
||||||
min-occurrences: 2
|
|
||||||
|
|
||||||
linters:
|
|
||||||
enable-all: true
|
|
||||||
disable:
|
|
||||||
- maligned
|
|
||||||
- unparam
|
|
||||||
- lll
|
|
||||||
- gochecknoinits
|
|
||||||
- gochecknoglobals
|
|
||||||
- funlen
|
|
||||||
- godox
|
|
||||||
- gocognit
|
|
||||||
- whitespace
|
|
||||||
- wsl
|
|
15
vendor/github.com/go-openapi/spec/.travis.yml
generated
vendored
15
vendor/github.com/go-openapi/spec/.travis.yml
generated
vendored
@ -1,15 +0,0 @@
|
|||||||
after_success:
|
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
|
||||||
go:
|
|
||||||
- 1.11.x
|
|
||||||
- 1.12.x
|
|
||||||
install:
|
|
||||||
- GO111MODULE=off go get -u gotest.tools/gotestsum
|
|
||||||
env:
|
|
||||||
- GO111MODULE=on
|
|
||||||
language: go
|
|
||||||
notifications:
|
|
||||||
slack:
|
|
||||||
secure: QUWvCkBBK09GF7YtEvHHVt70JOkdlNBG0nIKu/5qc4/nW5HP8I2w0SEf/XR2je0eED1Qe3L/AfMCWwrEj+IUZc3l4v+ju8X8R3Lomhme0Eb0jd1MTMCuPcBT47YCj0M7RON7vXtbFfm1hFJ/jLe5+9FXz0hpXsR24PJc5ZIi/ogNwkaPqG4BmndzecpSh0vc2FJPZUD9LT0I09REY/vXR0oQAalLkW0asGD5taHZTUZq/kBpsNxaAFrLM23i4mUcf33M5fjLpvx5LRICrX/57XpBrDh2TooBU6Qj3CgoY0uPRYUmSNxbVx1czNzl2JtEpb5yjoxfVPQeg0BvQM00G8LJINISR+ohrjhkZmAqchDupAX+yFrxTtORa78CtnIL6z/aTNlgwwVD8kvL/1pFA/JWYmKDmz93mV/+6wubGzNSQCstzjkFA4/iZEKewKUoRIAi/fxyscP6L/rCpmY/4llZZvrnyTqVbt6URWpopUpH4rwYqreXAtJxJsfBJIeSmUIiDIOMGkCTvyTEW3fWGmGoqWtSHLoaWDyAIGb7azb+KvfpWtEcoPFWfSWU+LGee0A/YsUhBl7ADB9A0CJEuR8q4BPpKpfLwPKSiKSAXL7zDkyjExyhtgqbSl2jS+rKIHOZNL8JkCcTP2MKMVd563C5rC5FMKqu3S9m2b6380E=
|
|
||||||
script:
|
|
||||||
- gotestsum -f short-verbose -- -race -coverprofile=coverage.txt -covermode=atomic ./...
|
|
74
vendor/github.com/go-openapi/spec/CODE_OF_CONDUCT.md
generated
vendored
74
vendor/github.com/go-openapi/spec/CODE_OF_CONDUCT.md
generated
vendored
@ -1,74 +0,0 @@
|
|||||||
# Contributor Covenant Code of Conduct
|
|
||||||
|
|
||||||
## Our Pledge
|
|
||||||
|
|
||||||
In the interest of fostering an open and welcoming environment, we as
|
|
||||||
contributors and maintainers pledge to making participation in our project and
|
|
||||||
our community a harassment-free experience for everyone, regardless of age, body
|
|
||||||
size, disability, ethnicity, gender identity and expression, level of experience,
|
|
||||||
nationality, personal appearance, race, religion, or sexual identity and
|
|
||||||
orientation.
|
|
||||||
|
|
||||||
## Our Standards
|
|
||||||
|
|
||||||
Examples of behavior that contributes to creating a positive environment
|
|
||||||
include:
|
|
||||||
|
|
||||||
* Using welcoming and inclusive language
|
|
||||||
* Being respectful of differing viewpoints and experiences
|
|
||||||
* Gracefully accepting constructive criticism
|
|
||||||
* Focusing on what is best for the community
|
|
||||||
* Showing empathy towards other community members
|
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
|
||||||
advances
|
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
||||||
* Public or private harassment
|
|
||||||
* Publishing others' private information, such as a physical or electronic
|
|
||||||
address, without explicit permission
|
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
|
||||||
professional setting
|
|
||||||
|
|
||||||
## Our Responsibilities
|
|
||||||
|
|
||||||
Project maintainers are responsible for clarifying the standards of acceptable
|
|
||||||
behavior and are expected to take appropriate and fair corrective action in
|
|
||||||
response to any instances of unacceptable behavior.
|
|
||||||
|
|
||||||
Project maintainers have the right and responsibility to remove, edit, or
|
|
||||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
|
||||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
|
||||||
permanently any contributor for other behaviors that they deem inappropriate,
|
|
||||||
threatening, offensive, or harmful.
|
|
||||||
|
|
||||||
## Scope
|
|
||||||
|
|
||||||
This Code of Conduct applies both within project spaces and in public spaces
|
|
||||||
when an individual is representing the project or its community. Examples of
|
|
||||||
representing a project or community include using an official project e-mail
|
|
||||||
address, posting via an official social media account, or acting as an appointed
|
|
||||||
representative at an online or offline event. Representation of a project may be
|
|
||||||
further defined and clarified by project maintainers.
|
|
||||||
|
|
||||||
## Enforcement
|
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
||||||
reported by contacting the project team at ivan+abuse@flanders.co.nz. All
|
|
||||||
complaints will be reviewed and investigated and will result in a response that
|
|
||||||
is deemed necessary and appropriate to the circumstances. The project team is
|
|
||||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
|
||||||
Further details of specific enforcement policies may be posted separately.
|
|
||||||
|
|
||||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
|
||||||
faith may face temporary or permanent repercussions as determined by other
|
|
||||||
members of the project's leadership.
|
|
||||||
|
|
||||||
## Attribution
|
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
|
||||||
available at [http://contributor-covenant.org/version/1/4][version]
|
|
||||||
|
|
||||||
[homepage]: http://contributor-covenant.org
|
|
||||||
[version]: http://contributor-covenant.org/version/1/4/
|
|
202
vendor/github.com/go-openapi/spec/LICENSE
generated
vendored
202
vendor/github.com/go-openapi/spec/LICENSE
generated
vendored
@ -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.
|
|
10
vendor/github.com/go-openapi/spec/README.md
generated
vendored
10
vendor/github.com/go-openapi/spec/README.md
generated
vendored
@ -1,10 +0,0 @@
|
|||||||
# OAI object model [](https://travis-ci.org/go-openapi/spec) [](https://codecov.io/gh/go-openapi/spec) [](https://slackin.goswagger.io)
|
|
||||||
|
|
||||||
[](https://raw.githubusercontent.com/go-openapi/spec/master/LICENSE)
|
|
||||||
[](http://godoc.org/github.com/go-openapi/spec)
|
|
||||||
[](https://golangci.com)
|
|
||||||
[](https://goreportcard.com/report/github.com/go-openapi/spec)
|
|
||||||
|
|
||||||
The object model for OpenAPI specification documents.
|
|
||||||
|
|
||||||
Currently supports Swagger 2.0.
|
|
297
vendor/github.com/go-openapi/spec/bindata.go
generated
vendored
297
vendor/github.com/go-openapi/spec/bindata.go
generated
vendored
File diff suppressed because one or more lines are too long
60
vendor/github.com/go-openapi/spec/cache.go
generated
vendored
60
vendor/github.com/go-openapi/spec/cache.go
generated
vendored
@ -1,60 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import "sync"
|
|
||||||
|
|
||||||
// ResolutionCache a cache for resolving urls
|
|
||||||
type ResolutionCache interface {
|
|
||||||
Get(string) (interface{}, bool)
|
|
||||||
Set(string, interface{})
|
|
||||||
}
|
|
||||||
|
|
||||||
type simpleCache struct {
|
|
||||||
lock sync.RWMutex
|
|
||||||
store map[string]interface{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get retrieves a cached URI
|
|
||||||
func (s *simpleCache) Get(uri string) (interface{}, bool) {
|
|
||||||
debugLog("getting %q from resolution cache", uri)
|
|
||||||
s.lock.RLock()
|
|
||||||
v, ok := s.store[uri]
|
|
||||||
debugLog("got %q from resolution cache: %t", uri, ok)
|
|
||||||
|
|
||||||
s.lock.RUnlock()
|
|
||||||
return v, ok
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set caches a URI
|
|
||||||
func (s *simpleCache) Set(uri string, data interface{}) {
|
|
||||||
s.lock.Lock()
|
|
||||||
s.store[uri] = data
|
|
||||||
s.lock.Unlock()
|
|
||||||
}
|
|
||||||
|
|
||||||
var resCache ResolutionCache
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
resCache = initResolutionCache()
|
|
||||||
}
|
|
||||||
|
|
||||||
// initResolutionCache initializes the URI resolution cache
|
|
||||||
func initResolutionCache() ResolutionCache {
|
|
||||||
return &simpleCache{store: map[string]interface{}{
|
|
||||||
"http://swagger.io/v2/schema.json": MustLoadSwagger20Schema(),
|
|
||||||
"http://json-schema.org/draft-04/schema": MustLoadJSONSchemaDraft04(),
|
|
||||||
}}
|
|
||||||
}
|
|
24
vendor/github.com/go-openapi/spec/contact_info.go
generated
vendored
24
vendor/github.com/go-openapi/spec/contact_info.go
generated
vendored
@ -1,24 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
// ContactInfo contact information for the exposed API.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#contactObject
|
|
||||||
type ContactInfo struct {
|
|
||||||
Name string `json:"name,omitempty"`
|
|
||||||
URL string `json:"url,omitempty"`
|
|
||||||
Email string `json:"email,omitempty"`
|
|
||||||
}
|
|
47
vendor/github.com/go-openapi/spec/debug.go
generated
vendored
47
vendor/github.com/go-openapi/spec/debug.go
generated
vendored
@ -1,47 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
"runtime"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
// Debug is true when the SWAGGER_DEBUG env var is not empty.
|
|
||||||
// It enables a more verbose logging of this package.
|
|
||||||
Debug = os.Getenv("SWAGGER_DEBUG") != ""
|
|
||||||
// specLogger is a debug logger for this package
|
|
||||||
specLogger *log.Logger
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
debugOptions()
|
|
||||||
}
|
|
||||||
|
|
||||||
func debugOptions() {
|
|
||||||
specLogger = log.New(os.Stdout, "spec:", log.LstdFlags)
|
|
||||||
}
|
|
||||||
|
|
||||||
func debugLog(msg string, args ...interface{}) {
|
|
||||||
// A private, trivial trace logger, based on go-openapi/spec/expander.go:debugLog()
|
|
||||||
if Debug {
|
|
||||||
_, file1, pos1, _ := runtime.Caller(1)
|
|
||||||
specLogger.Printf("%s:%d: %s", filepath.Base(file1), pos1, fmt.Sprintf(msg, args...))
|
|
||||||
}
|
|
||||||
}
|
|
651
vendor/github.com/go-openapi/spec/expander.go
generated
vendored
651
vendor/github.com/go-openapi/spec/expander.go
generated
vendored
@ -1,651 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ExpandOptions provides options for spec expand
|
|
||||||
type ExpandOptions struct {
|
|
||||||
RelativeBase string
|
|
||||||
SkipSchemas bool
|
|
||||||
ContinueOnError bool
|
|
||||||
AbsoluteCircularRef bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveRefWithBase resolves a reference against a context root with preservation of base path
|
|
||||||
func ResolveRefWithBase(root interface{}, ref *Ref, opts *ExpandOptions) (*Schema, error) {
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
specBasePath := ""
|
|
||||||
if opts != nil && opts.RelativeBase != "" {
|
|
||||||
specBasePath, _ = absPath(opts.RelativeBase)
|
|
||||||
}
|
|
||||||
|
|
||||||
result := new(Schema)
|
|
||||||
if err := resolver.Resolve(ref, result, specBasePath); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveRef resolves a reference against a context root
|
|
||||||
// ref is guaranteed to be in root (no need to go to external files)
|
|
||||||
// ResolveRef is ONLY called from the code generation module
|
|
||||||
func ResolveRef(root interface{}, ref *Ref) (*Schema, error) {
|
|
||||||
res, _, err := ref.GetPointer().Get(root)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
switch sch := res.(type) {
|
|
||||||
case Schema:
|
|
||||||
return &sch, nil
|
|
||||||
case *Schema:
|
|
||||||
return sch, nil
|
|
||||||
case map[string]interface{}:
|
|
||||||
b, _ := json.Marshal(sch)
|
|
||||||
newSch := new(Schema)
|
|
||||||
_ = json.Unmarshal(b, newSch)
|
|
||||||
return newSch, nil
|
|
||||||
default:
|
|
||||||
return nil, fmt.Errorf("unknown type for the resolved reference")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveParameter resolves a parameter reference against a context root
|
|
||||||
func ResolveParameter(root interface{}, ref Ref) (*Parameter, error) {
|
|
||||||
return ResolveParameterWithBase(root, ref, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveParameterWithBase resolves a parameter reference against a context root and base path
|
|
||||||
func ResolveParameterWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*Parameter, error) {
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
result := new(Parameter)
|
|
||||||
if err := resolver.Resolve(&ref, result, ""); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveResponse resolves response a reference against a context root
|
|
||||||
func ResolveResponse(root interface{}, ref Ref) (*Response, error) {
|
|
||||||
return ResolveResponseWithBase(root, ref, nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveResponseWithBase resolves response a reference against a context root and base path
|
|
||||||
func ResolveResponseWithBase(root interface{}, ref Ref, opts *ExpandOptions) (*Response, error) {
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
result := new(Response)
|
|
||||||
if err := resolver.Resolve(&ref, result, ""); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolveItems resolves parameter items reference against a context root and base path.
|
|
||||||
//
|
|
||||||
// NOTE: stricly speaking, this construct is not supported by Swagger 2.0.
|
|
||||||
// Similarly, $ref are forbidden in response headers.
|
|
||||||
func ResolveItems(root interface{}, ref Ref, opts *ExpandOptions) (*Items, error) {
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
basePath := ""
|
|
||||||
if opts.RelativeBase != "" {
|
|
||||||
basePath = opts.RelativeBase
|
|
||||||
}
|
|
||||||
result := new(Items)
|
|
||||||
if err := resolver.Resolve(&ref, result, basePath); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResolvePathItem resolves response a path item against a context root and base path
|
|
||||||
func ResolvePathItem(root interface{}, ref Ref, opts *ExpandOptions) (*PathItem, error) {
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
basePath := ""
|
|
||||||
if opts.RelativeBase != "" {
|
|
||||||
basePath = opts.RelativeBase
|
|
||||||
}
|
|
||||||
result := new(PathItem)
|
|
||||||
if err := resolver.Resolve(&ref, result, basePath); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return result, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ExpandSpec expands the references in a swagger spec
|
|
||||||
func ExpandSpec(spec *Swagger, options *ExpandOptions) error {
|
|
||||||
resolver, err := defaultSchemaLoader(spec, options, nil, nil)
|
|
||||||
// Just in case this ever returns an error.
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// getting the base path of the spec to adjust all subsequent reference resolutions
|
|
||||||
specBasePath := ""
|
|
||||||
if options != nil && options.RelativeBase != "" {
|
|
||||||
specBasePath, _ = absPath(options.RelativeBase)
|
|
||||||
}
|
|
||||||
|
|
||||||
if options == nil || !options.SkipSchemas {
|
|
||||||
for key, definition := range spec.Definitions {
|
|
||||||
var def *Schema
|
|
||||||
var err error
|
|
||||||
if def, err = expandSchema(definition, []string{fmt.Sprintf("#/definitions/%s", key)}, resolver, specBasePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if def != nil {
|
|
||||||
spec.Definitions[key] = *def
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for key := range spec.Parameters {
|
|
||||||
parameter := spec.Parameters[key]
|
|
||||||
if err := expandParameterOrResponse(¶meter, resolver, specBasePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
spec.Parameters[key] = parameter
|
|
||||||
}
|
|
||||||
|
|
||||||
for key := range spec.Responses {
|
|
||||||
response := spec.Responses[key]
|
|
||||||
if err := expandParameterOrResponse(&response, resolver, specBasePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
spec.Responses[key] = response
|
|
||||||
}
|
|
||||||
|
|
||||||
if spec.Paths != nil {
|
|
||||||
for key := range spec.Paths.Paths {
|
|
||||||
path := spec.Paths.Paths[key]
|
|
||||||
if err := expandPathItem(&path, resolver, specBasePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
spec.Paths.Paths[key] = path
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// baseForRoot loads in the cache the root document and produces a fake "root" base path entry
|
|
||||||
// for further $ref resolution
|
|
||||||
func baseForRoot(root interface{}, cache ResolutionCache) string {
|
|
||||||
// cache the root document to resolve $ref's
|
|
||||||
const rootBase = "root"
|
|
||||||
if root != nil {
|
|
||||||
base, _ := absPath(rootBase)
|
|
||||||
normalizedBase := normalizeAbsPath(base)
|
|
||||||
debugLog("setting root doc in cache at: %s", normalizedBase)
|
|
||||||
if cache == nil {
|
|
||||||
cache = resCache
|
|
||||||
}
|
|
||||||
cache.Set(normalizedBase, root)
|
|
||||||
return rootBase
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
|
|
||||||
// ExpandSchema expands the refs in the schema object with reference to the root object
|
|
||||||
// go-openapi/validate uses this function
|
|
||||||
// notice that it is impossible to reference a json schema in a different file other than root
|
|
||||||
func ExpandSchema(schema *Schema, root interface{}, cache ResolutionCache) error {
|
|
||||||
opts := &ExpandOptions{
|
|
||||||
// when a root is specified, cache the root as an in-memory document for $ref retrieval
|
|
||||||
RelativeBase: baseForRoot(root, cache),
|
|
||||||
SkipSchemas: false,
|
|
||||||
ContinueOnError: false,
|
|
||||||
// when no base path is specified, remaining $ref (circular) are rendered with an absolute path
|
|
||||||
AbsoluteCircularRef: true,
|
|
||||||
}
|
|
||||||
return ExpandSchemaWithBasePath(schema, cache, opts)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ExpandSchemaWithBasePath expands the refs in the schema object, base path configured through expand options
|
|
||||||
func ExpandSchemaWithBasePath(schema *Schema, cache ResolutionCache, opts *ExpandOptions) error {
|
|
||||||
if schema == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var basePath string
|
|
||||||
if opts.RelativeBase != "" {
|
|
||||||
basePath, _ = absPath(opts.RelativeBase)
|
|
||||||
}
|
|
||||||
|
|
||||||
resolver, err := defaultSchemaLoader(nil, opts, cache, nil)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
refs := []string{""}
|
|
||||||
var s *Schema
|
|
||||||
if s, err = expandSchema(*schema, refs, resolver, basePath); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*schema = *s
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func expandItems(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) {
|
|
||||||
if target.Items != nil {
|
|
||||||
if target.Items.Schema != nil {
|
|
||||||
t, err := expandSchema(*target.Items.Schema, parentRefs, resolver, basePath)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
*target.Items.Schema = *t
|
|
||||||
}
|
|
||||||
for i := range target.Items.Schemas {
|
|
||||||
t, err := expandSchema(target.Items.Schemas[i], parentRefs, resolver, basePath)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
target.Items.Schemas[i] = *t
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return &target, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func expandSchema(target Schema, parentRefs []string, resolver *schemaLoader, basePath string) (*Schema, error) {
|
|
||||||
if target.Ref.String() == "" && target.Ref.IsRoot() {
|
|
||||||
// normalizing is important
|
|
||||||
newRef := normalizeFileRef(&target.Ref, basePath)
|
|
||||||
target.Ref = *newRef
|
|
||||||
return &target, nil
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// change the base path of resolution when an ID is encountered
|
|
||||||
// otherwise the basePath should inherit the parent's
|
|
||||||
// important: ID can be relative path
|
|
||||||
if target.ID != "" {
|
|
||||||
debugLog("schema has ID: %s", target.ID)
|
|
||||||
// handling the case when id is a folder
|
|
||||||
// remember that basePath has to be a file
|
|
||||||
refPath := target.ID
|
|
||||||
if strings.HasSuffix(target.ID, "/") {
|
|
||||||
// path.Clean here would not work correctly if basepath is http
|
|
||||||
refPath = fmt.Sprintf("%s%s", refPath, "placeholder.json")
|
|
||||||
}
|
|
||||||
basePath = normalizePaths(refPath, basePath)
|
|
||||||
}
|
|
||||||
|
|
||||||
var t *Schema
|
|
||||||
// if Ref is found, everything else doesn't matter
|
|
||||||
// Ref also changes the resolution scope of children expandSchema
|
|
||||||
if target.Ref.String() != "" {
|
|
||||||
// here the resolution scope is changed because a $ref was encountered
|
|
||||||
normalizedRef := normalizeFileRef(&target.Ref, basePath)
|
|
||||||
normalizedBasePath := normalizedRef.RemoteURI()
|
|
||||||
|
|
||||||
if resolver.isCircular(normalizedRef, basePath, parentRefs...) {
|
|
||||||
// this means there is a cycle in the recursion tree: return the Ref
|
|
||||||
// - circular refs cannot be expanded. We leave them as ref.
|
|
||||||
// - denormalization means that a new local file ref is set relative to the original basePath
|
|
||||||
debugLog("shortcut circular ref: basePath: %s, normalizedPath: %s, normalized ref: %s",
|
|
||||||
basePath, normalizedBasePath, normalizedRef.String())
|
|
||||||
if !resolver.options.AbsoluteCircularRef {
|
|
||||||
target.Ref = *denormalizeFileRef(normalizedRef, normalizedBasePath, resolver.context.basePath)
|
|
||||||
} else {
|
|
||||||
target.Ref = *normalizedRef
|
|
||||||
}
|
|
||||||
return &target, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
debugLog("basePath: %s: calling Resolve with target: %#v", basePath, target)
|
|
||||||
if err := resolver.Resolve(&target.Ref, &t, basePath); resolver.shouldStopOnError(err) {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if t != nil {
|
|
||||||
parentRefs = append(parentRefs, normalizedRef.String())
|
|
||||||
var err error
|
|
||||||
transitiveResolver, err := resolver.transitiveResolver(basePath, target.Ref)
|
|
||||||
if transitiveResolver.shouldStopOnError(err) {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
basePath = resolver.updateBasePath(transitiveResolver, normalizedBasePath)
|
|
||||||
|
|
||||||
return expandSchema(*t, parentRefs, transitiveResolver, basePath)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
t, err := expandItems(target, parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
if t != nil {
|
|
||||||
target = *t
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := range target.AllOf {
|
|
||||||
t, err := expandSchema(target.AllOf[i], parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
target.AllOf[i] = *t
|
|
||||||
}
|
|
||||||
for i := range target.AnyOf {
|
|
||||||
t, err := expandSchema(target.AnyOf[i], parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
target.AnyOf[i] = *t
|
|
||||||
}
|
|
||||||
for i := range target.OneOf {
|
|
||||||
t, err := expandSchema(target.OneOf[i], parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
if t != nil {
|
|
||||||
target.OneOf[i] = *t
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if target.Not != nil {
|
|
||||||
t, err := expandSchema(*target.Not, parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
if t != nil {
|
|
||||||
*target.Not = *t
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for k := range target.Properties {
|
|
||||||
t, err := expandSchema(target.Properties[k], parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
if t != nil {
|
|
||||||
target.Properties[k] = *t
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if target.AdditionalProperties != nil && target.AdditionalProperties.Schema != nil {
|
|
||||||
t, err := expandSchema(*target.AdditionalProperties.Schema, parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
if t != nil {
|
|
||||||
*target.AdditionalProperties.Schema = *t
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for k := range target.PatternProperties {
|
|
||||||
t, err := expandSchema(target.PatternProperties[k], parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
if t != nil {
|
|
||||||
target.PatternProperties[k] = *t
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for k := range target.Dependencies {
|
|
||||||
if target.Dependencies[k].Schema != nil {
|
|
||||||
t, err := expandSchema(*target.Dependencies[k].Schema, parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
if t != nil {
|
|
||||||
*target.Dependencies[k].Schema = *t
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if target.AdditionalItems != nil && target.AdditionalItems.Schema != nil {
|
|
||||||
t, err := expandSchema(*target.AdditionalItems.Schema, parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
if t != nil {
|
|
||||||
*target.AdditionalItems.Schema = *t
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for k := range target.Definitions {
|
|
||||||
t, err := expandSchema(target.Definitions[k], parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return &target, err
|
|
||||||
}
|
|
||||||
if t != nil {
|
|
||||||
target.Definitions[k] = *t
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return &target, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func expandPathItem(pathItem *PathItem, resolver *schemaLoader, basePath string) error {
|
|
||||||
if pathItem == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
parentRefs := []string{}
|
|
||||||
if err := resolver.deref(pathItem, parentRefs, basePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if pathItem.Ref.String() != "" {
|
|
||||||
transitiveResolver, err := resolver.transitiveResolver(basePath, pathItem.Ref)
|
|
||||||
if transitiveResolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
basePath = transitiveResolver.updateBasePath(resolver, basePath)
|
|
||||||
resolver = transitiveResolver
|
|
||||||
}
|
|
||||||
pathItem.Ref = Ref{}
|
|
||||||
|
|
||||||
for idx := range pathItem.Parameters {
|
|
||||||
if err := expandParameterOrResponse(&(pathItem.Parameters[idx]), resolver, basePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ops := []*Operation{
|
|
||||||
pathItem.Get,
|
|
||||||
pathItem.Head,
|
|
||||||
pathItem.Options,
|
|
||||||
pathItem.Put,
|
|
||||||
pathItem.Post,
|
|
||||||
pathItem.Patch,
|
|
||||||
pathItem.Delete,
|
|
||||||
}
|
|
||||||
for _, op := range ops {
|
|
||||||
if err := expandOperation(op, resolver, basePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func expandOperation(op *Operation, resolver *schemaLoader, basePath string) error {
|
|
||||||
if op == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := range op.Parameters {
|
|
||||||
param := op.Parameters[i]
|
|
||||||
if err := expandParameterOrResponse(¶m, resolver, basePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
op.Parameters[i] = param
|
|
||||||
}
|
|
||||||
|
|
||||||
if op.Responses != nil {
|
|
||||||
responses := op.Responses
|
|
||||||
if err := expandParameterOrResponse(responses.Default, resolver, basePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for code := range responses.StatusCodeResponses {
|
|
||||||
response := responses.StatusCodeResponses[code]
|
|
||||||
if err := expandParameterOrResponse(&response, resolver, basePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
responses.StatusCodeResponses[code] = response
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ExpandResponseWithRoot expands a response based on a root document, not a fetchable document
|
|
||||||
func ExpandResponseWithRoot(response *Response, root interface{}, cache ResolutionCache) error {
|
|
||||||
opts := &ExpandOptions{
|
|
||||||
RelativeBase: baseForRoot(root, cache),
|
|
||||||
SkipSchemas: false,
|
|
||||||
ContinueOnError: false,
|
|
||||||
// when no base path is specified, remaining $ref (circular) are rendered with an absolute path
|
|
||||||
AbsoluteCircularRef: true,
|
|
||||||
}
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return expandParameterOrResponse(response, resolver, opts.RelativeBase)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ExpandResponse expands a response based on a basepath
|
|
||||||
// This is the exported version of expandResponse
|
|
||||||
// all refs inside response will be resolved relative to basePath
|
|
||||||
func ExpandResponse(response *Response, basePath string) error {
|
|
||||||
var specBasePath string
|
|
||||||
if basePath != "" {
|
|
||||||
specBasePath, _ = absPath(basePath)
|
|
||||||
}
|
|
||||||
opts := &ExpandOptions{
|
|
||||||
RelativeBase: specBasePath,
|
|
||||||
}
|
|
||||||
resolver, err := defaultSchemaLoader(nil, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return expandParameterOrResponse(response, resolver, opts.RelativeBase)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ExpandParameterWithRoot expands a parameter based on a root document, not a fetchable document
|
|
||||||
func ExpandParameterWithRoot(parameter *Parameter, root interface{}, cache ResolutionCache) error {
|
|
||||||
opts := &ExpandOptions{
|
|
||||||
RelativeBase: baseForRoot(root, cache),
|
|
||||||
SkipSchemas: false,
|
|
||||||
ContinueOnError: false,
|
|
||||||
// when no base path is specified, remaining $ref (circular) are rendered with an absolute path
|
|
||||||
AbsoluteCircularRef: true,
|
|
||||||
}
|
|
||||||
resolver, err := defaultSchemaLoader(root, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return expandParameterOrResponse(parameter, resolver, opts.RelativeBase)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ExpandParameter expands a parameter based on a basepath.
|
|
||||||
// This is the exported version of expandParameter
|
|
||||||
// all refs inside parameter will be resolved relative to basePath
|
|
||||||
func ExpandParameter(parameter *Parameter, basePath string) error {
|
|
||||||
var specBasePath string
|
|
||||||
if basePath != "" {
|
|
||||||
specBasePath, _ = absPath(basePath)
|
|
||||||
}
|
|
||||||
opts := &ExpandOptions{
|
|
||||||
RelativeBase: specBasePath,
|
|
||||||
}
|
|
||||||
resolver, err := defaultSchemaLoader(nil, opts, nil, nil)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return expandParameterOrResponse(parameter, resolver, opts.RelativeBase)
|
|
||||||
}
|
|
||||||
|
|
||||||
func getRefAndSchema(input interface{}) (*Ref, *Schema, error) {
|
|
||||||
var ref *Ref
|
|
||||||
var sch *Schema
|
|
||||||
switch refable := input.(type) {
|
|
||||||
case *Parameter:
|
|
||||||
if refable == nil {
|
|
||||||
return nil, nil, nil
|
|
||||||
}
|
|
||||||
ref = &refable.Ref
|
|
||||||
sch = refable.Schema
|
|
||||||
case *Response:
|
|
||||||
if refable == nil {
|
|
||||||
return nil, nil, nil
|
|
||||||
}
|
|
||||||
ref = &refable.Ref
|
|
||||||
sch = refable.Schema
|
|
||||||
default:
|
|
||||||
return nil, nil, fmt.Errorf("expand: unsupported type %T. Input should be of type *Parameter or *Response", input)
|
|
||||||
}
|
|
||||||
return ref, sch, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func expandParameterOrResponse(input interface{}, resolver *schemaLoader, basePath string) error {
|
|
||||||
ref, _, err := getRefAndSchema(input)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if ref == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
parentRefs := []string{}
|
|
||||||
if err := resolver.deref(input, parentRefs, basePath); resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
ref, sch, _ := getRefAndSchema(input)
|
|
||||||
if ref.String() != "" {
|
|
||||||
transitiveResolver, err := resolver.transitiveResolver(basePath, *ref)
|
|
||||||
if transitiveResolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
basePath = resolver.updateBasePath(transitiveResolver, basePath)
|
|
||||||
resolver = transitiveResolver
|
|
||||||
}
|
|
||||||
|
|
||||||
if sch != nil && sch.Ref.String() != "" {
|
|
||||||
// schema expanded to a $ref in another root
|
|
||||||
var ern error
|
|
||||||
sch.Ref, ern = NewRef(normalizePaths(sch.Ref.String(), ref.RemoteURI()))
|
|
||||||
if ern != nil {
|
|
||||||
return ern
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ref != nil {
|
|
||||||
*ref = Ref{}
|
|
||||||
}
|
|
||||||
|
|
||||||
if !resolver.options.SkipSchemas && sch != nil {
|
|
||||||
s, err := expandSchema(*sch, parentRefs, resolver, basePath)
|
|
||||||
if resolver.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*sch = *s
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
24
vendor/github.com/go-openapi/spec/external_docs.go
generated
vendored
24
vendor/github.com/go-openapi/spec/external_docs.go
generated
vendored
@ -1,24 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
// ExternalDocumentation allows referencing an external resource for
|
|
||||||
// extended documentation.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#externalDocumentationObject
|
|
||||||
type ExternalDocumentation struct {
|
|
||||||
Description string `json:"description,omitempty"`
|
|
||||||
URL string `json:"url,omitempty"`
|
|
||||||
}
|
|
12
vendor/github.com/go-openapi/spec/go.mod
generated
vendored
12
vendor/github.com/go-openapi/spec/go.mod
generated
vendored
@ -1,12 +0,0 @@
|
|||||||
module github.com/go-openapi/spec
|
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3
|
|
||||||
github.com/go-openapi/jsonreference v0.19.2
|
|
||||||
github.com/go-openapi/swag v0.19.5
|
|
||||||
github.com/stretchr/testify v1.3.0
|
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 // indirect
|
|
||||||
gopkg.in/yaml.v2 v2.2.4
|
|
||||||
)
|
|
||||||
|
|
||||||
go 1.13
|
|
49
vendor/github.com/go-openapi/spec/go.sum
generated
vendored
49
vendor/github.com/go-openapi/spec/go.sum
generated
vendored
@ -1,49 +0,0 @@
|
|||||||
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/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
|
||||||
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/go-openapi/jsonpointer v0.19.2 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3 h1:gihV7YNZK1iK6Tgwwsxo2rJbD1GTbdm72325Bq8FI3w=
|
|
||||||
github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.2 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w=
|
|
||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
|
|
||||||
github.com/go-openapi/swag v0.19.2 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE=
|
|
||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
|
||||||
github.com/go-openapi/swag v0.19.5 h1:lTz6Ys4CmqqCQmZPBlbQENR1/GucA2bzYTE12Pw4tFY=
|
|
||||||
github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
|
|
||||||
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/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
|
||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63 h1:nTT4s92Dgz2HlrB2NaMgvlfqHH39OgMhA7z3PK7PGD4=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8=
|
|
||||||
github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
|
|
||||||
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/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
|
||||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
|
||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
|
||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
|
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU=
|
|
||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297 h1:k7pJ2yAPLPgbskkFdhRCsA77k2fySZ1zf2zCjvQCiIM=
|
|
||||||
golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
|
|
||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
|
||||||
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.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
|
|
||||||
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
|
|
||||||
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
|
||||||
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/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
|
||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
||||||
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
|
|
||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
|
197
vendor/github.com/go-openapi/spec/header.go
generated
vendored
197
vendor/github.com/go-openapi/spec/header.go
generated
vendored
@ -1,197 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
jsonArray = "array"
|
|
||||||
)
|
|
||||||
|
|
||||||
// HeaderProps describes a response header
|
|
||||||
type HeaderProps struct {
|
|
||||||
Description string `json:"description,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Header describes a header for a response of the API
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#headerObject
|
|
||||||
type Header struct {
|
|
||||||
CommonValidations
|
|
||||||
SimpleSchema
|
|
||||||
VendorExtensible
|
|
||||||
HeaderProps
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseHeader creates a new header instance for use in a response
|
|
||||||
func ResponseHeader() *Header {
|
|
||||||
return new(Header)
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDescription sets the description on this response, allows for chaining
|
|
||||||
func (h *Header) WithDescription(description string) *Header {
|
|
||||||
h.Description = description
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// Typed a fluent builder method for the type of parameter
|
|
||||||
func (h *Header) Typed(tpe, format string) *Header {
|
|
||||||
h.Type = tpe
|
|
||||||
h.Format = format
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// CollectionOf a fluent builder method for an array item
|
|
||||||
func (h *Header) CollectionOf(items *Items, format string) *Header {
|
|
||||||
h.Type = jsonArray
|
|
||||||
h.Items = items
|
|
||||||
h.CollectionFormat = format
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDefault sets the default value on this item
|
|
||||||
func (h *Header) WithDefault(defaultValue interface{}) *Header {
|
|
||||||
h.Default = defaultValue
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaxLength sets a max length value
|
|
||||||
func (h *Header) WithMaxLength(max int64) *Header {
|
|
||||||
h.MaxLength = &max
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinLength sets a min length value
|
|
||||||
func (h *Header) WithMinLength(min int64) *Header {
|
|
||||||
h.MinLength = &min
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithPattern sets a pattern value
|
|
||||||
func (h *Header) WithPattern(pattern string) *Header {
|
|
||||||
h.Pattern = pattern
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMultipleOf sets a multiple of value
|
|
||||||
func (h *Header) WithMultipleOf(number float64) *Header {
|
|
||||||
h.MultipleOf = &number
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaximum sets a maximum number value
|
|
||||||
func (h *Header) WithMaximum(max float64, exclusive bool) *Header {
|
|
||||||
h.Maximum = &max
|
|
||||||
h.ExclusiveMaximum = exclusive
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinimum sets a minimum number value
|
|
||||||
func (h *Header) WithMinimum(min float64, exclusive bool) *Header {
|
|
||||||
h.Minimum = &min
|
|
||||||
h.ExclusiveMinimum = exclusive
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithEnum sets a the enum values (replace)
|
|
||||||
func (h *Header) WithEnum(values ...interface{}) *Header {
|
|
||||||
h.Enum = append([]interface{}{}, values...)
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaxItems sets the max items
|
|
||||||
func (h *Header) WithMaxItems(size int64) *Header {
|
|
||||||
h.MaxItems = &size
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinItems sets the min items
|
|
||||||
func (h *Header) WithMinItems(size int64) *Header {
|
|
||||||
h.MinItems = &size
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// UniqueValues dictates that this array can only have unique items
|
|
||||||
func (h *Header) UniqueValues() *Header {
|
|
||||||
h.UniqueItems = true
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// AllowDuplicates this array can have duplicates
|
|
||||||
func (h *Header) AllowDuplicates() *Header {
|
|
||||||
h.UniqueItems = false
|
|
||||||
return h
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON marshal this to JSON
|
|
||||||
func (h Header) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(h.CommonValidations)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(h.SimpleSchema)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b3, err := json.Marshal(h.HeaderProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return swag.ConcatJSON(b1, b2, b3), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON unmarshals this header from JSON
|
|
||||||
func (h *Header) UnmarshalJSON(data []byte) error {
|
|
||||||
if err := json.Unmarshal(data, &h.CommonValidations); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := json.Unmarshal(data, &h.SimpleSchema); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := json.Unmarshal(data, &h.VendorExtensible); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return json.Unmarshal(data, &h.HeaderProps)
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup look up a value by the json property name
|
|
||||||
func (h Header) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if ex, ok := h.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
r, _, err := jsonpointer.GetForToken(h.CommonValidations, token)
|
|
||||||
if err != nil && !strings.HasPrefix(err.Error(), "object has no field") {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if r != nil {
|
|
||||||
return r, nil
|
|
||||||
}
|
|
||||||
r, _, err = jsonpointer.GetForToken(h.SimpleSchema, token)
|
|
||||||
if err != nil && !strings.HasPrefix(err.Error(), "object has no field") {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if r != nil {
|
|
||||||
return r, nil
|
|
||||||
}
|
|
||||||
r, _, err = jsonpointer.GetForToken(h.HeaderProps, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
165
vendor/github.com/go-openapi/spec/info.go
generated
vendored
165
vendor/github.com/go-openapi/spec/info.go
generated
vendored
@ -1,165 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Extensions vendor specific extensions
|
|
||||||
type Extensions map[string]interface{}
|
|
||||||
|
|
||||||
// Add adds a value to these extensions
|
|
||||||
func (e Extensions) Add(key string, value interface{}) {
|
|
||||||
realKey := strings.ToLower(key)
|
|
||||||
e[realKey] = value
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetString gets a string value from the extensions
|
|
||||||
func (e Extensions) GetString(key string) (string, bool) {
|
|
||||||
if v, ok := e[strings.ToLower(key)]; ok {
|
|
||||||
str, ok := v.(string)
|
|
||||||
return str, ok
|
|
||||||
}
|
|
||||||
return "", false
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetBool gets a string value from the extensions
|
|
||||||
func (e Extensions) GetBool(key string) (bool, bool) {
|
|
||||||
if v, ok := e[strings.ToLower(key)]; ok {
|
|
||||||
str, ok := v.(bool)
|
|
||||||
return str, ok
|
|
||||||
}
|
|
||||||
return false, false
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetStringSlice gets a string value from the extensions
|
|
||||||
func (e Extensions) GetStringSlice(key string) ([]string, bool) {
|
|
||||||
if v, ok := e[strings.ToLower(key)]; ok {
|
|
||||||
arr, isSlice := v.([]interface{})
|
|
||||||
if !isSlice {
|
|
||||||
return nil, false
|
|
||||||
}
|
|
||||||
var strs []string
|
|
||||||
for _, iface := range arr {
|
|
||||||
str, isString := iface.(string)
|
|
||||||
if !isString {
|
|
||||||
return nil, false
|
|
||||||
}
|
|
||||||
strs = append(strs, str)
|
|
||||||
}
|
|
||||||
return strs, ok
|
|
||||||
}
|
|
||||||
return nil, false
|
|
||||||
}
|
|
||||||
|
|
||||||
// VendorExtensible composition block.
|
|
||||||
type VendorExtensible struct {
|
|
||||||
Extensions Extensions
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddExtension adds an extension to this extensible object
|
|
||||||
func (v *VendorExtensible) AddExtension(key string, value interface{}) {
|
|
||||||
if value == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if v.Extensions == nil {
|
|
||||||
v.Extensions = make(map[string]interface{})
|
|
||||||
}
|
|
||||||
v.Extensions.Add(key, value)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON marshals the extensions to json
|
|
||||||
func (v VendorExtensible) MarshalJSON() ([]byte, error) {
|
|
||||||
toser := make(map[string]interface{})
|
|
||||||
for k, v := range v.Extensions {
|
|
||||||
lk := strings.ToLower(k)
|
|
||||||
if strings.HasPrefix(lk, "x-") {
|
|
||||||
toser[k] = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return json.Marshal(toser)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON for this extensible object
|
|
||||||
func (v *VendorExtensible) UnmarshalJSON(data []byte) error {
|
|
||||||
var d map[string]interface{}
|
|
||||||
if err := json.Unmarshal(data, &d); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for k, vv := range d {
|
|
||||||
lk := strings.ToLower(k)
|
|
||||||
if strings.HasPrefix(lk, "x-") {
|
|
||||||
if v.Extensions == nil {
|
|
||||||
v.Extensions = map[string]interface{}{}
|
|
||||||
}
|
|
||||||
v.Extensions[k] = vv
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// InfoProps the properties for an info definition
|
|
||||||
type InfoProps struct {
|
|
||||||
Description string `json:"description,omitempty"`
|
|
||||||
Title string `json:"title,omitempty"`
|
|
||||||
TermsOfService string `json:"termsOfService,omitempty"`
|
|
||||||
Contact *ContactInfo `json:"contact,omitempty"`
|
|
||||||
License *License `json:"license,omitempty"`
|
|
||||||
Version string `json:"version,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Info object provides metadata about the API.
|
|
||||||
// The metadata can be used by the clients if needed, and can be presented in the Swagger-UI for convenience.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#infoObject
|
|
||||||
type Info struct {
|
|
||||||
VendorExtensible
|
|
||||||
InfoProps
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup look up a value by the json property name
|
|
||||||
func (i Info) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if ex, ok := i.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
r, _, err := jsonpointer.GetForToken(i.InfoProps, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON marshal this to JSON
|
|
||||||
func (i Info) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(i.InfoProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(i.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return swag.ConcatJSON(b1, b2), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON marshal this from JSON
|
|
||||||
func (i *Info) UnmarshalJSON(data []byte) error {
|
|
||||||
if err := json.Unmarshal(data, &i.InfoProps); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return json.Unmarshal(data, &i.VendorExtensible)
|
|
||||||
}
|
|
244
vendor/github.com/go-openapi/spec/items.go
generated
vendored
244
vendor/github.com/go-openapi/spec/items.go
generated
vendored
@ -1,244 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
jsonRef = "$ref"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SimpleSchema describe swagger simple schemas for parameters and headers
|
|
||||||
type SimpleSchema struct {
|
|
||||||
Type string `json:"type,omitempty"`
|
|
||||||
Nullable bool `json:"nullable,omitempty"`
|
|
||||||
Format string `json:"format,omitempty"`
|
|
||||||
Items *Items `json:"items,omitempty"`
|
|
||||||
CollectionFormat string `json:"collectionFormat,omitempty"`
|
|
||||||
Default interface{} `json:"default,omitempty"`
|
|
||||||
Example interface{} `json:"example,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// TypeName return the type (or format) of a simple schema
|
|
||||||
func (s *SimpleSchema) TypeName() string {
|
|
||||||
if s.Format != "" {
|
|
||||||
return s.Format
|
|
||||||
}
|
|
||||||
return s.Type
|
|
||||||
}
|
|
||||||
|
|
||||||
// ItemsTypeName yields the type of items in a simple schema array
|
|
||||||
func (s *SimpleSchema) ItemsTypeName() string {
|
|
||||||
if s.Items == nil {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
return s.Items.TypeName()
|
|
||||||
}
|
|
||||||
|
|
||||||
// CommonValidations describe common JSON-schema validations
|
|
||||||
type CommonValidations struct {
|
|
||||||
Maximum *float64 `json:"maximum,omitempty"`
|
|
||||||
ExclusiveMaximum bool `json:"exclusiveMaximum,omitempty"`
|
|
||||||
Minimum *float64 `json:"minimum,omitempty"`
|
|
||||||
ExclusiveMinimum bool `json:"exclusiveMinimum,omitempty"`
|
|
||||||
MaxLength *int64 `json:"maxLength,omitempty"`
|
|
||||||
MinLength *int64 `json:"minLength,omitempty"`
|
|
||||||
Pattern string `json:"pattern,omitempty"`
|
|
||||||
MaxItems *int64 `json:"maxItems,omitempty"`
|
|
||||||
MinItems *int64 `json:"minItems,omitempty"`
|
|
||||||
UniqueItems bool `json:"uniqueItems,omitempty"`
|
|
||||||
MultipleOf *float64 `json:"multipleOf,omitempty"`
|
|
||||||
Enum []interface{} `json:"enum,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Items a limited subset of JSON-Schema's items object.
|
|
||||||
// It is used by parameter definitions that are not located in "body".
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#items-object
|
|
||||||
type Items struct {
|
|
||||||
Refable
|
|
||||||
CommonValidations
|
|
||||||
SimpleSchema
|
|
||||||
VendorExtensible
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewItems creates a new instance of items
|
|
||||||
func NewItems() *Items {
|
|
||||||
return &Items{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Typed a fluent builder method for the type of item
|
|
||||||
func (i *Items) Typed(tpe, format string) *Items {
|
|
||||||
i.Type = tpe
|
|
||||||
i.Format = format
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsNullable flags this schema as nullable.
|
|
||||||
func (i *Items) AsNullable() *Items {
|
|
||||||
i.Nullable = true
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// CollectionOf a fluent builder method for an array item
|
|
||||||
func (i *Items) CollectionOf(items *Items, format string) *Items {
|
|
||||||
i.Type = jsonArray
|
|
||||||
i.Items = items
|
|
||||||
i.CollectionFormat = format
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDefault sets the default value on this item
|
|
||||||
func (i *Items) WithDefault(defaultValue interface{}) *Items {
|
|
||||||
i.Default = defaultValue
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaxLength sets a max length value
|
|
||||||
func (i *Items) WithMaxLength(max int64) *Items {
|
|
||||||
i.MaxLength = &max
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinLength sets a min length value
|
|
||||||
func (i *Items) WithMinLength(min int64) *Items {
|
|
||||||
i.MinLength = &min
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithPattern sets a pattern value
|
|
||||||
func (i *Items) WithPattern(pattern string) *Items {
|
|
||||||
i.Pattern = pattern
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMultipleOf sets a multiple of value
|
|
||||||
func (i *Items) WithMultipleOf(number float64) *Items {
|
|
||||||
i.MultipleOf = &number
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaximum sets a maximum number value
|
|
||||||
func (i *Items) WithMaximum(max float64, exclusive bool) *Items {
|
|
||||||
i.Maximum = &max
|
|
||||||
i.ExclusiveMaximum = exclusive
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinimum sets a minimum number value
|
|
||||||
func (i *Items) WithMinimum(min float64, exclusive bool) *Items {
|
|
||||||
i.Minimum = &min
|
|
||||||
i.ExclusiveMinimum = exclusive
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithEnum sets a the enum values (replace)
|
|
||||||
func (i *Items) WithEnum(values ...interface{}) *Items {
|
|
||||||
i.Enum = append([]interface{}{}, values...)
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaxItems sets the max items
|
|
||||||
func (i *Items) WithMaxItems(size int64) *Items {
|
|
||||||
i.MaxItems = &size
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinItems sets the min items
|
|
||||||
func (i *Items) WithMinItems(size int64) *Items {
|
|
||||||
i.MinItems = &size
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// UniqueValues dictates that this array can only have unique items
|
|
||||||
func (i *Items) UniqueValues() *Items {
|
|
||||||
i.UniqueItems = true
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// AllowDuplicates this array can have duplicates
|
|
||||||
func (i *Items) AllowDuplicates() *Items {
|
|
||||||
i.UniqueItems = false
|
|
||||||
return i
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON hydrates this items instance with the data from JSON
|
|
||||||
func (i *Items) UnmarshalJSON(data []byte) error {
|
|
||||||
var validations CommonValidations
|
|
||||||
if err := json.Unmarshal(data, &validations); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
var ref Refable
|
|
||||||
if err := json.Unmarshal(data, &ref); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
var simpleSchema SimpleSchema
|
|
||||||
if err := json.Unmarshal(data, &simpleSchema); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
var vendorExtensible VendorExtensible
|
|
||||||
if err := json.Unmarshal(data, &vendorExtensible); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
i.Refable = ref
|
|
||||||
i.CommonValidations = validations
|
|
||||||
i.SimpleSchema = simpleSchema
|
|
||||||
i.VendorExtensible = vendorExtensible
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON converts this items object to JSON
|
|
||||||
func (i Items) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(i.CommonValidations)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(i.SimpleSchema)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b3, err := json.Marshal(i.Refable)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b4, err := json.Marshal(i.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return swag.ConcatJSON(b4, b3, b1, b2), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup look up a value by the json property name
|
|
||||||
func (i Items) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if token == jsonRef {
|
|
||||||
return &i.Ref, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
r, _, err := jsonpointer.GetForToken(i.CommonValidations, token)
|
|
||||||
if err != nil && !strings.HasPrefix(err.Error(), "object has no field") {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if r != nil {
|
|
||||||
return r, nil
|
|
||||||
}
|
|
||||||
r, _, err = jsonpointer.GetForToken(i.SimpleSchema, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
23
vendor/github.com/go-openapi/spec/license.go
generated
vendored
23
vendor/github.com/go-openapi/spec/license.go
generated
vendored
@ -1,23 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
// License information for the exposed API.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#licenseObject
|
|
||||||
type License struct {
|
|
||||||
Name string `json:"name,omitempty"`
|
|
||||||
URL string `json:"url,omitempty"`
|
|
||||||
}
|
|
152
vendor/github.com/go-openapi/spec/normalizer.go
generated
vendored
152
vendor/github.com/go-openapi/spec/normalizer.go
generated
vendored
@ -1,152 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"net/url"
|
|
||||||
"os"
|
|
||||||
"path"
|
|
||||||
"path/filepath"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
// normalize absolute path for cache.
|
|
||||||
// on Windows, drive letters should be converted to lower as scheme in net/url.URL
|
|
||||||
func normalizeAbsPath(path string) string {
|
|
||||||
u, err := url.Parse(path)
|
|
||||||
if err != nil {
|
|
||||||
debugLog("normalize absolute path failed: %s", err)
|
|
||||||
return path
|
|
||||||
}
|
|
||||||
return u.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
// base or refPath could be a file path or a URL
|
|
||||||
// given a base absolute path and a ref path, return the absolute path of refPath
|
|
||||||
// 1) if refPath is absolute, return it
|
|
||||||
// 2) if refPath is relative, join it with basePath keeping the scheme, hosts, and ports if exists
|
|
||||||
// base could be a directory or a full file path
|
|
||||||
func normalizePaths(refPath, base string) string {
|
|
||||||
refURL, _ := url.Parse(refPath)
|
|
||||||
if path.IsAbs(refURL.Path) || filepath.IsAbs(refPath) {
|
|
||||||
// refPath is actually absolute
|
|
||||||
if refURL.Host != "" {
|
|
||||||
return refPath
|
|
||||||
}
|
|
||||||
parts := strings.Split(refPath, "#")
|
|
||||||
result := filepath.FromSlash(parts[0])
|
|
||||||
if len(parts) == 2 {
|
|
||||||
result += "#" + parts[1]
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
// relative refPath
|
|
||||||
baseURL, _ := url.Parse(base)
|
|
||||||
if !strings.HasPrefix(refPath, "#") {
|
|
||||||
// combining paths
|
|
||||||
if baseURL.Host != "" {
|
|
||||||
baseURL.Path = path.Join(path.Dir(baseURL.Path), refURL.Path)
|
|
||||||
} else { // base is a file
|
|
||||||
newBase := fmt.Sprintf("%s#%s", filepath.Join(filepath.Dir(base), filepath.FromSlash(refURL.Path)), refURL.Fragment)
|
|
||||||
return newBase
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
// copying fragment from ref to base
|
|
||||||
baseURL.Fragment = refURL.Fragment
|
|
||||||
return baseURL.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
// denormalizePaths returns to simplest notation on file $ref,
|
|
||||||
// i.e. strips the absolute path and sets a path relative to the base path.
|
|
||||||
//
|
|
||||||
// This is currently used when we rewrite ref after a circular ref has been detected
|
|
||||||
func denormalizeFileRef(ref *Ref, relativeBase, originalRelativeBase string) *Ref {
|
|
||||||
debugLog("denormalizeFileRef for: %s", ref.String())
|
|
||||||
|
|
||||||
if ref.String() == "" || ref.IsRoot() || ref.HasFragmentOnly {
|
|
||||||
return ref
|
|
||||||
}
|
|
||||||
// strip relativeBase from URI
|
|
||||||
relativeBaseURL, _ := url.Parse(relativeBase)
|
|
||||||
relativeBaseURL.Fragment = ""
|
|
||||||
|
|
||||||
if relativeBaseURL.IsAbs() && strings.HasPrefix(ref.String(), relativeBase) {
|
|
||||||
// this should work for absolute URI (e.g. http://...): we have an exact match, just trim prefix
|
|
||||||
r, _ := NewRef(strings.TrimPrefix(ref.String(), relativeBase))
|
|
||||||
return &r
|
|
||||||
}
|
|
||||||
|
|
||||||
if relativeBaseURL.IsAbs() {
|
|
||||||
// other absolute URL get unchanged (i.e. with a non-empty scheme)
|
|
||||||
return ref
|
|
||||||
}
|
|
||||||
|
|
||||||
// for relative file URIs:
|
|
||||||
originalRelativeBaseURL, _ := url.Parse(originalRelativeBase)
|
|
||||||
originalRelativeBaseURL.Fragment = ""
|
|
||||||
if strings.HasPrefix(ref.String(), originalRelativeBaseURL.String()) {
|
|
||||||
// the resulting ref is in the expanded spec: return a local ref
|
|
||||||
r, _ := NewRef(strings.TrimPrefix(ref.String(), originalRelativeBaseURL.String()))
|
|
||||||
return &r
|
|
||||||
}
|
|
||||||
|
|
||||||
// check if we may set a relative path, considering the original base path for this spec.
|
|
||||||
// Example:
|
|
||||||
// spec is located at /mypath/spec.json
|
|
||||||
// my normalized ref points to: /mypath/item.json#/target
|
|
||||||
// expected result: item.json#/target
|
|
||||||
parts := strings.Split(ref.String(), "#")
|
|
||||||
relativePath, err := filepath.Rel(path.Dir(originalRelativeBaseURL.String()), parts[0])
|
|
||||||
if err != nil {
|
|
||||||
// there is no common ancestor (e.g. different drives on windows)
|
|
||||||
// leaves the ref unchanged
|
|
||||||
return ref
|
|
||||||
}
|
|
||||||
if len(parts) == 2 {
|
|
||||||
relativePath += "#" + parts[1]
|
|
||||||
}
|
|
||||||
r, _ := NewRef(relativePath)
|
|
||||||
return &r
|
|
||||||
}
|
|
||||||
|
|
||||||
// relativeBase could be an ABSOLUTE file path or an ABSOLUTE URL
|
|
||||||
func normalizeFileRef(ref *Ref, relativeBase string) *Ref {
|
|
||||||
// This is important for when the reference is pointing to the root schema
|
|
||||||
if ref.String() == "" {
|
|
||||||
r, _ := NewRef(relativeBase)
|
|
||||||
return &r
|
|
||||||
}
|
|
||||||
|
|
||||||
debugLog("normalizing %s against %s", ref.String(), relativeBase)
|
|
||||||
|
|
||||||
s := normalizePaths(ref.String(), relativeBase)
|
|
||||||
r, _ := NewRef(s)
|
|
||||||
return &r
|
|
||||||
}
|
|
||||||
|
|
||||||
// absPath returns the absolute path of a file
|
|
||||||
func absPath(fname string) (string, error) {
|
|
||||||
if strings.HasPrefix(fname, "http") {
|
|
||||||
return fname, nil
|
|
||||||
}
|
|
||||||
if filepath.IsAbs(fname) {
|
|
||||||
return fname, nil
|
|
||||||
}
|
|
||||||
wd, err := os.Getwd()
|
|
||||||
return filepath.Join(wd, fname), err
|
|
||||||
}
|
|
398
vendor/github.com/go-openapi/spec/operation.go
generated
vendored
398
vendor/github.com/go-openapi/spec/operation.go
generated
vendored
@ -1,398 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"encoding/gob"
|
|
||||||
"encoding/json"
|
|
||||||
"sort"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
//gob.Register(map[string][]interface{}{})
|
|
||||||
gob.Register(map[string]interface{}{})
|
|
||||||
gob.Register([]interface{}{})
|
|
||||||
}
|
|
||||||
|
|
||||||
// OperationProps describes an operation
|
|
||||||
//
|
|
||||||
// NOTES:
|
|
||||||
// - schemes, when present must be from [http, https, ws, wss]: see validate
|
|
||||||
// - Security is handled as a special case: see MarshalJSON function
|
|
||||||
type OperationProps struct {
|
|
||||||
Description string `json:"description,omitempty"`
|
|
||||||
Consumes []string `json:"consumes,omitempty"`
|
|
||||||
Produces []string `json:"produces,omitempty"`
|
|
||||||
Schemes []string `json:"schemes,omitempty"`
|
|
||||||
Tags []string `json:"tags,omitempty"`
|
|
||||||
Summary string `json:"summary,omitempty"`
|
|
||||||
ExternalDocs *ExternalDocumentation `json:"externalDocs,omitempty"`
|
|
||||||
ID string `json:"operationId,omitempty"`
|
|
||||||
Deprecated bool `json:"deprecated,omitempty"`
|
|
||||||
Security []map[string][]string `json:"security,omitempty"`
|
|
||||||
Parameters []Parameter `json:"parameters,omitempty"`
|
|
||||||
Responses *Responses `json:"responses,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON takes care of serializing operation properties to JSON
|
|
||||||
//
|
|
||||||
// We use a custom marhaller here to handle a special cases related to
|
|
||||||
// the Security field. We need to preserve zero length slice
|
|
||||||
// while omitting the field when the value is nil/unset.
|
|
||||||
func (op OperationProps) MarshalJSON() ([]byte, error) {
|
|
||||||
type Alias OperationProps
|
|
||||||
if op.Security == nil {
|
|
||||||
return json.Marshal(&struct {
|
|
||||||
Security []map[string][]string `json:"security,omitempty"`
|
|
||||||
*Alias
|
|
||||||
}{
|
|
||||||
Security: op.Security,
|
|
||||||
Alias: (*Alias)(&op),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
return json.Marshal(&struct {
|
|
||||||
Security []map[string][]string `json:"security"`
|
|
||||||
*Alias
|
|
||||||
}{
|
|
||||||
Security: op.Security,
|
|
||||||
Alias: (*Alias)(&op),
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// Operation describes a single API operation on a path.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#operationObject
|
|
||||||
type Operation struct {
|
|
||||||
VendorExtensible
|
|
||||||
OperationProps
|
|
||||||
}
|
|
||||||
|
|
||||||
// SuccessResponse gets a success response model
|
|
||||||
func (o *Operation) SuccessResponse() (*Response, int, bool) {
|
|
||||||
if o.Responses == nil {
|
|
||||||
return nil, 0, false
|
|
||||||
}
|
|
||||||
|
|
||||||
responseCodes := make([]int, 0, len(o.Responses.StatusCodeResponses))
|
|
||||||
for k := range o.Responses.StatusCodeResponses {
|
|
||||||
if k >= 200 && k < 300 {
|
|
||||||
responseCodes = append(responseCodes, k)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if len(responseCodes) > 0 {
|
|
||||||
sort.Ints(responseCodes)
|
|
||||||
v := o.Responses.StatusCodeResponses[responseCodes[0]]
|
|
||||||
return &v, responseCodes[0], true
|
|
||||||
}
|
|
||||||
|
|
||||||
return o.Responses.Default, 0, false
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup look up a value by the json property name
|
|
||||||
func (o Operation) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if ex, ok := o.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
r, _, err := jsonpointer.GetForToken(o.OperationProps, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON hydrates this items instance with the data from JSON
|
|
||||||
func (o *Operation) UnmarshalJSON(data []byte) error {
|
|
||||||
if err := json.Unmarshal(data, &o.OperationProps); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return json.Unmarshal(data, &o.VendorExtensible)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON converts this items object to JSON
|
|
||||||
func (o Operation) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(o.OperationProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(o.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
concated := swag.ConcatJSON(b1, b2)
|
|
||||||
return concated, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewOperation creates a new operation instance.
|
|
||||||
// It expects an ID as parameter but not passing an ID is also valid.
|
|
||||||
func NewOperation(id string) *Operation {
|
|
||||||
op := new(Operation)
|
|
||||||
op.ID = id
|
|
||||||
return op
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithID sets the ID property on this operation, allows for chaining.
|
|
||||||
func (o *Operation) WithID(id string) *Operation {
|
|
||||||
o.ID = id
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDescription sets the description on this operation, allows for chaining
|
|
||||||
func (o *Operation) WithDescription(description string) *Operation {
|
|
||||||
o.Description = description
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithSummary sets the summary on this operation, allows for chaining
|
|
||||||
func (o *Operation) WithSummary(summary string) *Operation {
|
|
||||||
o.Summary = summary
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithExternalDocs sets/removes the external docs for/from this operation.
|
|
||||||
// When you pass empty strings as params the external documents will be removed.
|
|
||||||
// When you pass non-empty string as one value then those values will be used on the external docs object.
|
|
||||||
// So when you pass a non-empty description, you should also pass the url and vice versa.
|
|
||||||
func (o *Operation) WithExternalDocs(description, url string) *Operation {
|
|
||||||
if description == "" && url == "" {
|
|
||||||
o.ExternalDocs = nil
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
if o.ExternalDocs == nil {
|
|
||||||
o.ExternalDocs = &ExternalDocumentation{}
|
|
||||||
}
|
|
||||||
o.ExternalDocs.Description = description
|
|
||||||
o.ExternalDocs.URL = url
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// Deprecate marks the operation as deprecated
|
|
||||||
func (o *Operation) Deprecate() *Operation {
|
|
||||||
o.Deprecated = true
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// Undeprecate marks the operation as not deprected
|
|
||||||
func (o *Operation) Undeprecate() *Operation {
|
|
||||||
o.Deprecated = false
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithConsumes adds media types for incoming body values
|
|
||||||
func (o *Operation) WithConsumes(mediaTypes ...string) *Operation {
|
|
||||||
o.Consumes = append(o.Consumes, mediaTypes...)
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithProduces adds media types for outgoing body values
|
|
||||||
func (o *Operation) WithProduces(mediaTypes ...string) *Operation {
|
|
||||||
o.Produces = append(o.Produces, mediaTypes...)
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithTags adds tags for this operation
|
|
||||||
func (o *Operation) WithTags(tags ...string) *Operation {
|
|
||||||
o.Tags = append(o.Tags, tags...)
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddParam adds a parameter to this operation, when a parameter for that location
|
|
||||||
// and with that name already exists it will be replaced
|
|
||||||
func (o *Operation) AddParam(param *Parameter) *Operation {
|
|
||||||
if param == nil {
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
for i, p := range o.Parameters {
|
|
||||||
if p.Name == param.Name && p.In == param.In {
|
|
||||||
params := append(o.Parameters[:i], *param)
|
|
||||||
params = append(params, o.Parameters[i+1:]...)
|
|
||||||
o.Parameters = params
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
o.Parameters = append(o.Parameters, *param)
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// RemoveParam removes a parameter from the operation
|
|
||||||
func (o *Operation) RemoveParam(name, in string) *Operation {
|
|
||||||
for i, p := range o.Parameters {
|
|
||||||
if p.Name == name && p.In == in {
|
|
||||||
o.Parameters = append(o.Parameters[:i], o.Parameters[i+1:]...)
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// SecuredWith adds a security scope to this operation.
|
|
||||||
func (o *Operation) SecuredWith(name string, scopes ...string) *Operation {
|
|
||||||
o.Security = append(o.Security, map[string][]string{name: scopes})
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDefaultResponse adds a default response to the operation.
|
|
||||||
// Passing a nil value will remove the response
|
|
||||||
func (o *Operation) WithDefaultResponse(response *Response) *Operation {
|
|
||||||
return o.RespondsWith(0, response)
|
|
||||||
}
|
|
||||||
|
|
||||||
// RespondsWith adds a status code response to the operation.
|
|
||||||
// When the code is 0 the value of the response will be used as default response value.
|
|
||||||
// When the value of the response is nil it will be removed from the operation
|
|
||||||
func (o *Operation) RespondsWith(code int, response *Response) *Operation {
|
|
||||||
if o.Responses == nil {
|
|
||||||
o.Responses = new(Responses)
|
|
||||||
}
|
|
||||||
if code == 0 {
|
|
||||||
o.Responses.Default = response
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
if response == nil {
|
|
||||||
delete(o.Responses.StatusCodeResponses, code)
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
if o.Responses.StatusCodeResponses == nil {
|
|
||||||
o.Responses.StatusCodeResponses = make(map[int]Response)
|
|
||||||
}
|
|
||||||
o.Responses.StatusCodeResponses[code] = *response
|
|
||||||
return o
|
|
||||||
}
|
|
||||||
|
|
||||||
type opsAlias OperationProps
|
|
||||||
|
|
||||||
type gobAlias struct {
|
|
||||||
Security []map[string]struct {
|
|
||||||
List []string
|
|
||||||
Pad bool
|
|
||||||
}
|
|
||||||
Alias *opsAlias
|
|
||||||
SecurityIsEmpty bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// GobEncode provides a safe gob encoder for Operation, including empty security requirements
|
|
||||||
func (o Operation) GobEncode() ([]byte, error) {
|
|
||||||
raw := struct {
|
|
||||||
Ext VendorExtensible
|
|
||||||
Props OperationProps
|
|
||||||
}{
|
|
||||||
Ext: o.VendorExtensible,
|
|
||||||
Props: o.OperationProps,
|
|
||||||
}
|
|
||||||
var b bytes.Buffer
|
|
||||||
err := gob.NewEncoder(&b).Encode(raw)
|
|
||||||
return b.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// GobDecode provides a safe gob decoder for Operation, including empty security requirements
|
|
||||||
func (o *Operation) GobDecode(b []byte) error {
|
|
||||||
var raw struct {
|
|
||||||
Ext VendorExtensible
|
|
||||||
Props OperationProps
|
|
||||||
}
|
|
||||||
|
|
||||||
buf := bytes.NewBuffer(b)
|
|
||||||
err := gob.NewDecoder(buf).Decode(&raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
o.VendorExtensible = raw.Ext
|
|
||||||
o.OperationProps = raw.Props
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GobEncode provides a safe gob encoder for Operation, including empty security requirements
|
|
||||||
func (op OperationProps) GobEncode() ([]byte, error) {
|
|
||||||
raw := gobAlias{
|
|
||||||
Alias: (*opsAlias)(&op),
|
|
||||||
}
|
|
||||||
|
|
||||||
var b bytes.Buffer
|
|
||||||
if op.Security == nil {
|
|
||||||
// nil security requirement
|
|
||||||
err := gob.NewEncoder(&b).Encode(raw)
|
|
||||||
return b.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(op.Security) == 0 {
|
|
||||||
// empty, but non-nil security requirement
|
|
||||||
raw.SecurityIsEmpty = true
|
|
||||||
raw.Alias.Security = nil
|
|
||||||
err := gob.NewEncoder(&b).Encode(raw)
|
|
||||||
return b.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
raw.Security = make([]map[string]struct {
|
|
||||||
List []string
|
|
||||||
Pad bool
|
|
||||||
}, 0, len(op.Security))
|
|
||||||
for _, req := range op.Security {
|
|
||||||
v := make(map[string]struct {
|
|
||||||
List []string
|
|
||||||
Pad bool
|
|
||||||
}, len(req))
|
|
||||||
for k, val := range req {
|
|
||||||
v[k] = struct {
|
|
||||||
List []string
|
|
||||||
Pad bool
|
|
||||||
}{
|
|
||||||
List: val,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
raw.Security = append(raw.Security, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
err := gob.NewEncoder(&b).Encode(raw)
|
|
||||||
return b.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// GobDecode provides a safe gob decoder for Operation, including empty security requirements
|
|
||||||
func (op *OperationProps) GobDecode(b []byte) error {
|
|
||||||
var raw gobAlias
|
|
||||||
|
|
||||||
buf := bytes.NewBuffer(b)
|
|
||||||
err := gob.NewDecoder(buf).Decode(&raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if raw.Alias == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
switch {
|
|
||||||
case raw.SecurityIsEmpty:
|
|
||||||
// empty, but non-nil security requirement
|
|
||||||
raw.Alias.Security = []map[string][]string{}
|
|
||||||
case len(raw.Alias.Security) == 0:
|
|
||||||
// nil security requirement
|
|
||||||
raw.Alias.Security = nil
|
|
||||||
default:
|
|
||||||
raw.Alias.Security = make([]map[string][]string, 0, len(raw.Security))
|
|
||||||
for _, req := range raw.Security {
|
|
||||||
v := make(map[string][]string, len(req))
|
|
||||||
for k, val := range req {
|
|
||||||
v[k] = make([]string, 0, len(val.List))
|
|
||||||
v[k] = append(v[k], val.List...)
|
|
||||||
}
|
|
||||||
raw.Alias.Security = append(raw.Alias.Security, v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
*op = *(*OperationProps)(raw.Alias)
|
|
||||||
return nil
|
|
||||||
}
|
|
321
vendor/github.com/go-openapi/spec/parameter.go
generated
vendored
321
vendor/github.com/go-openapi/spec/parameter.go
generated
vendored
@ -1,321 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// QueryParam creates a query parameter
|
|
||||||
func QueryParam(name string) *Parameter {
|
|
||||||
return &Parameter{ParamProps: ParamProps{Name: name, In: "query"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// HeaderParam creates a header parameter, this is always required by default
|
|
||||||
func HeaderParam(name string) *Parameter {
|
|
||||||
return &Parameter{ParamProps: ParamProps{Name: name, In: "header", Required: true}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// PathParam creates a path parameter, this is always required
|
|
||||||
func PathParam(name string) *Parameter {
|
|
||||||
return &Parameter{ParamProps: ParamProps{Name: name, In: "path", Required: true}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// BodyParam creates a body parameter
|
|
||||||
func BodyParam(name string, schema *Schema) *Parameter {
|
|
||||||
return &Parameter{ParamProps: ParamProps{Name: name, In: "body", Schema: schema},
|
|
||||||
SimpleSchema: SimpleSchema{Type: "object"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// FormDataParam creates a body parameter
|
|
||||||
func FormDataParam(name string) *Parameter {
|
|
||||||
return &Parameter{ParamProps: ParamProps{Name: name, In: "formData"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// FileParam creates a body parameter
|
|
||||||
func FileParam(name string) *Parameter {
|
|
||||||
return &Parameter{ParamProps: ParamProps{Name: name, In: "formData"},
|
|
||||||
SimpleSchema: SimpleSchema{Type: "file"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// SimpleArrayParam creates a param for a simple array (string, int, date etc)
|
|
||||||
func SimpleArrayParam(name, tpe, fmt string) *Parameter {
|
|
||||||
return &Parameter{ParamProps: ParamProps{Name: name},
|
|
||||||
SimpleSchema: SimpleSchema{Type: jsonArray, CollectionFormat: "csv",
|
|
||||||
Items: &Items{SimpleSchema: SimpleSchema{Type: "string", Format: fmt}}}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ParamRef creates a parameter that's a json reference
|
|
||||||
func ParamRef(uri string) *Parameter {
|
|
||||||
p := new(Parameter)
|
|
||||||
p.Ref = MustCreateRef(uri)
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// ParamProps describes the specific attributes of an operation parameter
|
|
||||||
//
|
|
||||||
// NOTE:
|
|
||||||
// - Schema is defined when "in" == "body": see validate
|
|
||||||
// - AllowEmptyValue is allowed where "in" == "query" || "formData"
|
|
||||||
type ParamProps struct {
|
|
||||||
Description string `json:"description,omitempty"`
|
|
||||||
Name string `json:"name,omitempty"`
|
|
||||||
In string `json:"in,omitempty"`
|
|
||||||
Required bool `json:"required,omitempty"`
|
|
||||||
Schema *Schema `json:"schema,omitempty"`
|
|
||||||
AllowEmptyValue bool `json:"allowEmptyValue,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Parameter a unique parameter is defined by a combination of a [name](#parameterName) and [location](#parameterIn).
|
|
||||||
//
|
|
||||||
// There are five possible parameter types.
|
|
||||||
// * Path - Used together with [Path Templating](#pathTemplating), where the parameter value is actually part
|
|
||||||
// of the operation's URL. This does not include the host or base path of the API. For example, in `/items/{itemId}`,
|
|
||||||
// the path parameter is `itemId`.
|
|
||||||
// * Query - Parameters that are appended to the URL. For example, in `/items?id=###`, the query parameter is `id`.
|
|
||||||
// * Header - Custom headers that are expected as part of the request.
|
|
||||||
// * Body - The payload that's appended to the HTTP request. Since there can only be one payload, there can only be
|
|
||||||
// _one_ body parameter. The name of the body parameter has no effect on the parameter itself and is used for
|
|
||||||
// documentation purposes only. Since Form parameters are also in the payload, body and form parameters cannot exist
|
|
||||||
// together for the same operation.
|
|
||||||
// * Form - Used to describe the payload of an HTTP request when either `application/x-www-form-urlencoded` or
|
|
||||||
// `multipart/form-data` are used as the content type of the request (in Swagger's definition,
|
|
||||||
// the [`consumes`](#operationConsumes) property of an operation). This is the only parameter type that can be used
|
|
||||||
// to send files, thus supporting the `file` type. Since form parameters are sent in the payload, they cannot be
|
|
||||||
// declared together with a body parameter for the same operation. Form parameters have a different format based on
|
|
||||||
// the content-type used (for further details, consult http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4).
|
|
||||||
// * `application/x-www-form-urlencoded` - Similar to the format of Query parameters but as a payload.
|
|
||||||
// For example, `foo=1&bar=swagger` - both `foo` and `bar` are form parameters. This is normally used for simple
|
|
||||||
// parameters that are being transferred.
|
|
||||||
// * `multipart/form-data` - each parameter takes a section in the payload with an internal header.
|
|
||||||
// For example, for the header `Content-Disposition: form-data; name="submit-name"` the name of the parameter is
|
|
||||||
// `submit-name`. This type of form parameters is more commonly used for file transfers.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#parameterObject
|
|
||||||
type Parameter struct {
|
|
||||||
Refable
|
|
||||||
CommonValidations
|
|
||||||
SimpleSchema
|
|
||||||
VendorExtensible
|
|
||||||
ParamProps
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup look up a value by the json property name
|
|
||||||
func (p Parameter) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if ex, ok := p.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
if token == jsonRef {
|
|
||||||
return &p.Ref, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
r, _, err := jsonpointer.GetForToken(p.CommonValidations, token)
|
|
||||||
if err != nil && !strings.HasPrefix(err.Error(), "object has no field") {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if r != nil {
|
|
||||||
return r, nil
|
|
||||||
}
|
|
||||||
r, _, err = jsonpointer.GetForToken(p.SimpleSchema, token)
|
|
||||||
if err != nil && !strings.HasPrefix(err.Error(), "object has no field") {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if r != nil {
|
|
||||||
return r, nil
|
|
||||||
}
|
|
||||||
r, _, err = jsonpointer.GetForToken(p.ParamProps, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDescription a fluent builder method for the description of the parameter
|
|
||||||
func (p *Parameter) WithDescription(description string) *Parameter {
|
|
||||||
p.Description = description
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// Named a fluent builder method to override the name of the parameter
|
|
||||||
func (p *Parameter) Named(name string) *Parameter {
|
|
||||||
p.Name = name
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithLocation a fluent builder method to override the location of the parameter
|
|
||||||
func (p *Parameter) WithLocation(in string) *Parameter {
|
|
||||||
p.In = in
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// Typed a fluent builder method for the type of the parameter value
|
|
||||||
func (p *Parameter) Typed(tpe, format string) *Parameter {
|
|
||||||
p.Type = tpe
|
|
||||||
p.Format = format
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// CollectionOf a fluent builder method for an array parameter
|
|
||||||
func (p *Parameter) CollectionOf(items *Items, format string) *Parameter {
|
|
||||||
p.Type = jsonArray
|
|
||||||
p.Items = items
|
|
||||||
p.CollectionFormat = format
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDefault sets the default value on this parameter
|
|
||||||
func (p *Parameter) WithDefault(defaultValue interface{}) *Parameter {
|
|
||||||
p.AsOptional() // with default implies optional
|
|
||||||
p.Default = defaultValue
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// AllowsEmptyValues flags this parameter as being ok with empty values
|
|
||||||
func (p *Parameter) AllowsEmptyValues() *Parameter {
|
|
||||||
p.AllowEmptyValue = true
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// NoEmptyValues flags this parameter as not liking empty values
|
|
||||||
func (p *Parameter) NoEmptyValues() *Parameter {
|
|
||||||
p.AllowEmptyValue = false
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsOptional flags this parameter as optional
|
|
||||||
func (p *Parameter) AsOptional() *Parameter {
|
|
||||||
p.Required = false
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsRequired flags this parameter as required
|
|
||||||
func (p *Parameter) AsRequired() *Parameter {
|
|
||||||
if p.Default != nil { // with a default required makes no sense
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
p.Required = true
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaxLength sets a max length value
|
|
||||||
func (p *Parameter) WithMaxLength(max int64) *Parameter {
|
|
||||||
p.MaxLength = &max
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinLength sets a min length value
|
|
||||||
func (p *Parameter) WithMinLength(min int64) *Parameter {
|
|
||||||
p.MinLength = &min
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithPattern sets a pattern value
|
|
||||||
func (p *Parameter) WithPattern(pattern string) *Parameter {
|
|
||||||
p.Pattern = pattern
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMultipleOf sets a multiple of value
|
|
||||||
func (p *Parameter) WithMultipleOf(number float64) *Parameter {
|
|
||||||
p.MultipleOf = &number
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaximum sets a maximum number value
|
|
||||||
func (p *Parameter) WithMaximum(max float64, exclusive bool) *Parameter {
|
|
||||||
p.Maximum = &max
|
|
||||||
p.ExclusiveMaximum = exclusive
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinimum sets a minimum number value
|
|
||||||
func (p *Parameter) WithMinimum(min float64, exclusive bool) *Parameter {
|
|
||||||
p.Minimum = &min
|
|
||||||
p.ExclusiveMinimum = exclusive
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithEnum sets a the enum values (replace)
|
|
||||||
func (p *Parameter) WithEnum(values ...interface{}) *Parameter {
|
|
||||||
p.Enum = append([]interface{}{}, values...)
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaxItems sets the max items
|
|
||||||
func (p *Parameter) WithMaxItems(size int64) *Parameter {
|
|
||||||
p.MaxItems = &size
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinItems sets the min items
|
|
||||||
func (p *Parameter) WithMinItems(size int64) *Parameter {
|
|
||||||
p.MinItems = &size
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// UniqueValues dictates that this array can only have unique items
|
|
||||||
func (p *Parameter) UniqueValues() *Parameter {
|
|
||||||
p.UniqueItems = true
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// AllowDuplicates this array can have duplicates
|
|
||||||
func (p *Parameter) AllowDuplicates() *Parameter {
|
|
||||||
p.UniqueItems = false
|
|
||||||
return p
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON hydrates this items instance with the data from JSON
|
|
||||||
func (p *Parameter) UnmarshalJSON(data []byte) error {
|
|
||||||
if err := json.Unmarshal(data, &p.CommonValidations); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := json.Unmarshal(data, &p.Refable); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := json.Unmarshal(data, &p.SimpleSchema); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := json.Unmarshal(data, &p.VendorExtensible); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return json.Unmarshal(data, &p.ParamProps)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON converts this items object to JSON
|
|
||||||
func (p Parameter) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(p.CommonValidations)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(p.SimpleSchema)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b3, err := json.Marshal(p.Refable)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b4, err := json.Marshal(p.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b5, err := json.Marshal(p.ParamProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return swag.ConcatJSON(b3, b1, b2, b4, b5), nil
|
|
||||||
}
|
|
87
vendor/github.com/go-openapi/spec/path_item.go
generated
vendored
87
vendor/github.com/go-openapi/spec/path_item.go
generated
vendored
@ -1,87 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// PathItemProps the path item specific properties
|
|
||||||
type PathItemProps struct {
|
|
||||||
Get *Operation `json:"get,omitempty"`
|
|
||||||
Put *Operation `json:"put,omitempty"`
|
|
||||||
Post *Operation `json:"post,omitempty"`
|
|
||||||
Delete *Operation `json:"delete,omitempty"`
|
|
||||||
Options *Operation `json:"options,omitempty"`
|
|
||||||
Head *Operation `json:"head,omitempty"`
|
|
||||||
Patch *Operation `json:"patch,omitempty"`
|
|
||||||
Parameters []Parameter `json:"parameters,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// PathItem describes the operations available on a single path.
|
|
||||||
// A Path Item may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).
|
|
||||||
// The path itself is still exposed to the documentation viewer but they will
|
|
||||||
// not know which operations and parameters are available.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#pathItemObject
|
|
||||||
type PathItem struct {
|
|
||||||
Refable
|
|
||||||
VendorExtensible
|
|
||||||
PathItemProps
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup look up a value by the json property name
|
|
||||||
func (p PathItem) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if ex, ok := p.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
if token == jsonRef {
|
|
||||||
return &p.Ref, nil
|
|
||||||
}
|
|
||||||
r, _, err := jsonpointer.GetForToken(p.PathItemProps, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON hydrates this items instance with the data from JSON
|
|
||||||
func (p *PathItem) UnmarshalJSON(data []byte) error {
|
|
||||||
if err := json.Unmarshal(data, &p.Refable); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := json.Unmarshal(data, &p.VendorExtensible); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return json.Unmarshal(data, &p.PathItemProps)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON converts this items object to JSON
|
|
||||||
func (p PathItem) MarshalJSON() ([]byte, error) {
|
|
||||||
b3, err := json.Marshal(p.Refable)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b4, err := json.Marshal(p.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b5, err := json.Marshal(p.PathItemProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
concated := swag.ConcatJSON(b3, b4, b5)
|
|
||||||
return concated, nil
|
|
||||||
}
|
|
97
vendor/github.com/go-openapi/spec/paths.go
generated
vendored
97
vendor/github.com/go-openapi/spec/paths.go
generated
vendored
@ -1,97 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Paths holds the relative paths to the individual endpoints.
|
|
||||||
// The path is appended to the [`basePath`](http://goo.gl/8us55a#swaggerBasePath) in order
|
|
||||||
// to construct the full URL.
|
|
||||||
// The Paths may be empty, due to [ACL constraints](http://goo.gl/8us55a#securityFiltering).
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#pathsObject
|
|
||||||
type Paths struct {
|
|
||||||
VendorExtensible
|
|
||||||
Paths map[string]PathItem `json:"-"` // custom serializer to flatten this, each entry must start with "/"
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup look up a value by the json property name
|
|
||||||
func (p Paths) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if pi, ok := p.Paths[token]; ok {
|
|
||||||
return &pi, nil
|
|
||||||
}
|
|
||||||
if ex, ok := p.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
return nil, fmt.Errorf("object has no field %q", token)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON hydrates this items instance with the data from JSON
|
|
||||||
func (p *Paths) UnmarshalJSON(data []byte) error {
|
|
||||||
var res map[string]json.RawMessage
|
|
||||||
if err := json.Unmarshal(data, &res); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for k, v := range res {
|
|
||||||
if strings.HasPrefix(strings.ToLower(k), "x-") {
|
|
||||||
if p.Extensions == nil {
|
|
||||||
p.Extensions = make(map[string]interface{})
|
|
||||||
}
|
|
||||||
var d interface{}
|
|
||||||
if err := json.Unmarshal(v, &d); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
p.Extensions[k] = d
|
|
||||||
}
|
|
||||||
if strings.HasPrefix(k, "/") {
|
|
||||||
if p.Paths == nil {
|
|
||||||
p.Paths = make(map[string]PathItem)
|
|
||||||
}
|
|
||||||
var pi PathItem
|
|
||||||
if err := json.Unmarshal(v, &pi); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
p.Paths[k] = pi
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON converts this items object to JSON
|
|
||||||
func (p Paths) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(p.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
pths := make(map[string]PathItem)
|
|
||||||
for k, v := range p.Paths {
|
|
||||||
if strings.HasPrefix(k, "/") {
|
|
||||||
pths[k] = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(pths)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
concated := swag.ConcatJSON(b1, b2)
|
|
||||||
return concated, nil
|
|
||||||
}
|
|
193
vendor/github.com/go-openapi/spec/ref.go
generated
vendored
193
vendor/github.com/go-openapi/spec/ref.go
generated
vendored
@ -1,193 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"encoding/gob"
|
|
||||||
"encoding/json"
|
|
||||||
"net/http"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonreference"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Refable is a struct for things that accept a $ref property
|
|
||||||
type Refable struct {
|
|
||||||
Ref Ref
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON marshals the ref to json
|
|
||||||
func (r Refable) MarshalJSON() ([]byte, error) {
|
|
||||||
return r.Ref.MarshalJSON()
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON unmarshalss the ref from json
|
|
||||||
func (r *Refable) UnmarshalJSON(d []byte) error {
|
|
||||||
return json.Unmarshal(d, &r.Ref)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ref represents a json reference that is potentially resolved
|
|
||||||
type Ref struct {
|
|
||||||
jsonreference.Ref
|
|
||||||
}
|
|
||||||
|
|
||||||
// RemoteURI gets the remote uri part of the ref
|
|
||||||
func (r *Ref) RemoteURI() string {
|
|
||||||
if r.String() == "" {
|
|
||||||
return r.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
u := *r.GetURL()
|
|
||||||
u.Fragment = ""
|
|
||||||
return u.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
// IsValidURI returns true when the url the ref points to can be found
|
|
||||||
func (r *Ref) IsValidURI(basepaths ...string) bool {
|
|
||||||
if r.String() == "" {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
v := r.RemoteURI()
|
|
||||||
if v == "" {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
if r.HasFullURL {
|
|
||||||
//#nosec
|
|
||||||
rr, err := http.Get(v)
|
|
||||||
if err != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
defer rr.Body.Close()
|
|
||||||
|
|
||||||
return rr.StatusCode/100 == 2
|
|
||||||
}
|
|
||||||
|
|
||||||
if !(r.HasFileScheme || r.HasFullFilePath || r.HasURLPathOnly) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
// check for local file
|
|
||||||
pth := v
|
|
||||||
if r.HasURLPathOnly {
|
|
||||||
base := "."
|
|
||||||
if len(basepaths) > 0 {
|
|
||||||
base = filepath.Dir(filepath.Join(basepaths...))
|
|
||||||
}
|
|
||||||
p, e := filepath.Abs(filepath.ToSlash(filepath.Join(base, pth)))
|
|
||||||
if e != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
pth = p
|
|
||||||
}
|
|
||||||
|
|
||||||
fi, err := os.Stat(filepath.ToSlash(pth))
|
|
||||||
if err != nil {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return !fi.IsDir()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Inherits creates a new reference from a parent and a child
|
|
||||||
// If the child cannot inherit from the parent, an error is returned
|
|
||||||
func (r *Ref) Inherits(child Ref) (*Ref, error) {
|
|
||||||
ref, err := r.Ref.Inherits(child.Ref)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &Ref{Ref: *ref}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewRef creates a new instance of a ref object
|
|
||||||
// returns an error when the reference uri is an invalid uri
|
|
||||||
func NewRef(refURI string) (Ref, error) {
|
|
||||||
ref, err := jsonreference.New(refURI)
|
|
||||||
if err != nil {
|
|
||||||
return Ref{}, err
|
|
||||||
}
|
|
||||||
return Ref{Ref: ref}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// MustCreateRef creates a ref object but panics when refURI is invalid.
|
|
||||||
// Use the NewRef method for a version that returns an error.
|
|
||||||
func MustCreateRef(refURI string) Ref {
|
|
||||||
return Ref{Ref: jsonreference.MustCreateRef(refURI)}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON marshals this ref into a JSON object
|
|
||||||
func (r Ref) MarshalJSON() ([]byte, error) {
|
|
||||||
str := r.String()
|
|
||||||
if str == "" {
|
|
||||||
if r.IsRoot() {
|
|
||||||
return []byte(`{"$ref":""}`), nil
|
|
||||||
}
|
|
||||||
return []byte("{}"), nil
|
|
||||||
}
|
|
||||||
v := map[string]interface{}{"$ref": str}
|
|
||||||
return json.Marshal(v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON unmarshals this ref from a JSON object
|
|
||||||
func (r *Ref) UnmarshalJSON(d []byte) error {
|
|
||||||
var v map[string]interface{}
|
|
||||||
if err := json.Unmarshal(d, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return r.fromMap(v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// GobEncode provides a safe gob encoder for Ref
|
|
||||||
func (r Ref) GobEncode() ([]byte, error) {
|
|
||||||
var b bytes.Buffer
|
|
||||||
raw, err := r.MarshalJSON()
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
err = gob.NewEncoder(&b).Encode(raw)
|
|
||||||
return b.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// GobDecode provides a safe gob decoder for Ref
|
|
||||||
func (r *Ref) GobDecode(b []byte) error {
|
|
||||||
var raw []byte
|
|
||||||
buf := bytes.NewBuffer(b)
|
|
||||||
err := gob.NewDecoder(buf).Decode(&raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return json.Unmarshal(raw, r)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Ref) fromMap(v map[string]interface{}) error {
|
|
||||||
if v == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if vv, ok := v["$ref"]; ok {
|
|
||||||
if str, ok := vv.(string); ok {
|
|
||||||
ref, err := jsonreference.New(str)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*r = Ref{Ref: ref}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
131
vendor/github.com/go-openapi/spec/response.go
generated
vendored
131
vendor/github.com/go-openapi/spec/response.go
generated
vendored
@ -1,131 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ResponseProps properties specific to a response
|
|
||||||
type ResponseProps struct {
|
|
||||||
Description string `json:"description,omitempty"`
|
|
||||||
Schema *Schema `json:"schema,omitempty"`
|
|
||||||
Headers map[string]Header `json:"headers,omitempty"`
|
|
||||||
Examples map[string]interface{} `json:"examples,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Response describes a single response from an API Operation.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#responseObject
|
|
||||||
type Response struct {
|
|
||||||
Refable
|
|
||||||
ResponseProps
|
|
||||||
VendorExtensible
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup look up a value by the json property name
|
|
||||||
func (r Response) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if ex, ok := r.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
if token == "$ref" {
|
|
||||||
return &r.Ref, nil
|
|
||||||
}
|
|
||||||
ptr, _, err := jsonpointer.GetForToken(r.ResponseProps, token)
|
|
||||||
return ptr, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON hydrates this items instance with the data from JSON
|
|
||||||
func (r *Response) UnmarshalJSON(data []byte) error {
|
|
||||||
if err := json.Unmarshal(data, &r.ResponseProps); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := json.Unmarshal(data, &r.Refable); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return json.Unmarshal(data, &r.VendorExtensible)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON converts this items object to JSON
|
|
||||||
func (r Response) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(r.ResponseProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(r.Refable)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b3, err := json.Marshal(r.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return swag.ConcatJSON(b1, b2, b3), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewResponse creates a new response instance
|
|
||||||
func NewResponse() *Response {
|
|
||||||
return new(Response)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponseRef creates a response as a json reference
|
|
||||||
func ResponseRef(url string) *Response {
|
|
||||||
resp := NewResponse()
|
|
||||||
resp.Ref = MustCreateRef(url)
|
|
||||||
return resp
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDescription sets the description on this response, allows for chaining
|
|
||||||
func (r *Response) WithDescription(description string) *Response {
|
|
||||||
r.Description = description
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithSchema sets the schema on this response, allows for chaining.
|
|
||||||
// Passing a nil argument removes the schema from this response
|
|
||||||
func (r *Response) WithSchema(schema *Schema) *Response {
|
|
||||||
r.Schema = schema
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddHeader adds a header to this response
|
|
||||||
func (r *Response) AddHeader(name string, header *Header) *Response {
|
|
||||||
if header == nil {
|
|
||||||
return r.RemoveHeader(name)
|
|
||||||
}
|
|
||||||
if r.Headers == nil {
|
|
||||||
r.Headers = make(map[string]Header)
|
|
||||||
}
|
|
||||||
r.Headers[name] = *header
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
// RemoveHeader removes a header from this response
|
|
||||||
func (r *Response) RemoveHeader(name string) *Response {
|
|
||||||
delete(r.Headers, name)
|
|
||||||
return r
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddExample adds an example to this response
|
|
||||||
func (r *Response) AddExample(mediaType string, example interface{}) *Response {
|
|
||||||
if r.Examples == nil {
|
|
||||||
r.Examples = make(map[string]interface{})
|
|
||||||
}
|
|
||||||
r.Examples[mediaType] = example
|
|
||||||
return r
|
|
||||||
}
|
|
127
vendor/github.com/go-openapi/spec/responses.go
generated
vendored
127
vendor/github.com/go-openapi/spec/responses.go
generated
vendored
@ -1,127 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"reflect"
|
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Responses is a container for the expected responses of an operation.
|
|
||||||
// The container maps a HTTP response code to the expected response.
|
|
||||||
// It is not expected from the documentation to necessarily cover all possible HTTP response codes,
|
|
||||||
// since they may not be known in advance. However, it is expected from the documentation to cover
|
|
||||||
// a successful operation response and any known errors.
|
|
||||||
//
|
|
||||||
// The `default` can be used a default response object for all HTTP codes that are not covered
|
|
||||||
// individually by the specification.
|
|
||||||
//
|
|
||||||
// The `Responses Object` MUST contain at least one response code, and it SHOULD be the response
|
|
||||||
// for a successful operation call.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#responsesObject
|
|
||||||
type Responses struct {
|
|
||||||
VendorExtensible
|
|
||||||
ResponsesProps
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup implements an interface to customize json pointer lookup
|
|
||||||
func (r Responses) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if token == "default" {
|
|
||||||
return r.Default, nil
|
|
||||||
}
|
|
||||||
if ex, ok := r.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
if i, err := strconv.Atoi(token); err == nil {
|
|
||||||
if scr, ok := r.StatusCodeResponses[i]; ok {
|
|
||||||
return scr, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil, fmt.Errorf("object has no field %q", token)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON hydrates this items instance with the data from JSON
|
|
||||||
func (r *Responses) UnmarshalJSON(data []byte) error {
|
|
||||||
if err := json.Unmarshal(data, &r.ResponsesProps); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := json.Unmarshal(data, &r.VendorExtensible); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if reflect.DeepEqual(ResponsesProps{}, r.ResponsesProps) {
|
|
||||||
r.ResponsesProps = ResponsesProps{}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON converts this items object to JSON
|
|
||||||
func (r Responses) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(r.ResponsesProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(r.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
concated := swag.ConcatJSON(b1, b2)
|
|
||||||
return concated, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// ResponsesProps describes all responses for an operation.
|
|
||||||
// It tells what is the default response and maps all responses with a
|
|
||||||
// HTTP status code.
|
|
||||||
type ResponsesProps struct {
|
|
||||||
Default *Response
|
|
||||||
StatusCodeResponses map[int]Response
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON marshals responses as JSON
|
|
||||||
func (r ResponsesProps) MarshalJSON() ([]byte, error) {
|
|
||||||
toser := map[string]Response{}
|
|
||||||
if r.Default != nil {
|
|
||||||
toser["default"] = *r.Default
|
|
||||||
}
|
|
||||||
for k, v := range r.StatusCodeResponses {
|
|
||||||
toser[strconv.Itoa(k)] = v
|
|
||||||
}
|
|
||||||
return json.Marshal(toser)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON unmarshals responses from JSON
|
|
||||||
func (r *ResponsesProps) UnmarshalJSON(data []byte) error {
|
|
||||||
var res map[string]Response
|
|
||||||
if err := json.Unmarshal(data, &res); err != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if v, ok := res["default"]; ok {
|
|
||||||
r.Default = &v
|
|
||||||
delete(res, "default")
|
|
||||||
}
|
|
||||||
for k, v := range res {
|
|
||||||
if nk, err := strconv.Atoi(k); err == nil {
|
|
||||||
if r.StatusCodeResponses == nil {
|
|
||||||
r.StatusCodeResponses = map[int]Response{}
|
|
||||||
}
|
|
||||||
r.StatusCodeResponses[nk] = v
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
596
vendor/github.com/go-openapi/spec/schema.go
generated
vendored
596
vendor/github.com/go-openapi/spec/schema.go
generated
vendored
@ -1,596 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"net/url"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// BooleanProperty creates a boolean property
|
|
||||||
func BooleanProperty() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"boolean"}}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// BoolProperty creates a boolean property
|
|
||||||
func BoolProperty() *Schema { return BooleanProperty() }
|
|
||||||
|
|
||||||
// StringProperty creates a string property
|
|
||||||
func StringProperty() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"string"}}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// CharProperty creates a string property
|
|
||||||
func CharProperty() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"string"}}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Float64Property creates a float64/double property
|
|
||||||
func Float64Property() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"number"}, Format: "double"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Float32Property creates a float32/float property
|
|
||||||
func Float32Property() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"number"}, Format: "float"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Int8Property creates an int8 property
|
|
||||||
func Int8Property() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"integer"}, Format: "int8"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Int16Property creates an int16 property
|
|
||||||
func Int16Property() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"integer"}, Format: "int16"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Int32Property creates an int32 property
|
|
||||||
func Int32Property() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"integer"}, Format: "int32"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Int64Property creates an int64 property
|
|
||||||
func Int64Property() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"integer"}, Format: "int64"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// StrFmtProperty creates a property for the named string format
|
|
||||||
func StrFmtProperty(format string) *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"string"}, Format: format}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// DateProperty creates a date property
|
|
||||||
func DateProperty() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"string"}, Format: "date"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// DateTimeProperty creates a date time property
|
|
||||||
func DateTimeProperty() *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"string"}, Format: "date-time"}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MapProperty creates a map property
|
|
||||||
func MapProperty(property *Schema) *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"object"},
|
|
||||||
AdditionalProperties: &SchemaOrBool{Allows: true, Schema: property}}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RefProperty creates a ref property
|
|
||||||
func RefProperty(name string) *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Ref: MustCreateRef(name)}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// RefSchema creates a ref property
|
|
||||||
func RefSchema(name string) *Schema {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Ref: MustCreateRef(name)}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ArrayProperty creates an array property
|
|
||||||
func ArrayProperty(items *Schema) *Schema {
|
|
||||||
if items == nil {
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Type: []string{"array"}}}
|
|
||||||
}
|
|
||||||
return &Schema{SchemaProps: SchemaProps{Items: &SchemaOrArray{Schema: items}, Type: []string{"array"}}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ComposedSchema creates a schema with allOf
|
|
||||||
func ComposedSchema(schemas ...Schema) *Schema {
|
|
||||||
s := new(Schema)
|
|
||||||
s.AllOf = schemas
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// SchemaURL represents a schema url
|
|
||||||
type SchemaURL string
|
|
||||||
|
|
||||||
// MarshalJSON marshal this to JSON
|
|
||||||
func (r SchemaURL) MarshalJSON() ([]byte, error) {
|
|
||||||
if r == "" {
|
|
||||||
return []byte("{}"), nil
|
|
||||||
}
|
|
||||||
v := map[string]interface{}{"$schema": string(r)}
|
|
||||||
return json.Marshal(v)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON unmarshal this from JSON
|
|
||||||
func (r *SchemaURL) UnmarshalJSON(data []byte) error {
|
|
||||||
var v map[string]interface{}
|
|
||||||
if err := json.Unmarshal(data, &v); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return r.fromMap(v)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *SchemaURL) fromMap(v map[string]interface{}) error {
|
|
||||||
if v == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
if vv, ok := v["$schema"]; ok {
|
|
||||||
if str, ok := vv.(string); ok {
|
|
||||||
u, err := url.Parse(str)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
*r = SchemaURL(u.String())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// SchemaProps describes a JSON schema (draft 4)
|
|
||||||
type SchemaProps struct {
|
|
||||||
ID string `json:"id,omitempty"`
|
|
||||||
Ref Ref `json:"-"`
|
|
||||||
Schema SchemaURL `json:"-"`
|
|
||||||
Description string `json:"description,omitempty"`
|
|
||||||
Type StringOrArray `json:"type,omitempty"`
|
|
||||||
Nullable bool `json:"nullable,omitempty"`
|
|
||||||
Format string `json:"format,omitempty"`
|
|
||||||
Title string `json:"title,omitempty"`
|
|
||||||
Default interface{} `json:"default,omitempty"`
|
|
||||||
Maximum *float64 `json:"maximum,omitempty"`
|
|
||||||
ExclusiveMaximum bool `json:"exclusiveMaximum,omitempty"`
|
|
||||||
Minimum *float64 `json:"minimum,omitempty"`
|
|
||||||
ExclusiveMinimum bool `json:"exclusiveMinimum,omitempty"`
|
|
||||||
MaxLength *int64 `json:"maxLength,omitempty"`
|
|
||||||
MinLength *int64 `json:"minLength,omitempty"`
|
|
||||||
Pattern string `json:"pattern,omitempty"`
|
|
||||||
MaxItems *int64 `json:"maxItems,omitempty"`
|
|
||||||
MinItems *int64 `json:"minItems,omitempty"`
|
|
||||||
UniqueItems bool `json:"uniqueItems,omitempty"`
|
|
||||||
MultipleOf *float64 `json:"multipleOf,omitempty"`
|
|
||||||
Enum []interface{} `json:"enum,omitempty"`
|
|
||||||
MaxProperties *int64 `json:"maxProperties,omitempty"`
|
|
||||||
MinProperties *int64 `json:"minProperties,omitempty"`
|
|
||||||
Required []string `json:"required,omitempty"`
|
|
||||||
Items *SchemaOrArray `json:"items,omitempty"`
|
|
||||||
AllOf []Schema `json:"allOf,omitempty"`
|
|
||||||
OneOf []Schema `json:"oneOf,omitempty"`
|
|
||||||
AnyOf []Schema `json:"anyOf,omitempty"`
|
|
||||||
Not *Schema `json:"not,omitempty"`
|
|
||||||
Properties map[string]Schema `json:"properties,omitempty"`
|
|
||||||
AdditionalProperties *SchemaOrBool `json:"additionalProperties,omitempty"`
|
|
||||||
PatternProperties map[string]Schema `json:"patternProperties,omitempty"`
|
|
||||||
Dependencies Dependencies `json:"dependencies,omitempty"`
|
|
||||||
AdditionalItems *SchemaOrBool `json:"additionalItems,omitempty"`
|
|
||||||
Definitions Definitions `json:"definitions,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// SwaggerSchemaProps are additional properties supported by swagger schemas, but not JSON-schema (draft 4)
|
|
||||||
type SwaggerSchemaProps struct {
|
|
||||||
Discriminator string `json:"discriminator,omitempty"`
|
|
||||||
ReadOnly bool `json:"readOnly,omitempty"`
|
|
||||||
XML *XMLObject `json:"xml,omitempty"`
|
|
||||||
ExternalDocs *ExternalDocumentation `json:"externalDocs,omitempty"`
|
|
||||||
Example interface{} `json:"example,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Schema the schema object allows the definition of input and output data types.
|
|
||||||
// These types can be objects, but also primitives and arrays.
|
|
||||||
// This object is based on the [JSON Schema Specification Draft 4](http://json-schema.org/)
|
|
||||||
// and uses a predefined subset of it.
|
|
||||||
// On top of this subset, there are extensions provided by this specification to allow for more complete documentation.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#schemaObject
|
|
||||||
type Schema struct {
|
|
||||||
VendorExtensible
|
|
||||||
SchemaProps
|
|
||||||
SwaggerSchemaProps
|
|
||||||
ExtraProps map[string]interface{} `json:"-"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup implements an interface to customize json pointer lookup
|
|
||||||
func (s Schema) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if ex, ok := s.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if ex, ok := s.ExtraProps[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
r, _, err := jsonpointer.GetForToken(s.SchemaProps, token)
|
|
||||||
if r != nil || (err != nil && !strings.HasPrefix(err.Error(), "object has no field")) {
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
r, _, err = jsonpointer.GetForToken(s.SwaggerSchemaProps, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithID sets the id for this schema, allows for chaining
|
|
||||||
func (s *Schema) WithID(id string) *Schema {
|
|
||||||
s.ID = id
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithTitle sets the title for this schema, allows for chaining
|
|
||||||
func (s *Schema) WithTitle(title string) *Schema {
|
|
||||||
s.Title = title
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDescription sets the description for this schema, allows for chaining
|
|
||||||
func (s *Schema) WithDescription(description string) *Schema {
|
|
||||||
s.Description = description
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithProperties sets the properties for this schema
|
|
||||||
func (s *Schema) WithProperties(schemas map[string]Schema) *Schema {
|
|
||||||
s.Properties = schemas
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// SetProperty sets a property on this schema
|
|
||||||
func (s *Schema) SetProperty(name string, schema Schema) *Schema {
|
|
||||||
if s.Properties == nil {
|
|
||||||
s.Properties = make(map[string]Schema)
|
|
||||||
}
|
|
||||||
s.Properties[name] = schema
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithAllOf sets the all of property
|
|
||||||
func (s *Schema) WithAllOf(schemas ...Schema) *Schema {
|
|
||||||
s.AllOf = schemas
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaxProperties sets the max number of properties an object can have
|
|
||||||
func (s *Schema) WithMaxProperties(max int64) *Schema {
|
|
||||||
s.MaxProperties = &max
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinProperties sets the min number of properties an object must have
|
|
||||||
func (s *Schema) WithMinProperties(min int64) *Schema {
|
|
||||||
s.MinProperties = &min
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// Typed sets the type of this schema for a single value item
|
|
||||||
func (s *Schema) Typed(tpe, format string) *Schema {
|
|
||||||
s.Type = []string{tpe}
|
|
||||||
s.Format = format
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddType adds a type with potential format to the types for this schema
|
|
||||||
func (s *Schema) AddType(tpe, format string) *Schema {
|
|
||||||
s.Type = append(s.Type, tpe)
|
|
||||||
if format != "" {
|
|
||||||
s.Format = format
|
|
||||||
}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsNullable flags this schema as nullable.
|
|
||||||
func (s *Schema) AsNullable() *Schema {
|
|
||||||
s.Nullable = true
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// CollectionOf a fluent builder method for an array parameter
|
|
||||||
func (s *Schema) CollectionOf(items Schema) *Schema {
|
|
||||||
s.Type = []string{jsonArray}
|
|
||||||
s.Items = &SchemaOrArray{Schema: &items}
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDefault sets the default value on this parameter
|
|
||||||
func (s *Schema) WithDefault(defaultValue interface{}) *Schema {
|
|
||||||
s.Default = defaultValue
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithRequired flags this parameter as required
|
|
||||||
func (s *Schema) WithRequired(items ...string) *Schema {
|
|
||||||
s.Required = items
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddRequired adds field names to the required properties array
|
|
||||||
func (s *Schema) AddRequired(items ...string) *Schema {
|
|
||||||
s.Required = append(s.Required, items...)
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaxLength sets a max length value
|
|
||||||
func (s *Schema) WithMaxLength(max int64) *Schema {
|
|
||||||
s.MaxLength = &max
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinLength sets a min length value
|
|
||||||
func (s *Schema) WithMinLength(min int64) *Schema {
|
|
||||||
s.MinLength = &min
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithPattern sets a pattern value
|
|
||||||
func (s *Schema) WithPattern(pattern string) *Schema {
|
|
||||||
s.Pattern = pattern
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMultipleOf sets a multiple of value
|
|
||||||
func (s *Schema) WithMultipleOf(number float64) *Schema {
|
|
||||||
s.MultipleOf = &number
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaximum sets a maximum number value
|
|
||||||
func (s *Schema) WithMaximum(max float64, exclusive bool) *Schema {
|
|
||||||
s.Maximum = &max
|
|
||||||
s.ExclusiveMaximum = exclusive
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinimum sets a minimum number value
|
|
||||||
func (s *Schema) WithMinimum(min float64, exclusive bool) *Schema {
|
|
||||||
s.Minimum = &min
|
|
||||||
s.ExclusiveMinimum = exclusive
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithEnum sets a the enum values (replace)
|
|
||||||
func (s *Schema) WithEnum(values ...interface{}) *Schema {
|
|
||||||
s.Enum = append([]interface{}{}, values...)
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMaxItems sets the max items
|
|
||||||
func (s *Schema) WithMaxItems(size int64) *Schema {
|
|
||||||
s.MaxItems = &size
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithMinItems sets the min items
|
|
||||||
func (s *Schema) WithMinItems(size int64) *Schema {
|
|
||||||
s.MinItems = &size
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// UniqueValues dictates that this array can only have unique items
|
|
||||||
func (s *Schema) UniqueValues() *Schema {
|
|
||||||
s.UniqueItems = true
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AllowDuplicates this array can have duplicates
|
|
||||||
func (s *Schema) AllowDuplicates() *Schema {
|
|
||||||
s.UniqueItems = false
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddToAllOf adds a schema to the allOf property
|
|
||||||
func (s *Schema) AddToAllOf(schemas ...Schema) *Schema {
|
|
||||||
s.AllOf = append(s.AllOf, schemas...)
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithDiscriminator sets the name of the discriminator field
|
|
||||||
func (s *Schema) WithDiscriminator(discriminator string) *Schema {
|
|
||||||
s.Discriminator = discriminator
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsReadOnly flags this schema as readonly
|
|
||||||
func (s *Schema) AsReadOnly() *Schema {
|
|
||||||
s.ReadOnly = true
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsWritable flags this schema as writeable (not read-only)
|
|
||||||
func (s *Schema) AsWritable() *Schema {
|
|
||||||
s.ReadOnly = false
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithExample sets the example for this schema
|
|
||||||
func (s *Schema) WithExample(example interface{}) *Schema {
|
|
||||||
s.Example = example
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithExternalDocs sets/removes the external docs for/from this schema.
|
|
||||||
// When you pass empty strings as params the external documents will be removed.
|
|
||||||
// When you pass non-empty string as one value then those values will be used on the external docs object.
|
|
||||||
// So when you pass a non-empty description, you should also pass the url and vice versa.
|
|
||||||
func (s *Schema) WithExternalDocs(description, url string) *Schema {
|
|
||||||
if description == "" && url == "" {
|
|
||||||
s.ExternalDocs = nil
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
if s.ExternalDocs == nil {
|
|
||||||
s.ExternalDocs = &ExternalDocumentation{}
|
|
||||||
}
|
|
||||||
s.ExternalDocs.Description = description
|
|
||||||
s.ExternalDocs.URL = url
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithXMLName sets the xml name for the object
|
|
||||||
func (s *Schema) WithXMLName(name string) *Schema {
|
|
||||||
if s.XML == nil {
|
|
||||||
s.XML = new(XMLObject)
|
|
||||||
}
|
|
||||||
s.XML.Name = name
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithXMLNamespace sets the xml namespace for the object
|
|
||||||
func (s *Schema) WithXMLNamespace(namespace string) *Schema {
|
|
||||||
if s.XML == nil {
|
|
||||||
s.XML = new(XMLObject)
|
|
||||||
}
|
|
||||||
s.XML.Namespace = namespace
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithXMLPrefix sets the xml prefix for the object
|
|
||||||
func (s *Schema) WithXMLPrefix(prefix string) *Schema {
|
|
||||||
if s.XML == nil {
|
|
||||||
s.XML = new(XMLObject)
|
|
||||||
}
|
|
||||||
s.XML.Prefix = prefix
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsXMLAttribute flags this object as xml attribute
|
|
||||||
func (s *Schema) AsXMLAttribute() *Schema {
|
|
||||||
if s.XML == nil {
|
|
||||||
s.XML = new(XMLObject)
|
|
||||||
}
|
|
||||||
s.XML.Attribute = true
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsXMLElement flags this object as an xml node
|
|
||||||
func (s *Schema) AsXMLElement() *Schema {
|
|
||||||
if s.XML == nil {
|
|
||||||
s.XML = new(XMLObject)
|
|
||||||
}
|
|
||||||
s.XML.Attribute = false
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsWrappedXML flags this object as wrapped, this is mostly useful for array types
|
|
||||||
func (s *Schema) AsWrappedXML() *Schema {
|
|
||||||
if s.XML == nil {
|
|
||||||
s.XML = new(XMLObject)
|
|
||||||
}
|
|
||||||
s.XML.Wrapped = true
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsUnwrappedXML flags this object as an xml node
|
|
||||||
func (s *Schema) AsUnwrappedXML() *Schema {
|
|
||||||
if s.XML == nil {
|
|
||||||
s.XML = new(XMLObject)
|
|
||||||
}
|
|
||||||
s.XML.Wrapped = false
|
|
||||||
return s
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON marshal this to JSON
|
|
||||||
func (s Schema) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(s.SchemaProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("schema props %v", err)
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(s.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("vendor props %v", err)
|
|
||||||
}
|
|
||||||
b3, err := s.Ref.MarshalJSON()
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("ref prop %v", err)
|
|
||||||
}
|
|
||||||
b4, err := s.Schema.MarshalJSON()
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("schema prop %v", err)
|
|
||||||
}
|
|
||||||
b5, err := json.Marshal(s.SwaggerSchemaProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("common validations %v", err)
|
|
||||||
}
|
|
||||||
var b6 []byte
|
|
||||||
if s.ExtraProps != nil {
|
|
||||||
jj, err := json.Marshal(s.ExtraProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("extra props %v", err)
|
|
||||||
}
|
|
||||||
b6 = jj
|
|
||||||
}
|
|
||||||
return swag.ConcatJSON(b1, b2, b3, b4, b5, b6), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON marshal this from JSON
|
|
||||||
func (s *Schema) UnmarshalJSON(data []byte) error {
|
|
||||||
props := struct {
|
|
||||||
SchemaProps
|
|
||||||
SwaggerSchemaProps
|
|
||||||
}{}
|
|
||||||
if err := json.Unmarshal(data, &props); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
sch := Schema{
|
|
||||||
SchemaProps: props.SchemaProps,
|
|
||||||
SwaggerSchemaProps: props.SwaggerSchemaProps,
|
|
||||||
}
|
|
||||||
|
|
||||||
var d map[string]interface{}
|
|
||||||
if err := json.Unmarshal(data, &d); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
_ = sch.Ref.fromMap(d)
|
|
||||||
_ = sch.Schema.fromMap(d)
|
|
||||||
|
|
||||||
delete(d, "$ref")
|
|
||||||
delete(d, "$schema")
|
|
||||||
for _, pn := range swag.DefaultJSONNameProvider.GetJSONNames(s) {
|
|
||||||
delete(d, pn)
|
|
||||||
}
|
|
||||||
|
|
||||||
for k, vv := range d {
|
|
||||||
lk := strings.ToLower(k)
|
|
||||||
if strings.HasPrefix(lk, "x-") {
|
|
||||||
if sch.Extensions == nil {
|
|
||||||
sch.Extensions = map[string]interface{}{}
|
|
||||||
}
|
|
||||||
sch.Extensions[k] = vv
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if sch.ExtraProps == nil {
|
|
||||||
sch.ExtraProps = map[string]interface{}{}
|
|
||||||
}
|
|
||||||
sch.ExtraProps[k] = vv
|
|
||||||
}
|
|
||||||
|
|
||||||
*s = sch
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
271
vendor/github.com/go-openapi/spec/schema_loader.go
generated
vendored
271
vendor/github.com/go-openapi/spec/schema_loader.go
generated
vendored
@ -1,271 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"log"
|
|
||||||
"net/url"
|
|
||||||
"reflect"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// PathLoader function to use when loading remote refs
|
|
||||||
var PathLoader func(string) (json.RawMessage, error)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
PathLoader = func(path string) (json.RawMessage, error) {
|
|
||||||
data, err := swag.LoadFromFileOrHTTP(path)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return json.RawMessage(data), nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// resolverContext allows to share a context during spec processing.
|
|
||||||
// At the moment, it just holds the index of circular references found.
|
|
||||||
type resolverContext struct {
|
|
||||||
// circulars holds all visited circular references, which allows shortcuts.
|
|
||||||
// NOTE: this is not just a performance improvement: it is required to figure out
|
|
||||||
// circular references which participate several cycles.
|
|
||||||
// This structure is privately instantiated and needs not be locked against
|
|
||||||
// concurrent access, unless we chose to implement a parallel spec walking.
|
|
||||||
circulars map[string]bool
|
|
||||||
basePath string
|
|
||||||
}
|
|
||||||
|
|
||||||
func newResolverContext(originalBasePath string) *resolverContext {
|
|
||||||
return &resolverContext{
|
|
||||||
circulars: make(map[string]bool),
|
|
||||||
basePath: originalBasePath, // keep the root base path in context
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type schemaLoader struct {
|
|
||||||
root interface{}
|
|
||||||
options *ExpandOptions
|
|
||||||
cache ResolutionCache
|
|
||||||
context *resolverContext
|
|
||||||
loadDoc func(string) (json.RawMessage, error)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *schemaLoader) transitiveResolver(basePath string, ref Ref) (*schemaLoader, error) {
|
|
||||||
if ref.IsRoot() || ref.HasFragmentOnly {
|
|
||||||
return r, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
baseRef, _ := NewRef(basePath)
|
|
||||||
currentRef := normalizeFileRef(&ref, basePath)
|
|
||||||
if strings.HasPrefix(currentRef.String(), baseRef.String()) {
|
|
||||||
return r, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set a new root to resolve against
|
|
||||||
rootURL := currentRef.GetURL()
|
|
||||||
rootURL.Fragment = ""
|
|
||||||
root, _ := r.cache.Get(rootURL.String())
|
|
||||||
|
|
||||||
// shallow copy of resolver options to set a new RelativeBase when
|
|
||||||
// traversing multiple documents
|
|
||||||
newOptions := r.options
|
|
||||||
newOptions.RelativeBase = rootURL.String()
|
|
||||||
debugLog("setting new root: %s", newOptions.RelativeBase)
|
|
||||||
return defaultSchemaLoader(root, newOptions, r.cache, r.context)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *schemaLoader) updateBasePath(transitive *schemaLoader, basePath string) string {
|
|
||||||
if transitive != r {
|
|
||||||
debugLog("got a new resolver")
|
|
||||||
if transitive.options != nil && transitive.options.RelativeBase != "" {
|
|
||||||
basePath, _ = absPath(transitive.options.RelativeBase)
|
|
||||||
debugLog("new basePath = %s", basePath)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return basePath
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *schemaLoader) resolveRef(ref *Ref, target interface{}, basePath string) error {
|
|
||||||
tgt := reflect.ValueOf(target)
|
|
||||||
if tgt.Kind() != reflect.Ptr {
|
|
||||||
return fmt.Errorf("resolve ref: target needs to be a pointer")
|
|
||||||
}
|
|
||||||
|
|
||||||
refURL := ref.GetURL()
|
|
||||||
if refURL == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var res interface{}
|
|
||||||
var data interface{}
|
|
||||||
var err error
|
|
||||||
// Resolve against the root if it isn't nil, and if ref is pointing at the root, or has a fragment only which means
|
|
||||||
// it is pointing somewhere in the root.
|
|
||||||
root := r.root
|
|
||||||
if (ref.IsRoot() || ref.HasFragmentOnly) && root == nil && basePath != "" {
|
|
||||||
if baseRef, erb := NewRef(basePath); erb == nil {
|
|
||||||
root, _, _, _ = r.load(baseRef.GetURL())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ref.IsRoot() || ref.HasFragmentOnly) && root != nil {
|
|
||||||
data = root
|
|
||||||
} else {
|
|
||||||
baseRef := normalizeFileRef(ref, basePath)
|
|
||||||
debugLog("current ref is: %s", ref.String())
|
|
||||||
debugLog("current ref normalized file: %s", baseRef.String())
|
|
||||||
data, _, _, err = r.load(baseRef.GetURL())
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
res = data
|
|
||||||
if ref.String() != "" {
|
|
||||||
res, _, err = ref.GetPointer().Get(data)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return swag.DynamicJSONToStruct(res, target)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *schemaLoader) load(refURL *url.URL) (interface{}, url.URL, bool, error) {
|
|
||||||
debugLog("loading schema from url: %s", refURL)
|
|
||||||
toFetch := *refURL
|
|
||||||
toFetch.Fragment = ""
|
|
||||||
|
|
||||||
normalized := normalizeAbsPath(toFetch.String())
|
|
||||||
|
|
||||||
data, fromCache := r.cache.Get(normalized)
|
|
||||||
if !fromCache {
|
|
||||||
b, err := r.loadDoc(normalized)
|
|
||||||
if err != nil {
|
|
||||||
debugLog("unable to load the document: %v", err)
|
|
||||||
return nil, url.URL{}, false, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := json.Unmarshal(b, &data); err != nil {
|
|
||||||
return nil, url.URL{}, false, err
|
|
||||||
}
|
|
||||||
r.cache.Set(normalized, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
return data, toFetch, fromCache, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// isCircular detects cycles in sequences of $ref.
|
|
||||||
// It relies on a private context (which needs not be locked).
|
|
||||||
func (r *schemaLoader) isCircular(ref *Ref, basePath string, parentRefs ...string) (foundCycle bool) {
|
|
||||||
normalizedRef := normalizePaths(ref.String(), basePath)
|
|
||||||
if _, ok := r.context.circulars[normalizedRef]; ok {
|
|
||||||
// circular $ref has been already detected in another explored cycle
|
|
||||||
foundCycle = true
|
|
||||||
return
|
|
||||||
}
|
|
||||||
foundCycle = swag.ContainsStringsCI(parentRefs, normalizedRef)
|
|
||||||
if foundCycle {
|
|
||||||
r.context.circulars[normalizedRef] = true
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// Resolve resolves a reference against basePath and stores the result in target
|
|
||||||
// Resolve is not in charge of following references, it only resolves ref by following its URL
|
|
||||||
// if the schema that ref is referring to has more refs in it. Resolve doesn't resolve them
|
|
||||||
// if basePath is an empty string, ref is resolved against the root schema stored in the schemaLoader struct
|
|
||||||
func (r *schemaLoader) Resolve(ref *Ref, target interface{}, basePath string) error {
|
|
||||||
return r.resolveRef(ref, target, basePath)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *schemaLoader) deref(input interface{}, parentRefs []string, basePath string) error {
|
|
||||||
var ref *Ref
|
|
||||||
switch refable := input.(type) {
|
|
||||||
case *Schema:
|
|
||||||
ref = &refable.Ref
|
|
||||||
case *Parameter:
|
|
||||||
ref = &refable.Ref
|
|
||||||
case *Response:
|
|
||||||
ref = &refable.Ref
|
|
||||||
case *PathItem:
|
|
||||||
ref = &refable.Ref
|
|
||||||
default:
|
|
||||||
return fmt.Errorf("deref: unsupported type %T", input)
|
|
||||||
}
|
|
||||||
|
|
||||||
curRef := ref.String()
|
|
||||||
if curRef != "" {
|
|
||||||
normalizedRef := normalizeFileRef(ref, basePath)
|
|
||||||
normalizedBasePath := normalizedRef.RemoteURI()
|
|
||||||
|
|
||||||
if r.isCircular(normalizedRef, basePath, parentRefs...) {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if err := r.resolveRef(ref, input, basePath); r.shouldStopOnError(err) {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// NOTE(fredbi): removed basePath check => needs more testing
|
|
||||||
if ref.String() != "" && ref.String() != curRef {
|
|
||||||
parentRefs = append(parentRefs, normalizedRef.String())
|
|
||||||
return r.deref(input, parentRefs, normalizedBasePath)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *schemaLoader) shouldStopOnError(err error) bool {
|
|
||||||
if err != nil && !r.options.ContinueOnError {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
log.Println(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
func defaultSchemaLoader(
|
|
||||||
root interface{},
|
|
||||||
expandOptions *ExpandOptions,
|
|
||||||
cache ResolutionCache,
|
|
||||||
context *resolverContext) (*schemaLoader, error) {
|
|
||||||
|
|
||||||
if cache == nil {
|
|
||||||
cache = resCache
|
|
||||||
}
|
|
||||||
if expandOptions == nil {
|
|
||||||
expandOptions = &ExpandOptions{}
|
|
||||||
}
|
|
||||||
absBase, _ := absPath(expandOptions.RelativeBase)
|
|
||||||
if context == nil {
|
|
||||||
context = newResolverContext(absBase)
|
|
||||||
}
|
|
||||||
return &schemaLoader{
|
|
||||||
root: root,
|
|
||||||
options: expandOptions,
|
|
||||||
cache: cache,
|
|
||||||
context: context,
|
|
||||||
loadDoc: func(path string) (json.RawMessage, error) {
|
|
||||||
debugLog("fetching document at %q", path)
|
|
||||||
return PathLoader(path)
|
|
||||||
},
|
|
||||||
}, nil
|
|
||||||
}
|
|
140
vendor/github.com/go-openapi/spec/security_scheme.go
generated
vendored
140
vendor/github.com/go-openapi/spec/security_scheme.go
generated
vendored
@ -1,140 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
basic = "basic"
|
|
||||||
apiKey = "apiKey"
|
|
||||||
oauth2 = "oauth2"
|
|
||||||
implicit = "implicit"
|
|
||||||
password = "password"
|
|
||||||
application = "application"
|
|
||||||
accessCode = "accessCode"
|
|
||||||
)
|
|
||||||
|
|
||||||
// BasicAuth creates a basic auth security scheme
|
|
||||||
func BasicAuth() *SecurityScheme {
|
|
||||||
return &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{Type: basic}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// APIKeyAuth creates an api key auth security scheme
|
|
||||||
func APIKeyAuth(fieldName, valueSource string) *SecurityScheme {
|
|
||||||
return &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{Type: apiKey, Name: fieldName, In: valueSource}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// OAuth2Implicit creates an implicit flow oauth2 security scheme
|
|
||||||
func OAuth2Implicit(authorizationURL string) *SecurityScheme {
|
|
||||||
return &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{
|
|
||||||
Type: oauth2,
|
|
||||||
Flow: implicit,
|
|
||||||
AuthorizationURL: authorizationURL,
|
|
||||||
}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// OAuth2Password creates a password flow oauth2 security scheme
|
|
||||||
func OAuth2Password(tokenURL string) *SecurityScheme {
|
|
||||||
return &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{
|
|
||||||
Type: oauth2,
|
|
||||||
Flow: password,
|
|
||||||
TokenURL: tokenURL,
|
|
||||||
}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// OAuth2Application creates an application flow oauth2 security scheme
|
|
||||||
func OAuth2Application(tokenURL string) *SecurityScheme {
|
|
||||||
return &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{
|
|
||||||
Type: oauth2,
|
|
||||||
Flow: application,
|
|
||||||
TokenURL: tokenURL,
|
|
||||||
}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// OAuth2AccessToken creates an access token flow oauth2 security scheme
|
|
||||||
func OAuth2AccessToken(authorizationURL, tokenURL string) *SecurityScheme {
|
|
||||||
return &SecurityScheme{SecuritySchemeProps: SecuritySchemeProps{
|
|
||||||
Type: oauth2,
|
|
||||||
Flow: accessCode,
|
|
||||||
AuthorizationURL: authorizationURL,
|
|
||||||
TokenURL: tokenURL,
|
|
||||||
}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// SecuritySchemeProps describes a swagger security scheme in the securityDefinitions section
|
|
||||||
type SecuritySchemeProps struct {
|
|
||||||
Description string `json:"description,omitempty"`
|
|
||||||
Type string `json:"type"`
|
|
||||||
Name string `json:"name,omitempty"` // api key
|
|
||||||
In string `json:"in,omitempty"` // api key
|
|
||||||
Flow string `json:"flow,omitempty"` // oauth2
|
|
||||||
AuthorizationURL string `json:"authorizationUrl,omitempty"` // oauth2
|
|
||||||
TokenURL string `json:"tokenUrl,omitempty"` // oauth2
|
|
||||||
Scopes map[string]string `json:"scopes,omitempty"` // oauth2
|
|
||||||
}
|
|
||||||
|
|
||||||
// AddScope adds a scope to this security scheme
|
|
||||||
func (s *SecuritySchemeProps) AddScope(scope, description string) {
|
|
||||||
if s.Scopes == nil {
|
|
||||||
s.Scopes = make(map[string]string)
|
|
||||||
}
|
|
||||||
s.Scopes[scope] = description
|
|
||||||
}
|
|
||||||
|
|
||||||
// SecurityScheme allows the definition of a security scheme that can be used by the operations.
|
|
||||||
// Supported schemes are basic authentication, an API key (either as a header or as a query parameter)
|
|
||||||
// and OAuth2's common flows (implicit, password, application and access code).
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#securitySchemeObject
|
|
||||||
type SecurityScheme struct {
|
|
||||||
VendorExtensible
|
|
||||||
SecuritySchemeProps
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup implements an interface to customize json pointer lookup
|
|
||||||
func (s SecurityScheme) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if ex, ok := s.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
r, _, err := jsonpointer.GetForToken(s.SecuritySchemeProps, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON marshal this to JSON
|
|
||||||
func (s SecurityScheme) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(s.SecuritySchemeProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(s.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return swag.ConcatJSON(b1, b2), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON marshal this from JSON
|
|
||||||
func (s *SecurityScheme) UnmarshalJSON(data []byte) error {
|
|
||||||
if err := json.Unmarshal(data, &s.SecuritySchemeProps); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return json.Unmarshal(data, &s.VendorExtensible)
|
|
||||||
}
|
|
86
vendor/github.com/go-openapi/spec/spec.go
generated
vendored
86
vendor/github.com/go-openapi/spec/spec.go
generated
vendored
@ -1,86 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import "encoding/json"
|
|
||||||
|
|
||||||
//go:generate curl -L --progress -o ./schemas/v2/schema.json http://swagger.io/v2/schema.json
|
|
||||||
//go:generate curl -L --progress -o ./schemas/jsonschema-draft-04.json http://json-schema.org/draft-04/schema
|
|
||||||
//go:generate go-bindata -pkg=spec -prefix=./schemas -ignore=.*\.md ./schemas/...
|
|
||||||
//go:generate perl -pi -e s,Json,JSON,g bindata.go
|
|
||||||
|
|
||||||
const (
|
|
||||||
// SwaggerSchemaURL the url for the swagger 2.0 schema to validate specs
|
|
||||||
SwaggerSchemaURL = "http://swagger.io/v2/schema.json#"
|
|
||||||
// JSONSchemaURL the url for the json schema schema
|
|
||||||
JSONSchemaURL = "http://json-schema.org/draft-04/schema#"
|
|
||||||
)
|
|
||||||
|
|
||||||
var (
|
|
||||||
jsonSchema *Schema
|
|
||||||
swaggerSchema *Schema
|
|
||||||
)
|
|
||||||
|
|
||||||
func init() {
|
|
||||||
jsonSchema = MustLoadJSONSchemaDraft04()
|
|
||||||
swaggerSchema = MustLoadSwagger20Schema()
|
|
||||||
}
|
|
||||||
|
|
||||||
// MustLoadJSONSchemaDraft04 panics when Swagger20Schema returns an error
|
|
||||||
func MustLoadJSONSchemaDraft04() *Schema {
|
|
||||||
d, e := JSONSchemaDraft04()
|
|
||||||
if e != nil {
|
|
||||||
panic(e)
|
|
||||||
}
|
|
||||||
return d
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONSchemaDraft04 loads the json schema document for json shema draft04
|
|
||||||
func JSONSchemaDraft04() (*Schema, error) {
|
|
||||||
b, err := Asset("jsonschema-draft-04.json")
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
schema := new(Schema)
|
|
||||||
if err := json.Unmarshal(b, schema); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return schema, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// MustLoadSwagger20Schema panics when Swagger20Schema returns an error
|
|
||||||
func MustLoadSwagger20Schema() *Schema {
|
|
||||||
d, e := Swagger20Schema()
|
|
||||||
if e != nil {
|
|
||||||
panic(e)
|
|
||||||
}
|
|
||||||
return d
|
|
||||||
}
|
|
||||||
|
|
||||||
// Swagger20Schema loads the swagger 2.0 schema from the embedded assets
|
|
||||||
func Swagger20Schema() (*Schema, error) {
|
|
||||||
|
|
||||||
b, err := Asset("v2/schema.json")
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
schema := new(Schema)
|
|
||||||
if err := json.Unmarshal(b, schema); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return schema, nil
|
|
||||||
}
|
|
448
vendor/github.com/go-openapi/spec/swagger.go
generated
vendored
448
vendor/github.com/go-openapi/spec/swagger.go
generated
vendored
@ -1,448 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"bytes"
|
|
||||||
"encoding/gob"
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
|
||||||
"strconv"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Swagger this is the root document object for the API specification.
|
|
||||||
// It combines what previously was the Resource Listing and API Declaration (version 1.2 and earlier)
|
|
||||||
// together into one document.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#swagger-object-
|
|
||||||
type Swagger struct {
|
|
||||||
VendorExtensible
|
|
||||||
SwaggerProps
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup look up a value by the json property name
|
|
||||||
func (s Swagger) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if ex, ok := s.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
r, _, err := jsonpointer.GetForToken(s.SwaggerProps, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON marshals this swagger structure to json
|
|
||||||
func (s Swagger) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(s.SwaggerProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(s.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return swag.ConcatJSON(b1, b2), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON unmarshals a swagger spec from json
|
|
||||||
func (s *Swagger) UnmarshalJSON(data []byte) error {
|
|
||||||
var sw Swagger
|
|
||||||
if err := json.Unmarshal(data, &sw.SwaggerProps); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := json.Unmarshal(data, &sw.VendorExtensible); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*s = sw
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GobEncode provides a safe gob encoder for Swagger, including extensions
|
|
||||||
func (s Swagger) GobEncode() ([]byte, error) {
|
|
||||||
var b bytes.Buffer
|
|
||||||
raw := struct {
|
|
||||||
Props SwaggerProps
|
|
||||||
Ext VendorExtensible
|
|
||||||
}{
|
|
||||||
Props: s.SwaggerProps,
|
|
||||||
Ext: s.VendorExtensible,
|
|
||||||
}
|
|
||||||
err := gob.NewEncoder(&b).Encode(raw)
|
|
||||||
return b.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// GobDecode provides a safe gob decoder for Swagger, including extensions
|
|
||||||
func (s *Swagger) GobDecode(b []byte) error {
|
|
||||||
var raw struct {
|
|
||||||
Props SwaggerProps
|
|
||||||
Ext VendorExtensible
|
|
||||||
}
|
|
||||||
buf := bytes.NewBuffer(b)
|
|
||||||
err := gob.NewDecoder(buf).Decode(&raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
s.SwaggerProps = raw.Props
|
|
||||||
s.VendorExtensible = raw.Ext
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// SwaggerProps captures the top-level properties of an Api specification
|
|
||||||
//
|
|
||||||
// NOTE: validation rules
|
|
||||||
// - the scheme, when present must be from [http, https, ws, wss]
|
|
||||||
// - BasePath must start with a leading "/"
|
|
||||||
// - Paths is required
|
|
||||||
type SwaggerProps struct {
|
|
||||||
ID string `json:"id,omitempty"`
|
|
||||||
Consumes []string `json:"consumes,omitempty"`
|
|
||||||
Produces []string `json:"produces,omitempty"`
|
|
||||||
Schemes []string `json:"schemes,omitempty"`
|
|
||||||
Swagger string `json:"swagger,omitempty"`
|
|
||||||
Info *Info `json:"info,omitempty"`
|
|
||||||
Host string `json:"host,omitempty"`
|
|
||||||
BasePath string `json:"basePath,omitempty"`
|
|
||||||
Paths *Paths `json:"paths"`
|
|
||||||
Definitions Definitions `json:"definitions,omitempty"`
|
|
||||||
Parameters map[string]Parameter `json:"parameters,omitempty"`
|
|
||||||
Responses map[string]Response `json:"responses,omitempty"`
|
|
||||||
SecurityDefinitions SecurityDefinitions `json:"securityDefinitions,omitempty"`
|
|
||||||
Security []map[string][]string `json:"security,omitempty"`
|
|
||||||
Tags []Tag `json:"tags,omitempty"`
|
|
||||||
ExternalDocs *ExternalDocumentation `json:"externalDocs,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type swaggerPropsAlias SwaggerProps
|
|
||||||
|
|
||||||
type gobSwaggerPropsAlias struct {
|
|
||||||
Security []map[string]struct {
|
|
||||||
List []string
|
|
||||||
Pad bool
|
|
||||||
}
|
|
||||||
Alias *swaggerPropsAlias
|
|
||||||
SecurityIsEmpty bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// GobEncode provides a safe gob encoder for SwaggerProps, including empty security requirements
|
|
||||||
func (o SwaggerProps) GobEncode() ([]byte, error) {
|
|
||||||
raw := gobSwaggerPropsAlias{
|
|
||||||
Alias: (*swaggerPropsAlias)(&o),
|
|
||||||
}
|
|
||||||
|
|
||||||
var b bytes.Buffer
|
|
||||||
if o.Security == nil {
|
|
||||||
// nil security requirement
|
|
||||||
err := gob.NewEncoder(&b).Encode(raw)
|
|
||||||
return b.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(o.Security) == 0 {
|
|
||||||
// empty, but non-nil security requirement
|
|
||||||
raw.SecurityIsEmpty = true
|
|
||||||
raw.Alias.Security = nil
|
|
||||||
err := gob.NewEncoder(&b).Encode(raw)
|
|
||||||
return b.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
raw.Security = make([]map[string]struct {
|
|
||||||
List []string
|
|
||||||
Pad bool
|
|
||||||
}, 0, len(o.Security))
|
|
||||||
for _, req := range o.Security {
|
|
||||||
v := make(map[string]struct {
|
|
||||||
List []string
|
|
||||||
Pad bool
|
|
||||||
}, len(req))
|
|
||||||
for k, val := range req {
|
|
||||||
v[k] = struct {
|
|
||||||
List []string
|
|
||||||
Pad bool
|
|
||||||
}{
|
|
||||||
List: val,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
raw.Security = append(raw.Security, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
err := gob.NewEncoder(&b).Encode(raw)
|
|
||||||
return b.Bytes(), err
|
|
||||||
}
|
|
||||||
|
|
||||||
// GobDecode provides a safe gob decoder for SwaggerProps, including empty security requirements
|
|
||||||
func (o *SwaggerProps) GobDecode(b []byte) error {
|
|
||||||
var raw gobSwaggerPropsAlias
|
|
||||||
|
|
||||||
buf := bytes.NewBuffer(b)
|
|
||||||
err := gob.NewDecoder(buf).Decode(&raw)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if raw.Alias == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
switch {
|
|
||||||
case raw.SecurityIsEmpty:
|
|
||||||
// empty, but non-nil security requirement
|
|
||||||
raw.Alias.Security = []map[string][]string{}
|
|
||||||
case len(raw.Alias.Security) == 0:
|
|
||||||
// nil security requirement
|
|
||||||
raw.Alias.Security = nil
|
|
||||||
default:
|
|
||||||
raw.Alias.Security = make([]map[string][]string, 0, len(raw.Security))
|
|
||||||
for _, req := range raw.Security {
|
|
||||||
v := make(map[string][]string, len(req))
|
|
||||||
for k, val := range req {
|
|
||||||
v[k] = make([]string, 0, len(val.List))
|
|
||||||
v[k] = append(v[k], val.List...)
|
|
||||||
}
|
|
||||||
raw.Alias.Security = append(raw.Alias.Security, v)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
*o = *(*SwaggerProps)(raw.Alias)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Dependencies represent a dependencies property
|
|
||||||
type Dependencies map[string]SchemaOrStringArray
|
|
||||||
|
|
||||||
// SchemaOrBool represents a schema or boolean value, is biased towards true for the boolean property
|
|
||||||
type SchemaOrBool struct {
|
|
||||||
Allows bool
|
|
||||||
Schema *Schema
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup implements an interface to customize json pointer lookup
|
|
||||||
func (s SchemaOrBool) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if token == "allows" {
|
|
||||||
return s.Allows, nil
|
|
||||||
}
|
|
||||||
r, _, err := jsonpointer.GetForToken(s.Schema, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
var jsTrue = []byte("true")
|
|
||||||
var jsFalse = []byte("false")
|
|
||||||
|
|
||||||
// MarshalJSON convert this object to JSON
|
|
||||||
func (s SchemaOrBool) MarshalJSON() ([]byte, error) {
|
|
||||||
if s.Schema != nil {
|
|
||||||
return json.Marshal(s.Schema)
|
|
||||||
}
|
|
||||||
|
|
||||||
if s.Schema == nil && !s.Allows {
|
|
||||||
return jsFalse, nil
|
|
||||||
}
|
|
||||||
return jsTrue, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON converts this bool or schema object from a JSON structure
|
|
||||||
func (s *SchemaOrBool) UnmarshalJSON(data []byte) error {
|
|
||||||
var nw SchemaOrBool
|
|
||||||
if len(data) >= 4 {
|
|
||||||
if data[0] == '{' {
|
|
||||||
var sch Schema
|
|
||||||
if err := json.Unmarshal(data, &sch); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
nw.Schema = &sch
|
|
||||||
}
|
|
||||||
nw.Allows = !(data[0] == 'f' && data[1] == 'a' && data[2] == 'l' && data[3] == 's' && data[4] == 'e')
|
|
||||||
}
|
|
||||||
*s = nw
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// SchemaOrStringArray represents a schema or a string array
|
|
||||||
type SchemaOrStringArray struct {
|
|
||||||
Schema *Schema
|
|
||||||
Property []string
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup implements an interface to customize json pointer lookup
|
|
||||||
func (s SchemaOrStringArray) JSONLookup(token string) (interface{}, error) {
|
|
||||||
r, _, err := jsonpointer.GetForToken(s.Schema, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON converts this schema object or array into JSON structure
|
|
||||||
func (s SchemaOrStringArray) MarshalJSON() ([]byte, error) {
|
|
||||||
if len(s.Property) > 0 {
|
|
||||||
return json.Marshal(s.Property)
|
|
||||||
}
|
|
||||||
if s.Schema != nil {
|
|
||||||
return json.Marshal(s.Schema)
|
|
||||||
}
|
|
||||||
return []byte("null"), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON converts this schema object or array from a JSON structure
|
|
||||||
func (s *SchemaOrStringArray) UnmarshalJSON(data []byte) error {
|
|
||||||
var first byte
|
|
||||||
if len(data) > 1 {
|
|
||||||
first = data[0]
|
|
||||||
}
|
|
||||||
var nw SchemaOrStringArray
|
|
||||||
if first == '{' {
|
|
||||||
var sch Schema
|
|
||||||
if err := json.Unmarshal(data, &sch); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
nw.Schema = &sch
|
|
||||||
}
|
|
||||||
if first == '[' {
|
|
||||||
if err := json.Unmarshal(data, &nw.Property); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*s = nw
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Definitions contains the models explicitly defined in this spec
|
|
||||||
// An object to hold data types that can be consumed and produced by operations.
|
|
||||||
// These data types can be primitives, arrays or models.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#definitionsObject
|
|
||||||
type Definitions map[string]Schema
|
|
||||||
|
|
||||||
// SecurityDefinitions a declaration of the security schemes available to be used in the specification.
|
|
||||||
// This does not enforce the security schemes on the operations and only serves to provide
|
|
||||||
// the relevant details for each scheme.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#securityDefinitionsObject
|
|
||||||
type SecurityDefinitions map[string]*SecurityScheme
|
|
||||||
|
|
||||||
// StringOrArray represents a value that can either be a string
|
|
||||||
// or an array of strings. Mainly here for serialization purposes
|
|
||||||
type StringOrArray []string
|
|
||||||
|
|
||||||
// Contains returns true when the value is contained in the slice
|
|
||||||
func (s StringOrArray) Contains(value string) bool {
|
|
||||||
for _, str := range s {
|
|
||||||
if str == value {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup implements an interface to customize json pointer lookup
|
|
||||||
func (s SchemaOrArray) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if _, err := strconv.Atoi(token); err == nil {
|
|
||||||
r, _, err := jsonpointer.GetForToken(s.Schemas, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
r, _, err := jsonpointer.GetForToken(s.Schema, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON unmarshals this string or array object from a JSON array or JSON string
|
|
||||||
func (s *StringOrArray) UnmarshalJSON(data []byte) error {
|
|
||||||
var first byte
|
|
||||||
if len(data) > 1 {
|
|
||||||
first = data[0]
|
|
||||||
}
|
|
||||||
|
|
||||||
if first == '[' {
|
|
||||||
var parsed []string
|
|
||||||
if err := json.Unmarshal(data, &parsed); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
*s = StringOrArray(parsed)
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
var single interface{}
|
|
||||||
if err := json.Unmarshal(data, &single); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if single == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
switch v := single.(type) {
|
|
||||||
case string:
|
|
||||||
*s = StringOrArray([]string{v})
|
|
||||||
return nil
|
|
||||||
default:
|
|
||||||
return fmt.Errorf("only string or array is allowed, not %T", single)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON converts this string or array to a JSON array or JSON string
|
|
||||||
func (s StringOrArray) MarshalJSON() ([]byte, error) {
|
|
||||||
if len(s) == 1 {
|
|
||||||
return json.Marshal([]string(s)[0])
|
|
||||||
}
|
|
||||||
return json.Marshal([]string(s))
|
|
||||||
}
|
|
||||||
|
|
||||||
// SchemaOrArray represents a value that can either be a Schema
|
|
||||||
// or an array of Schema. Mainly here for serialization purposes
|
|
||||||
type SchemaOrArray struct {
|
|
||||||
Schema *Schema
|
|
||||||
Schemas []Schema
|
|
||||||
}
|
|
||||||
|
|
||||||
// Len returns the number of schemas in this property
|
|
||||||
func (s SchemaOrArray) Len() int {
|
|
||||||
if s.Schema != nil {
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
return len(s.Schemas)
|
|
||||||
}
|
|
||||||
|
|
||||||
// ContainsType returns true when one of the schemas is of the specified type
|
|
||||||
func (s *SchemaOrArray) ContainsType(name string) bool {
|
|
||||||
if s.Schema != nil {
|
|
||||||
return s.Schema.Type != nil && s.Schema.Type.Contains(name)
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON converts this schema object or array into JSON structure
|
|
||||||
func (s SchemaOrArray) MarshalJSON() ([]byte, error) {
|
|
||||||
if len(s.Schemas) > 0 {
|
|
||||||
return json.Marshal(s.Schemas)
|
|
||||||
}
|
|
||||||
return json.Marshal(s.Schema)
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON converts this schema object or array from a JSON structure
|
|
||||||
func (s *SchemaOrArray) UnmarshalJSON(data []byte) error {
|
|
||||||
var nw SchemaOrArray
|
|
||||||
var first byte
|
|
||||||
if len(data) > 1 {
|
|
||||||
first = data[0]
|
|
||||||
}
|
|
||||||
if first == '{' {
|
|
||||||
var sch Schema
|
|
||||||
if err := json.Unmarshal(data, &sch); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
nw.Schema = &sch
|
|
||||||
}
|
|
||||||
if first == '[' {
|
|
||||||
if err := json.Unmarshal(data, &nw.Schemas); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*s = nw
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// vim:set ft=go noet sts=2 sw=2 ts=2:
|
|
75
vendor/github.com/go-openapi/spec/tag.go
generated
vendored
75
vendor/github.com/go-openapi/spec/tag.go
generated
vendored
@ -1,75 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"encoding/json"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
"github.com/go-openapi/swag"
|
|
||||||
)
|
|
||||||
|
|
||||||
// TagProps describe a tag entry in the top level tags section of a swagger spec
|
|
||||||
type TagProps struct {
|
|
||||||
Description string `json:"description,omitempty"`
|
|
||||||
Name string `json:"name,omitempty"`
|
|
||||||
ExternalDocs *ExternalDocumentation `json:"externalDocs,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// NewTag creates a new tag
|
|
||||||
func NewTag(name, description string, externalDocs *ExternalDocumentation) Tag {
|
|
||||||
return Tag{TagProps: TagProps{Description: description, Name: name, ExternalDocs: externalDocs}}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tag allows adding meta data to a single tag that is used by the
|
|
||||||
// [Operation Object](http://goo.gl/8us55a#operationObject).
|
|
||||||
// It is not mandatory to have a Tag Object per tag used there.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#tagObject
|
|
||||||
type Tag struct {
|
|
||||||
VendorExtensible
|
|
||||||
TagProps
|
|
||||||
}
|
|
||||||
|
|
||||||
// JSONLookup implements an interface to customize json pointer lookup
|
|
||||||
func (t Tag) JSONLookup(token string) (interface{}, error) {
|
|
||||||
if ex, ok := t.Extensions[token]; ok {
|
|
||||||
return &ex, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
r, _, err := jsonpointer.GetForToken(t.TagProps, token)
|
|
||||||
return r, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON marshal this to JSON
|
|
||||||
func (t Tag) MarshalJSON() ([]byte, error) {
|
|
||||||
b1, err := json.Marshal(t.TagProps)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
b2, err := json.Marshal(t.VendorExtensible)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return swag.ConcatJSON(b1, b2), nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON marshal this from JSON
|
|
||||||
func (t *Tag) UnmarshalJSON(data []byte) error {
|
|
||||||
if err := json.Unmarshal(data, &t.TagProps); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return json.Unmarshal(data, &t.VendorExtensible)
|
|
||||||
}
|
|
174
vendor/github.com/go-openapi/spec/unused.go
generated
vendored
174
vendor/github.com/go-openapi/spec/unused.go
generated
vendored
@ -1,174 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/url"
|
|
||||||
"os"
|
|
||||||
"path"
|
|
||||||
"path/filepath"
|
|
||||||
|
|
||||||
"github.com/go-openapi/jsonpointer"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Some currently unused functions and definitions that
|
|
||||||
// used to be part of the expander.
|
|
||||||
|
|
||||||
// Moved here for the record and possible future reuse
|
|
||||||
|
|
||||||
var (
|
|
||||||
idPtr, _ = jsonpointer.New("/id")
|
|
||||||
refPtr, _ = jsonpointer.New("/$ref")
|
|
||||||
)
|
|
||||||
|
|
||||||
func idFromNode(node interface{}) (*Ref, error) {
|
|
||||||
if idValue, _, err := idPtr.Get(node); err == nil {
|
|
||||||
if refStr, ok := idValue.(string); ok && refStr != "" {
|
|
||||||
idRef, err := NewRef(refStr)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &idRef, nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func nextRef(startingNode interface{}, startingRef *Ref, ptr *jsonpointer.Pointer) *Ref {
|
|
||||||
if startingRef == nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
if ptr == nil {
|
|
||||||
return startingRef
|
|
||||||
}
|
|
||||||
|
|
||||||
ret := startingRef
|
|
||||||
var idRef *Ref
|
|
||||||
node := startingNode
|
|
||||||
|
|
||||||
for _, tok := range ptr.DecodedTokens() {
|
|
||||||
node, _, _ = jsonpointer.GetForToken(node, tok)
|
|
||||||
if node == nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
idRef, _ = idFromNode(node)
|
|
||||||
if idRef != nil {
|
|
||||||
nw, err := ret.Inherits(*idRef)
|
|
||||||
if err != nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
ret = nw
|
|
||||||
}
|
|
||||||
|
|
||||||
refRef, _, _ := refPtr.Get(node)
|
|
||||||
if refRef != nil {
|
|
||||||
var rf Ref
|
|
||||||
switch value := refRef.(type) {
|
|
||||||
case string:
|
|
||||||
rf, _ = NewRef(value)
|
|
||||||
}
|
|
||||||
nw, err := ret.Inherits(rf)
|
|
||||||
if err != nil {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
nwURL := nw.GetURL()
|
|
||||||
if nwURL.Scheme == "file" || (nwURL.Scheme == "" && nwURL.Host == "") {
|
|
||||||
nwpt := filepath.ToSlash(nwURL.Path)
|
|
||||||
if filepath.IsAbs(nwpt) {
|
|
||||||
_, err := os.Stat(nwpt)
|
|
||||||
if err != nil {
|
|
||||||
nwURL.Path = filepath.Join(".", nwpt)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = nw
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret
|
|
||||||
}
|
|
||||||
|
|
||||||
// basePathFromSchemaID returns a new basePath based on an existing basePath and a schema ID
|
|
||||||
func basePathFromSchemaID(oldBasePath, id string) string {
|
|
||||||
u, err := url.Parse(oldBasePath)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
uid, err := url.Parse(id)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
if path.IsAbs(uid.Path) {
|
|
||||||
return id
|
|
||||||
}
|
|
||||||
u.Path = path.Join(path.Dir(u.Path), uid.Path)
|
|
||||||
return u.String()
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// type ExtraSchemaProps map[string]interface{}
|
|
||||||
|
|
||||||
// // JSONSchema represents a structure that is a json schema draft 04
|
|
||||||
// type JSONSchema struct {
|
|
||||||
// SchemaProps
|
|
||||||
// ExtraSchemaProps
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // MarshalJSON marshal this to JSON
|
|
||||||
// func (s JSONSchema) MarshalJSON() ([]byte, error) {
|
|
||||||
// b1, err := json.Marshal(s.SchemaProps)
|
|
||||||
// if err != nil {
|
|
||||||
// return nil, err
|
|
||||||
// }
|
|
||||||
// b2, err := s.Ref.MarshalJSON()
|
|
||||||
// if err != nil {
|
|
||||||
// return nil, err
|
|
||||||
// }
|
|
||||||
// b3, err := s.Schema.MarshalJSON()
|
|
||||||
// if err != nil {
|
|
||||||
// return nil, err
|
|
||||||
// }
|
|
||||||
// b4, err := json.Marshal(s.ExtraSchemaProps)
|
|
||||||
// if err != nil {
|
|
||||||
// return nil, err
|
|
||||||
// }
|
|
||||||
// return swag.ConcatJSON(b1, b2, b3, b4), nil
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // UnmarshalJSON marshal this from JSON
|
|
||||||
// func (s *JSONSchema) UnmarshalJSON(data []byte) error {
|
|
||||||
// var sch JSONSchema
|
|
||||||
// if err := json.Unmarshal(data, &sch.SchemaProps); err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// if err := json.Unmarshal(data, &sch.Ref); err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// if err := json.Unmarshal(data, &sch.Schema); err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// if err := json.Unmarshal(data, &sch.ExtraSchemaProps); err != nil {
|
|
||||||
// return err
|
|
||||||
// }
|
|
||||||
// *s = sch
|
|
||||||
// return nil
|
|
||||||
// }
|
|
68
vendor/github.com/go-openapi/spec/xml_object.go
generated
vendored
68
vendor/github.com/go-openapi/spec/xml_object.go
generated
vendored
@ -1,68 +0,0 @@
|
|||||||
// Copyright 2015 go-swagger maintainers
|
|
||||||
//
|
|
||||||
// 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 spec
|
|
||||||
|
|
||||||
// XMLObject a metadata object that allows for more fine-tuned XML model definitions.
|
|
||||||
//
|
|
||||||
// For more information: http://goo.gl/8us55a#xmlObject
|
|
||||||
type XMLObject struct {
|
|
||||||
Name string `json:"name,omitempty"`
|
|
||||||
Namespace string `json:"namespace,omitempty"`
|
|
||||||
Prefix string `json:"prefix,omitempty"`
|
|
||||||
Attribute bool `json:"attribute,omitempty"`
|
|
||||||
Wrapped bool `json:"wrapped,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithName sets the xml name for the object
|
|
||||||
func (x *XMLObject) WithName(name string) *XMLObject {
|
|
||||||
x.Name = name
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithNamespace sets the xml namespace for the object
|
|
||||||
func (x *XMLObject) WithNamespace(namespace string) *XMLObject {
|
|
||||||
x.Namespace = namespace
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithPrefix sets the xml prefix for the object
|
|
||||||
func (x *XMLObject) WithPrefix(prefix string) *XMLObject {
|
|
||||||
x.Prefix = prefix
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsAttribute flags this object as xml attribute
|
|
||||||
func (x *XMLObject) AsAttribute() *XMLObject {
|
|
||||||
x.Attribute = true
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsElement flags this object as an xml node
|
|
||||||
func (x *XMLObject) AsElement() *XMLObject {
|
|
||||||
x.Attribute = false
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsWrapped flags this object as wrapped, this is mostly useful for array types
|
|
||||||
func (x *XMLObject) AsWrapped() *XMLObject {
|
|
||||||
x.Wrapped = true
|
|
||||||
return x
|
|
||||||
}
|
|
||||||
|
|
||||||
// AsUnwrapped flags this object as an xml node
|
|
||||||
func (x *XMLObject) AsUnwrapped() *XMLObject {
|
|
||||||
x.Wrapped = false
|
|
||||||
return x
|
|
||||||
}
|
|
34
vendor/modules.txt
vendored
34
vendor/modules.txt
vendored
@ -301,8 +301,6 @@ github.com/go-logr/logr
|
|||||||
github.com/go-openapi/jsonpointer
|
github.com/go-openapi/jsonpointer
|
||||||
# github.com/go-openapi/jsonreference v0.19.3 => github.com/go-openapi/jsonreference v0.19.3
|
# github.com/go-openapi/jsonreference v0.19.3 => github.com/go-openapi/jsonreference v0.19.3
|
||||||
github.com/go-openapi/jsonreference
|
github.com/go-openapi/jsonreference
|
||||||
# github.com/go-openapi/spec v0.19.5 => github.com/go-openapi/spec v0.19.5
|
|
||||||
github.com/go-openapi/spec
|
|
||||||
# github.com/go-openapi/swag v0.19.5 => github.com/go-openapi/swag v0.19.5
|
# github.com/go-openapi/swag v0.19.5 => github.com/go-openapi/swag v0.19.5
|
||||||
github.com/go-openapi/swag
|
github.com/go-openapi/swag
|
||||||
# github.com/go-ozzo/ozzo-validation v3.5.0+incompatible => github.com/go-ozzo/ozzo-validation v3.5.0+incompatible
|
# github.com/go-ozzo/ozzo-validation v3.5.0+incompatible => github.com/go-ozzo/ozzo-validation v3.5.0+incompatible
|
||||||
@ -2238,7 +2236,7 @@ k8s.io/utils/trace
|
|||||||
# sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15
|
# sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15 => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client
|
||||||
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client
|
sigs.k8s.io/apiserver-network-proxy/konnectivity-client/proto/client
|
||||||
# sigs.k8s.io/kustomize/api v0.8.8 => sigs.k8s.io/kustomize/api v0.8.8
|
# sigs.k8s.io/kustomize/api v0.8.10 => sigs.k8s.io/kustomize/api v0.8.10
|
||||||
sigs.k8s.io/kustomize/api/builtins
|
sigs.k8s.io/kustomize/api/builtins
|
||||||
sigs.k8s.io/kustomize/api/filesys
|
sigs.k8s.io/kustomize/api/filesys
|
||||||
sigs.k8s.io/kustomize/api/filters/annotations
|
sigs.k8s.io/kustomize/api/filters/annotations
|
||||||
@ -2253,6 +2251,7 @@ sigs.k8s.io/kustomize/api/filters/patchjson6902
|
|||||||
sigs.k8s.io/kustomize/api/filters/patchstrategicmerge
|
sigs.k8s.io/kustomize/api/filters/patchstrategicmerge
|
||||||
sigs.k8s.io/kustomize/api/filters/prefixsuffix
|
sigs.k8s.io/kustomize/api/filters/prefixsuffix
|
||||||
sigs.k8s.io/kustomize/api/filters/refvar
|
sigs.k8s.io/kustomize/api/filters/refvar
|
||||||
|
sigs.k8s.io/kustomize/api/filters/replacement
|
||||||
sigs.k8s.io/kustomize/api/filters/replicacount
|
sigs.k8s.io/kustomize/api/filters/replicacount
|
||||||
sigs.k8s.io/kustomize/api/filters/valueadd
|
sigs.k8s.io/kustomize/api/filters/valueadd
|
||||||
sigs.k8s.io/kustomize/api/hasher
|
sigs.k8s.io/kustomize/api/hasher
|
||||||
@ -2278,13 +2277,12 @@ sigs.k8s.io/kustomize/api/kv
|
|||||||
sigs.k8s.io/kustomize/api/loader
|
sigs.k8s.io/kustomize/api/loader
|
||||||
sigs.k8s.io/kustomize/api/provenance
|
sigs.k8s.io/kustomize/api/provenance
|
||||||
sigs.k8s.io/kustomize/api/provider
|
sigs.k8s.io/kustomize/api/provider
|
||||||
sigs.k8s.io/kustomize/api/resid
|
|
||||||
sigs.k8s.io/kustomize/api/resmap
|
sigs.k8s.io/kustomize/api/resmap
|
||||||
sigs.k8s.io/kustomize/api/resource
|
sigs.k8s.io/kustomize/api/resource
|
||||||
sigs.k8s.io/kustomize/api/types
|
sigs.k8s.io/kustomize/api/types
|
||||||
# sigs.k8s.io/kustomize/kustomize/v4 v4.1.2 => sigs.k8s.io/kustomize/kustomize/v4 v4.1.2
|
# sigs.k8s.io/kustomize/kustomize/v4 v4.1.3 => sigs.k8s.io/kustomize/kustomize/v4 v4.1.3
|
||||||
sigs.k8s.io/kustomize/kustomize/v4/commands/build
|
sigs.k8s.io/kustomize/kustomize/v4/commands/build
|
||||||
# sigs.k8s.io/kustomize/kyaml v0.10.17 => sigs.k8s.io/kustomize/kyaml v0.10.17
|
# sigs.k8s.io/kustomize/kyaml v0.10.20 => sigs.k8s.io/kustomize/kyaml v0.10.20
|
||||||
sigs.k8s.io/kustomize/kyaml/comments
|
sigs.k8s.io/kustomize/kyaml/comments
|
||||||
sigs.k8s.io/kustomize/kyaml/errors
|
sigs.k8s.io/kustomize/kyaml/errors
|
||||||
sigs.k8s.io/kustomize/kyaml/ext
|
sigs.k8s.io/kustomize/kyaml/ext
|
||||||
@ -2301,6 +2299,7 @@ sigs.k8s.io/kustomize/kyaml/openapi
|
|||||||
sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi
|
sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi
|
||||||
sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1204
|
sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1204
|
||||||
sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi
|
sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi
|
||||||
|
sigs.k8s.io/kustomize/kyaml/resid
|
||||||
sigs.k8s.io/kustomize/kyaml/runfn
|
sigs.k8s.io/kustomize/kyaml/runfn
|
||||||
sigs.k8s.io/kustomize/kyaml/sets
|
sigs.k8s.io/kustomize/kyaml/sets
|
||||||
sigs.k8s.io/kustomize/kyaml/yaml
|
sigs.k8s.io/kustomize/kyaml/yaml
|
||||||
@ -2353,11 +2352,9 @@ sigs.k8s.io/yaml
|
|||||||
# github.com/NYTimes/gziphandler => github.com/NYTimes/gziphandler v1.1.1
|
# github.com/NYTimes/gziphandler => github.com/NYTimes/gziphandler v1.1.1
|
||||||
# github.com/PuerkitoBio/purell => github.com/PuerkitoBio/purell v1.1.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/PuerkitoBio/urlesc => github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578
|
||||||
# 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/ajstarks/svgo => github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
|
||||||
# github.com/alecthomas/template => github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
|
# github.com/alecthomas/template => github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751
|
||||||
# github.com/alecthomas/units => github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4
|
# github.com/alecthomas/units => github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4
|
||||||
# github.com/andreyvit/diff => github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883
|
|
||||||
# github.com/armon/circbuf => github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e
|
# github.com/armon/circbuf => github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e
|
||||||
# github.com/armon/go-metrics => github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da
|
# github.com/armon/go-metrics => github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da
|
||||||
# github.com/armon/go-radix => github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310
|
# github.com/armon/go-radix => github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310
|
||||||
@ -2437,19 +2434,10 @@ sigs.k8s.io/yaml
|
|||||||
# github.com/go-kit/kit => github.com/go-kit/kit v0.9.0
|
# github.com/go-kit/kit => github.com/go-kit/kit v0.9.0
|
||||||
# github.com/go-logfmt/logfmt => github.com/go-logfmt/logfmt v0.4.0
|
# github.com/go-logfmt/logfmt => github.com/go-logfmt/logfmt v0.4.0
|
||||||
# github.com/go-logr/logr => github.com/go-logr/logr v0.4.0
|
# github.com/go-logr/logr => github.com/go-logr/logr v0.4.0
|
||||||
# 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
|
# github.com/go-openapi/jsonpointer => github.com/go-openapi/jsonpointer v0.19.3
|
||||||
# github.com/go-openapi/jsonreference => github.com/go-openapi/jsonreference v0.19.3
|
# github.com/go-openapi/jsonreference => github.com/go-openapi/jsonreference v0.19.3
|
||||||
# github.com/go-openapi/loads => github.com/go-openapi/loads v0.19.4
|
|
||||||
# github.com/go-openapi/runtime => github.com/go-openapi/runtime v0.19.4
|
|
||||||
# github.com/go-openapi/spec => github.com/go-openapi/spec v0.19.5
|
|
||||||
# github.com/go-openapi/strfmt => github.com/go-openapi/strfmt v0.19.5
|
|
||||||
# github.com/go-openapi/swag => github.com/go-openapi/swag v0.19.5
|
# github.com/go-openapi/swag => github.com/go-openapi/swag v0.19.5
|
||||||
# github.com/go-openapi/validate => github.com/go-openapi/validate v0.19.8
|
|
||||||
# github.com/go-ozzo/ozzo-validation => github.com/go-ozzo/ozzo-validation v3.5.0+incompatible
|
# 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/gobuffalo/here => github.com/gobuffalo/here v0.6.0
|
|
||||||
# github.com/godbus/dbus/v5 => github.com/godbus/dbus/v5 v5.0.4
|
# github.com/godbus/dbus/v5 => github.com/godbus/dbus/v5 v5.0.4
|
||||||
# github.com/gofrs/uuid => github.com/gofrs/uuid v4.0.0+incompatible
|
# github.com/gofrs/uuid => github.com/gofrs/uuid v4.0.0+incompatible
|
||||||
# github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2
|
# github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2
|
||||||
@ -2530,7 +2518,6 @@ sigs.k8s.io/yaml
|
|||||||
# github.com/lucas-clemente/quic-go-certificates => github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced
|
# github.com/lucas-clemente/quic-go-certificates => github.com/lucas-clemente/quic-go-certificates v0.0.0-20160823095156-d2f86524cced
|
||||||
# github.com/magiconair/properties => github.com/magiconair/properties v1.8.1
|
# github.com/magiconair/properties => github.com/magiconair/properties v1.8.1
|
||||||
# github.com/mailru/easyjson => github.com/mailru/easyjson v0.7.0
|
# github.com/mailru/easyjson => github.com/mailru/easyjson v0.7.0
|
||||||
# github.com/markbates/pkger => github.com/markbates/pkger v0.17.1
|
|
||||||
# github.com/marten-seemann/qtls => github.com/marten-seemann/qtls v0.2.3
|
# github.com/marten-seemann/qtls => github.com/marten-seemann/qtls v0.2.3
|
||||||
# github.com/mattn/go-colorable => github.com/mattn/go-colorable v0.0.9
|
# 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.4
|
# github.com/mattn/go-isatty => github.com/mattn/go-isatty v0.0.4
|
||||||
@ -2613,11 +2600,9 @@ sigs.k8s.io/yaml
|
|||||||
# github.com/stretchr/testify => github.com/stretchr/testify v1.7.0
|
# github.com/stretchr/testify => github.com/stretchr/testify v1.7.0
|
||||||
# github.com/subosito/gotenv => github.com/subosito/gotenv v1.2.0
|
# github.com/subosito/gotenv => github.com/subosito/gotenv v1.2.0
|
||||||
# github.com/syndtr/gocapability => github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
|
# github.com/syndtr/gocapability => github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635
|
||||||
# github.com/tidwall/pretty => github.com/tidwall/pretty v1.0.0
|
|
||||||
# github.com/tmc/grpc-websocket-proxy => github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5
|
# github.com/tmc/grpc-websocket-proxy => github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5
|
||||||
# github.com/urfave/cli => github.com/urfave/cli v1.22.2
|
# github.com/urfave/cli => github.com/urfave/cli v1.22.2
|
||||||
# github.com/urfave/negroni => github.com/urfave/negroni v1.0.0
|
# github.com/urfave/negroni => github.com/urfave/negroni v1.0.0
|
||||||
# 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/netlink => github.com/vishvananda/netlink v1.1.0
|
||||||
# github.com/vishvananda/netns => github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae
|
# github.com/vishvananda/netns => github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae
|
||||||
# github.com/vmware/govmomi => github.com/vmware/govmomi v0.20.3
|
# github.com/vmware/govmomi => github.com/vmware/govmomi v0.20.3
|
||||||
@ -2627,7 +2612,6 @@ sigs.k8s.io/yaml
|
|||||||
# github.com/yuin/goldmark => github.com/yuin/goldmark v1.2.1
|
# github.com/yuin/goldmark => github.com/yuin/goldmark v1.2.1
|
||||||
# go.etcd.io/bbolt => go.etcd.io/bbolt v1.3.5
|
# go.etcd.io/bbolt => go.etcd.io/bbolt v1.3.5
|
||||||
# go.etcd.io/etcd => go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489
|
# go.etcd.io/etcd => go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489
|
||||||
# go.mongodb.org/mongo-driver => go.mongodb.org/mongo-driver v1.1.2
|
|
||||||
# go.opencensus.io => go.opencensus.io v0.22.3
|
# go.opencensus.io => go.opencensus.io v0.22.3
|
||||||
# go.starlark.net => go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5
|
# go.starlark.net => go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5
|
||||||
# go.uber.org/atomic => go.uber.org/atomic v1.6.0
|
# go.uber.org/atomic => go.uber.org/atomic v1.6.0
|
||||||
@ -2717,9 +2701,9 @@ sigs.k8s.io/yaml
|
|||||||
# rsc.io/quote/v3 => rsc.io/quote/v3 v3.1.0
|
# rsc.io/quote/v3 => rsc.io/quote/v3 v3.1.0
|
||||||
# rsc.io/sampler => rsc.io/sampler v1.3.0
|
# rsc.io/sampler => rsc.io/sampler v1.3.0
|
||||||
# sigs.k8s.io/apiserver-network-proxy/konnectivity-client => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15
|
# sigs.k8s.io/apiserver-network-proxy/konnectivity-client => sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15
|
||||||
# sigs.k8s.io/kustomize/api => sigs.k8s.io/kustomize/api v0.8.8
|
# sigs.k8s.io/kustomize/api => sigs.k8s.io/kustomize/api v0.8.10
|
||||||
# sigs.k8s.io/kustomize/cmd/config => sigs.k8s.io/kustomize/cmd/config v0.9.10
|
# sigs.k8s.io/kustomize/cmd/config => sigs.k8s.io/kustomize/cmd/config v0.9.12
|
||||||
# sigs.k8s.io/kustomize/kustomize/v4 => sigs.k8s.io/kustomize/kustomize/v4 v4.1.2
|
# sigs.k8s.io/kustomize/kustomize/v4 => sigs.k8s.io/kustomize/kustomize/v4 v4.1.3
|
||||||
# sigs.k8s.io/kustomize/kyaml => sigs.k8s.io/kustomize/kyaml v0.10.17
|
# sigs.k8s.io/kustomize/kyaml => sigs.k8s.io/kustomize/kyaml v0.10.20
|
||||||
# sigs.k8s.io/structured-merge-diff/v4 => sigs.k8s.io/structured-merge-diff/v4 v4.1.1
|
# sigs.k8s.io/structured-merge-diff/v4 => sigs.k8s.io/structured-merge-diff/v4 v4.1.1
|
||||||
# sigs.k8s.io/yaml => sigs.k8s.io/yaml v1.2.0
|
# sigs.k8s.io/yaml => sigs.k8s.io/yaml v1.2.0
|
||||||
|
14
vendor/sigs.k8s.io/kustomize/api/builtins/AnnotationsTransformer.go
generated
vendored
14
vendor/sigs.k8s.io/kustomize/api/builtins/AnnotationsTransformer.go
generated
vendored
@ -27,16 +27,10 @@ func (p *AnnotationsTransformerPlugin) Transform(m resmap.ResMap) error {
|
|||||||
if len(p.Annotations) == 0 {
|
if len(p.Annotations) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
for _, r := range m.Resources() {
|
return m.ApplyFilter(annotations.Filter{
|
||||||
err := r.ApplyFilter(annotations.Filter{
|
Annotations: p.Annotations,
|
||||||
Annotations: p.Annotations,
|
FsSlice: p.FieldSpecs,
|
||||||
FsSlice: p.FieldSpecs,
|
})
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewAnnotationsTransformerPlugin() resmap.TransformerPlugin {
|
func NewAnnotationsTransformerPlugin() resmap.TransformerPlugin {
|
||||||
|
3
vendor/sigs.k8s.io/kustomize/api/builtins/HelmChartInflationGenerator.go
generated
vendored
3
vendor/sigs.k8s.io/kustomize/api/builtins/HelmChartInflationGenerator.go
generated
vendored
@ -267,6 +267,9 @@ func (p *HelmChartInflationGeneratorPlugin) templateCommand() []string {
|
|||||||
if p.ReleaseName != "" {
|
if p.ReleaseName != "" {
|
||||||
args = append(args, p.ReleaseName)
|
args = append(args, p.ReleaseName)
|
||||||
}
|
}
|
||||||
|
if p.Namespace != "" {
|
||||||
|
args = append(args, "--namespace", p.Namespace)
|
||||||
|
}
|
||||||
args = append(args, filepath.Join(p.absChartHome(), p.Name))
|
args = append(args, filepath.Join(p.absChartHome(), p.Name))
|
||||||
if p.ValuesFile != "" {
|
if p.ValuesFile != "" {
|
||||||
args = append(args, "--values", p.ValuesFile)
|
args = append(args, "--values", p.ValuesFile)
|
||||||
|
25
vendor/sigs.k8s.io/kustomize/api/builtins/ImageTagTransformer.go
generated
vendored
25
vendor/sigs.k8s.io/kustomize/api/builtins/ImageTagTransformer.go
generated
vendored
@ -25,24 +25,15 @@ func (p *ImageTagTransformerPlugin) Config(
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *ImageTagTransformerPlugin) Transform(m resmap.ResMap) error {
|
func (p *ImageTagTransformerPlugin) Transform(m resmap.ResMap) error {
|
||||||
for _, r := range m.Resources() {
|
if err := m.ApplyFilter(imagetag.LegacyFilter{
|
||||||
// traverse all fields at first
|
ImageTag: p.ImageTag,
|
||||||
err := r.ApplyFilter(imagetag.LegacyFilter{
|
}); err != nil {
|
||||||
ImageTag: p.ImageTag,
|
return err
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
// then use user specified field specs
|
|
||||||
err = r.ApplyFilter(imagetag.Filter{
|
|
||||||
ImageTag: p.ImageTag,
|
|
||||||
FsSlice: p.FieldSpecs,
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return m.ApplyFilter(imagetag.Filter{
|
||||||
|
ImageTag: p.ImageTag,
|
||||||
|
FsSlice: p.FieldSpecs,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewImageTagTransformerPlugin() resmap.TransformerPlugin {
|
func NewImageTagTransformerPlugin() resmap.TransformerPlugin {
|
||||||
|
14
vendor/sigs.k8s.io/kustomize/api/builtins/LabelTransformer.go
generated
vendored
14
vendor/sigs.k8s.io/kustomize/api/builtins/LabelTransformer.go
generated
vendored
@ -27,16 +27,10 @@ func (p *LabelTransformerPlugin) Transform(m resmap.ResMap) error {
|
|||||||
if len(p.Labels) == 0 {
|
if len(p.Labels) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
for _, r := range m.Resources() {
|
return m.ApplyFilter(labels.Filter{
|
||||||
err := r.ApplyFilter(labels.Filter{
|
Labels: p.Labels,
|
||||||
Labels: p.Labels,
|
FsSlice: p.FieldSpecs,
|
||||||
FsSlice: p.FieldSpecs,
|
})
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewLabelTransformerPlugin() resmap.TransformerPlugin {
|
func NewLabelTransformerPlugin() resmap.TransformerPlugin {
|
||||||
|
2
vendor/sigs.k8s.io/kustomize/api/builtins/NamespaceTransformer.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/api/builtins/NamespaceTransformer.go
generated
vendored
@ -30,7 +30,7 @@ func (p *NamespaceTransformerPlugin) Transform(m resmap.ResMap) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
for _, r := range m.Resources() {
|
for _, r := range m.Resources() {
|
||||||
if r.IsEmpty() {
|
if r.IsNilOrEmpty() {
|
||||||
// Don't mutate empty objects?
|
// Don't mutate empty objects?
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
9
vendor/sigs.k8s.io/kustomize/api/builtins/PatchTransformer.go
generated
vendored
9
vendor/sigs.k8s.io/kustomize/api/builtins/PatchTransformer.go
generated
vendored
@ -62,10 +62,10 @@ func (p *PatchTransformerPlugin) Config(
|
|||||||
if errSM == nil {
|
if errSM == nil {
|
||||||
p.loadedPatch = patchSM
|
p.loadedPatch = patchSM
|
||||||
if p.Options["allowNameChange"] {
|
if p.Options["allowNameChange"] {
|
||||||
p.loadedPatch.SetAllowNameChange("true")
|
p.loadedPatch.AllowNameChange()
|
||||||
}
|
}
|
||||||
if p.Options["allowKindChange"] {
|
if p.Options["allowKindChange"] {
|
||||||
p.loadedPatch.SetAllowKindChange("true")
|
p.loadedPatch.AllowKindChange()
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
p.decodedPatch = patchJson
|
p.decodedPatch = patchJson
|
||||||
@ -76,10 +76,9 @@ func (p *PatchTransformerPlugin) Config(
|
|||||||
func (p *PatchTransformerPlugin) Transform(m resmap.ResMap) error {
|
func (p *PatchTransformerPlugin) Transform(m resmap.ResMap) error {
|
||||||
if p.loadedPatch == nil {
|
if p.loadedPatch == nil {
|
||||||
return p.transformJson6902(m, p.decodedPatch)
|
return p.transformJson6902(m, p.decodedPatch)
|
||||||
} else {
|
|
||||||
// The patch was a strategic merge patch
|
|
||||||
return p.transformStrategicMerge(m, p.loadedPatch)
|
|
||||||
}
|
}
|
||||||
|
// The patch was a strategic merge patch
|
||||||
|
return p.transformStrategicMerge(m, p.loadedPatch)
|
||||||
}
|
}
|
||||||
|
|
||||||
// transformStrategicMerge applies the provided strategic merge patch
|
// transformStrategicMerge applies the provided strategic merge patch
|
||||||
|
7
vendor/sigs.k8s.io/kustomize/api/builtins/PrefixSuffixTransformer.go
generated
vendored
7
vendor/sigs.k8s.io/kustomize/api/builtins/PrefixSuffixTransformer.go
generated
vendored
@ -7,9 +7,9 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/filters/prefixsuffix"
|
"sigs.k8s.io/kustomize/api/filters/prefixsuffix"
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/resmap"
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -73,12 +73,11 @@ func (p *PrefixSuffixTransformerPlugin) Transform(m resmap.ResMap) error {
|
|||||||
r.StorePreviousId()
|
r.StorePreviousId()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err := r.ApplyFilter(prefixsuffix.Filter{
|
if err := r.ApplyFilter(prefixsuffix.Filter{
|
||||||
Prefix: p.Prefix,
|
Prefix: p.Prefix,
|
||||||
Suffix: p.Suffix,
|
Suffix: p.Suffix,
|
||||||
FieldSpec: fs,
|
FieldSpec: fs,
|
||||||
})
|
}); err != nil {
|
||||||
if err != nil {
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
59
vendor/sigs.k8s.io/kustomize/api/builtins/ReplacementTransformer.go
generated
vendored
Normal file
59
vendor/sigs.k8s.io/kustomize/api/builtins/ReplacementTransformer.go
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
// Code generated by pluginator on ReplacementTransformer; DO NOT EDIT.
|
||||||
|
// pluginator {unknown 1970-01-01T00:00:00Z }
|
||||||
|
|
||||||
|
package builtins
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"sigs.k8s.io/kustomize/api/filters/replacement"
|
||||||
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Replace values in targets with values from a source
|
||||||
|
type ReplacementTransformerPlugin struct {
|
||||||
|
ReplacementList []types.ReplacementField `json:"replacements,omitempty" yaml:"replacements,omitempty"`
|
||||||
|
Replacements []types.Replacement `json:"omitempty" yaml:"omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ReplacementTransformerPlugin) Config(
|
||||||
|
h *resmap.PluginHelpers, c []byte) (err error) {
|
||||||
|
p.ReplacementList = []types.ReplacementField{}
|
||||||
|
if err := yaml.Unmarshal(c, p); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, r := range p.ReplacementList {
|
||||||
|
if r.Path != "" && (r.Source != nil || len(r.Targets) != 0) {
|
||||||
|
return fmt.Errorf("cannot specify both path and inline replacement")
|
||||||
|
}
|
||||||
|
if r.Path != "" {
|
||||||
|
// load the replacement from the path
|
||||||
|
content, err := h.Loader().Load(r.Path)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
repl := types.Replacement{}
|
||||||
|
if err := yaml.Unmarshal(content, &repl); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
p.Replacements = append(p.Replacements, repl)
|
||||||
|
} else {
|
||||||
|
// replacement information is already loaded
|
||||||
|
p.Replacements = append(p.Replacements, r.Replacement)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *ReplacementTransformerPlugin) Transform(m resmap.ResMap) (err error) {
|
||||||
|
return m.ApplyFilter(replacement.Filter{
|
||||||
|
Replacements: p.Replacements,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewReplacementTransformerPlugin() resmap.TransformerPlugin {
|
||||||
|
return &ReplacementTransformerPlugin{}
|
||||||
|
}
|
2
vendor/sigs.k8s.io/kustomize/api/builtins/ReplicaCountTransformer.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/api/builtins/ReplicaCountTransformer.go
generated
vendored
@ -7,9 +7,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/filters/replicacount"
|
"sigs.k8s.io/kustomize/api/filters/replicacount"
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/resmap"
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
69
vendor/sigs.k8s.io/kustomize/api/filesys/fsnode.go
generated
vendored
69
vendor/sigs.k8s.io/kustomize/api/filesys/fsnode.go
generated
vendored
@ -6,6 +6,7 @@ package filesys
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@ -37,9 +38,9 @@ type fsNode struct {
|
|||||||
// if this node is a file, this is the content.
|
// if this node is a file, this is the content.
|
||||||
content []byte
|
content []byte
|
||||||
|
|
||||||
// if this node is a file, this tracks whether or
|
// if offset is not nil the file is open and it tracks
|
||||||
// not it is "open".
|
// the current file offset.
|
||||||
open bool
|
offset *int
|
||||||
}
|
}
|
||||||
|
|
||||||
// MakeEmptyDirInMemory returns an empty directory.
|
// MakeEmptyDirInMemory returns an empty directory.
|
||||||
@ -119,6 +120,9 @@ func (n *fsNode) addFile(name string, c []byte) (result *fsNode, err error) {
|
|||||||
result, ok := parent.dir[fileName]
|
result, ok := parent.dir[fileName]
|
||||||
if ok {
|
if ok {
|
||||||
// File already exists; overwrite it.
|
// File already exists; overwrite it.
|
||||||
|
if result.offset != nil {
|
||||||
|
return nil, fmt.Errorf("cannot add already opened file '%s'", n.Path())
|
||||||
|
}
|
||||||
result.content = c
|
result.content = c
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
@ -133,7 +137,12 @@ func (n *fsNode) addFile(name string, c []byte) (result *fsNode, err error) {
|
|||||||
// Create implements FileSystem.
|
// Create implements FileSystem.
|
||||||
// Create makes an empty file.
|
// Create makes an empty file.
|
||||||
func (n *fsNode) Create(path string) (result File, err error) {
|
func (n *fsNode) Create(path string) (result File, err error) {
|
||||||
return n.AddFile(path, []byte{})
|
f, err := n.AddFile(path, nil)
|
||||||
|
if err != nil {
|
||||||
|
return f, err
|
||||||
|
}
|
||||||
|
f.offset = new(int)
|
||||||
|
return f, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// WriteFile implements FileSystem.
|
// WriteFile implements FileSystem.
|
||||||
@ -154,6 +163,7 @@ func (n *fsNode) AddFile(
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (n *fsNode) addDir(path string) (result *fsNode, err error) {
|
func (n *fsNode) addDir(path string) (result *fsNode, err error) {
|
||||||
|
|
||||||
parent := n
|
parent := n
|
||||||
dName, subDirName := mySplit(path)
|
dName, subDirName := mySplit(path)
|
||||||
if dName != "" {
|
if dName != "" {
|
||||||
@ -348,7 +358,17 @@ func (n *fsNode) Size() int64 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Open implements FileSystem.
|
// Open implements FileSystem.
|
||||||
// Open opens the node for reading (just marks it).
|
// Open opens the node in read-write mode and sets the offset its start.
|
||||||
|
// Writing right after opening the file will replace the original content
|
||||||
|
// and move the offset forward, as with a file opened with O_RDWR | O_CREATE.
|
||||||
|
//
|
||||||
|
// As an example, let's consider a file with content "content":
|
||||||
|
// - open: sets offset to start, content is "content"
|
||||||
|
// - write "@": offset increases by one, the content is now "@ontent"
|
||||||
|
// - read the rest: since offset is 1, the read operation returns "ontent"
|
||||||
|
// - write "$": offset is at EOF, so "$" is appended and content is now "@ontent$"
|
||||||
|
// - read the rest: returns 0 bytes and EOF
|
||||||
|
// - close: the content is still "@ontent$"
|
||||||
func (n *fsNode) Open(path string) (File, error) {
|
func (n *fsNode) Open(path string) (File, error) {
|
||||||
result, err := n.Find(path)
|
result, err := n.Find(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -357,13 +377,19 @@ func (n *fsNode) Open(path string) (File, error) {
|
|||||||
if result == nil {
|
if result == nil {
|
||||||
return nil, fmt.Errorf("cannot find '%s' to open it", path)
|
return nil, fmt.Errorf("cannot find '%s' to open it", path)
|
||||||
}
|
}
|
||||||
result.open = true
|
if result.offset != nil {
|
||||||
|
return nil, fmt.Errorf("cannot open previously opened file '%s'", path)
|
||||||
|
}
|
||||||
|
result.offset = new(int)
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Close marks the node closed.
|
// Close marks the node closed.
|
||||||
func (n *fsNode) Close() error {
|
func (n *fsNode) Close() error {
|
||||||
n.open = false
|
if n.offset == nil {
|
||||||
|
return fmt.Errorf("cannot close already closed file '%s'", n.Path())
|
||||||
|
}
|
||||||
|
n.offset = nil
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -376,9 +402,12 @@ func (n *fsNode) ReadFile(path string) (c []byte, err error) {
|
|||||||
if result == nil {
|
if result == nil {
|
||||||
return nil, fmt.Errorf("cannot find '%s' to read it", path)
|
return nil, fmt.Errorf("cannot find '%s' to read it", path)
|
||||||
}
|
}
|
||||||
|
if result.isNodeADir() {
|
||||||
|
return nil, fmt.Errorf("cannot read content from non-file '%s'", n.Path())
|
||||||
|
}
|
||||||
c = make([]byte, len(result.content))
|
c = make([]byte, len(result.content))
|
||||||
_, err = result.Read(c)
|
copy(c, result.content)
|
||||||
return c, err
|
return c, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read returns the content of the file node.
|
// Read returns the content of the file node.
|
||||||
@ -387,7 +416,19 @@ func (n *fsNode) Read(d []byte) (c int, err error) {
|
|||||||
return 0, fmt.Errorf(
|
return 0, fmt.Errorf(
|
||||||
"cannot read content from non-file '%s'", n.Path())
|
"cannot read content from non-file '%s'", n.Path())
|
||||||
}
|
}
|
||||||
return copy(d, n.content), nil
|
if n.offset == nil {
|
||||||
|
return 0, fmt.Errorf("cannot read from closed file '%s'", n.Path())
|
||||||
|
}
|
||||||
|
|
||||||
|
rest := n.content[*n.offset:]
|
||||||
|
if len(d) < len(rest) {
|
||||||
|
rest = rest[:len(d)]
|
||||||
|
} else {
|
||||||
|
err = io.EOF
|
||||||
|
}
|
||||||
|
copy(d, rest)
|
||||||
|
*n.offset += len(rest)
|
||||||
|
return len(rest), err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write saves the contents of the argument to the file node.
|
// Write saves the contents of the argument to the file node.
|
||||||
@ -396,8 +437,12 @@ func (n *fsNode) Write(p []byte) (c int, err error) {
|
|||||||
return 0, fmt.Errorf(
|
return 0, fmt.Errorf(
|
||||||
"cannot write content to non-file '%s'", n.Path())
|
"cannot write content to non-file '%s'", n.Path())
|
||||||
}
|
}
|
||||||
n.content = make([]byte, len(p))
|
if n.offset == nil {
|
||||||
return copy(n.content, p), nil
|
return 0, fmt.Errorf("cannot write to closed file '%s'", n.Path())
|
||||||
|
}
|
||||||
|
n.content = append(n.content[:*n.offset], p...)
|
||||||
|
*n.offset = len(n.content)
|
||||||
|
return len(p), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ContentMatches returns true if v matches fake file's content.
|
// ContentMatches returns true if v matches fake file's content.
|
||||||
|
26
vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/fieldspec.go
generated
vendored
26
vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/fieldspec.go
generated
vendored
@ -11,6 +11,7 @@ import (
|
|||||||
"sigs.k8s.io/kustomize/api/internal/utils"
|
"sigs.k8s.io/kustomize/api/internal/utils"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
"sigs.k8s.io/kustomize/kyaml/errors"
|
"sigs.k8s.io/kustomize/kyaml/errors"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
"sigs.k8s.io/kustomize/kyaml/yaml"
|
"sigs.k8s.io/kustomize/kyaml/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -45,12 +46,11 @@ type Filter struct {
|
|||||||
|
|
||||||
func (fltr Filter) Filter(obj *yaml.RNode) (*yaml.RNode, error) {
|
func (fltr Filter) Filter(obj *yaml.RNode) (*yaml.RNode, error) {
|
||||||
// check if the FieldSpec applies to the object
|
// check if the FieldSpec applies to the object
|
||||||
if match, err := isMatchGVK(fltr.FieldSpec, obj); !match || err != nil {
|
if match := isMatchGVK(fltr.FieldSpec, obj); !match {
|
||||||
return obj, errors.Wrap(err)
|
return obj, nil
|
||||||
}
|
}
|
||||||
fltr.path = utils.PathSplitter(fltr.FieldSpec.Path)
|
fltr.path = utils.PathSplitter(fltr.FieldSpec.Path)
|
||||||
err := fltr.filter(obj)
|
if err := fltr.filter(obj); err != nil {
|
||||||
if err != nil {
|
|
||||||
s, _ := obj.String()
|
s, _ := obj.String()
|
||||||
return nil, errors.WrapPrefixf(err,
|
return nil, errors.WrapPrefixf(err,
|
||||||
"considering field '%s' of object\n%v", fltr.FieldSpec.Path, s)
|
"considering field '%s' of object\n%v", fltr.FieldSpec.Path, s)
|
||||||
@ -158,28 +158,24 @@ func isSequenceField(name string) (string, bool) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// isMatchGVK returns true if the fs.GVK matches the obj GVK.
|
// isMatchGVK returns true if the fs.GVK matches the obj GVK.
|
||||||
func isMatchGVK(fs types.FieldSpec, obj *yaml.RNode) (bool, error) {
|
func isMatchGVK(fs types.FieldSpec, obj *yaml.RNode) bool {
|
||||||
meta, err := obj.GetMeta()
|
if kind := obj.GetKind(); fs.Kind != "" && fs.Kind != kind {
|
||||||
if err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
if fs.Kind != "" && fs.Kind != meta.Kind {
|
|
||||||
// kind doesn't match
|
// kind doesn't match
|
||||||
return false, err
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse the group and version from the apiVersion field
|
// parse the group and version from the apiVersion field
|
||||||
group, version := parseGV(meta.APIVersion)
|
group, version := resid.ParseGroupVersion(obj.GetApiVersion())
|
||||||
|
|
||||||
if fs.Group != "" && fs.Group != group {
|
if fs.Group != "" && fs.Group != group {
|
||||||
// group doesn't match
|
// group doesn't match
|
||||||
return false, nil
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if fs.Version != "" && fs.Version != version {
|
if fs.Version != "" && fs.Version != version {
|
||||||
// version doesn't match
|
// version doesn't match
|
||||||
return false, nil
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
return true, nil
|
return true
|
||||||
}
|
}
|
||||||
|
49
vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/gvk.go
generated
vendored
49
vendor/sigs.k8s.io/kustomize/api/filters/fieldspec/gvk.go
generated
vendored
@ -1,49 +0,0 @@
|
|||||||
// Copyright 2019 The Kubernetes Authors.
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
package fieldspec
|
|
||||||
|
|
||||||
import (
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/kyaml/yaml"
|
|
||||||
)
|
|
||||||
|
|
||||||
// Return true for 'v' followed by a 1 or 2, and don't look at rest.
|
|
||||||
// I.e. 'v1', 'v1beta1', 'v2', would return true.
|
|
||||||
func looksLikeACoreApiVersion(s string) bool {
|
|
||||||
if len(s) < 2 {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if s[0:1] != "v" {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
return s[1:2] == "1" || s[1:2] == "2"
|
|
||||||
}
|
|
||||||
|
|
||||||
// parseGV parses apiVersion field into group and version.
|
|
||||||
func parseGV(apiVersion string) (group, version string) {
|
|
||||||
// parse the group and version from the apiVersion field
|
|
||||||
parts := strings.SplitN(apiVersion, "/", 2)
|
|
||||||
group = parts[0]
|
|
||||||
if len(parts) > 1 {
|
|
||||||
version = parts[1]
|
|
||||||
}
|
|
||||||
// Special case the original "apiVersion" of what
|
|
||||||
// we now call the "core" (empty) group.
|
|
||||||
if version == "" && looksLikeACoreApiVersion(group) {
|
|
||||||
version = group
|
|
||||||
group = ""
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetGVK parses the metadata into a GVK
|
|
||||||
func GetGVK(meta yaml.ResourceMeta) resid.Gvk {
|
|
||||||
group, version := parseGV(meta.APIVersion)
|
|
||||||
return resid.Gvk{
|
|
||||||
Group: group,
|
|
||||||
Version: version,
|
|
||||||
Kind: meta.Kind,
|
|
||||||
}
|
|
||||||
}
|
|
13
vendor/sigs.k8s.io/kustomize/api/filters/nameref/nameref.go
generated
vendored
13
vendor/sigs.k8s.io/kustomize/api/filters/nameref/nameref.go
generated
vendored
@ -6,11 +6,11 @@ import (
|
|||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"sigs.k8s.io/kustomize/api/filters/fieldspec"
|
"sigs.k8s.io/kustomize/api/filters/fieldspec"
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/resmap"
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
"sigs.k8s.io/kustomize/api/resource"
|
"sigs.k8s.io/kustomize/api/resource"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
"sigs.k8s.io/kustomize/kyaml/kio"
|
"sigs.k8s.io/kustomize/kyaml/kio"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
"sigs.k8s.io/kustomize/kyaml/yaml"
|
"sigs.k8s.io/kustomize/kyaml/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -184,7 +184,7 @@ func (f Filter) recordTheReferral(referral *resource.Resource) {
|
|||||||
|
|
||||||
// getRoleRefGvk returns a Gvk in the roleRef field. Return error
|
// getRoleRefGvk returns a Gvk in the roleRef field. Return error
|
||||||
// if the roleRef, roleRef/apiGroup or roleRef/kind is missing.
|
// if the roleRef, roleRef/apiGroup or roleRef/kind is missing.
|
||||||
func getRoleRefGvk(n *yaml.RNode) (*resid.Gvk, error) {
|
func getRoleRefGvk(n *resource.Resource) (*resid.Gvk, error) {
|
||||||
roleRef, err := n.Pipe(yaml.Lookup("roleRef"))
|
roleRef, err := n.Pipe(yaml.Lookup("roleRef"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -257,8 +257,7 @@ func previousIdSelectedByGvk(gvk *resid.Gvk) sieveFunc {
|
|||||||
|
|
||||||
// If the we are updating a 'roleRef/name' field, the 'apiGroup' and 'kind'
|
// If the we are updating a 'roleRef/name' field, the 'apiGroup' and 'kind'
|
||||||
// fields in the same 'roleRef' map must be considered.
|
// fields in the same 'roleRef' map must be considered.
|
||||||
// If either object is cluster-scoped (!IsNamespaceableKind), there
|
// If either object is cluster-scoped, there can be a referral.
|
||||||
// can be a referral.
|
|
||||||
// E.g. a RoleBinding (which exists in a namespace) can refer
|
// E.g. a RoleBinding (which exists in a namespace) can refer
|
||||||
// to a ClusterRole (cluster-scoped) object.
|
// to a ClusterRole (cluster-scoped) object.
|
||||||
// https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-and-clusterrole
|
// https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-and-clusterrole
|
||||||
@ -270,7 +269,7 @@ func (f Filter) roleRefFilter() sieveFunc {
|
|||||||
if !strings.HasSuffix(f.NameFieldToUpdate.Path, "roleRef/name") {
|
if !strings.HasSuffix(f.NameFieldToUpdate.Path, "roleRef/name") {
|
||||||
return acceptAll
|
return acceptAll
|
||||||
}
|
}
|
||||||
roleRefGvk, err := getRoleRefGvk(f.Referrer.AsRNode())
|
roleRefGvk, err := getRoleRefGvk(f.Referrer)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return acceptAll
|
return acceptAll
|
||||||
}
|
}
|
||||||
@ -285,12 +284,12 @@ func prefixSuffixEquals(other resource.ResCtx) sieveFunc {
|
|||||||
|
|
||||||
func (f Filter) sameCurrentNamespaceAsReferrer() sieveFunc {
|
func (f Filter) sameCurrentNamespaceAsReferrer() sieveFunc {
|
||||||
referrerCurId := f.Referrer.CurId()
|
referrerCurId := f.Referrer.CurId()
|
||||||
if !referrerCurId.IsNamespaceableKind() {
|
if referrerCurId.IsClusterScoped() {
|
||||||
// If the referrer is cluster-scoped, let anything through.
|
// If the referrer is cluster-scoped, let anything through.
|
||||||
return acceptAll
|
return acceptAll
|
||||||
}
|
}
|
||||||
return func(r *resource.Resource) bool {
|
return func(r *resource.Resource) bool {
|
||||||
if !r.CurId().IsNamespaceableKind() {
|
if r.CurId().IsClusterScoped() {
|
||||||
// Allow cluster-scoped through.
|
// Allow cluster-scoped through.
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
22
vendor/sigs.k8s.io/kustomize/api/filters/namespace/namespace.go
generated
vendored
22
vendor/sigs.k8s.io/kustomize/api/filters/namespace/namespace.go
generated
vendored
@ -4,11 +4,11 @@
|
|||||||
package namespace
|
package namespace
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"sigs.k8s.io/kustomize/api/filters/fieldspec"
|
|
||||||
"sigs.k8s.io/kustomize/api/filters/filtersutil"
|
"sigs.k8s.io/kustomize/api/filters/filtersutil"
|
||||||
"sigs.k8s.io/kustomize/api/filters/fsslice"
|
"sigs.k8s.io/kustomize/api/filters/fsslice"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
"sigs.k8s.io/kustomize/kyaml/kio"
|
"sigs.k8s.io/kustomize/kyaml/kio"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
"sigs.k8s.io/kustomize/kyaml/yaml"
|
"sigs.k8s.io/kustomize/kyaml/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -54,16 +54,11 @@ func (ns Filter) run(node *yaml.RNode) (*yaml.RNode, error) {
|
|||||||
// hacks applies the namespace transforms that are hardcoded rather
|
// hacks applies the namespace transforms that are hardcoded rather
|
||||||
// than specified through FieldSpecs.
|
// than specified through FieldSpecs.
|
||||||
func (ns Filter) hacks(obj *yaml.RNode) error {
|
func (ns Filter) hacks(obj *yaml.RNode) error {
|
||||||
meta, err := obj.GetMeta()
|
gvk := resid.GvkFromNode(obj)
|
||||||
if err != nil {
|
if err := ns.metaNamespaceHack(obj, gvk); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
return ns.roleBindingHack(obj, gvk)
|
||||||
if err := ns.metaNamespaceHack(obj, meta); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return ns.roleBindingHack(obj, meta)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// metaNamespaceHack is a hack for implementing the namespace transform
|
// metaNamespaceHack is a hack for implementing the namespace transform
|
||||||
@ -74,9 +69,8 @@ func (ns Filter) hacks(obj *yaml.RNode) error {
|
|||||||
// This hack should be updated to allow individual resources to specify
|
// This hack should be updated to allow individual resources to specify
|
||||||
// if they are cluster scoped through either an annotation on the resources,
|
// if they are cluster scoped through either an annotation on the resources,
|
||||||
// or through inlined OpenAPI on the resource as a YAML comment.
|
// or through inlined OpenAPI on the resource as a YAML comment.
|
||||||
func (ns Filter) metaNamespaceHack(obj *yaml.RNode, meta yaml.ResourceMeta) error {
|
func (ns Filter) metaNamespaceHack(obj *yaml.RNode, gvk resid.Gvk) error {
|
||||||
gvk := fieldspec.GetGVK(meta)
|
if gvk.IsClusterScoped() {
|
||||||
if !gvk.IsNamespaceableKind() {
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
f := fsslice.Filter{
|
f := fsslice.Filter{
|
||||||
@ -104,8 +98,8 @@ func (ns Filter) metaNamespaceHack(obj *yaml.RNode, meta yaml.ResourceMeta) erro
|
|||||||
// ...
|
// ...
|
||||||
// - name: "something-else" # this will not have the namespace set
|
// - name: "something-else" # this will not have the namespace set
|
||||||
// ...
|
// ...
|
||||||
func (ns Filter) roleBindingHack(obj *yaml.RNode, meta yaml.ResourceMeta) error {
|
func (ns Filter) roleBindingHack(obj *yaml.RNode, gvk resid.Gvk) error {
|
||||||
if meta.Kind != roleBindingKind && meta.Kind != clusterRoleBindingKind {
|
if gvk.Kind != roleBindingKind && gvk.Kind != clusterRoleBindingKind {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
vendor/sigs.k8s.io/kustomize/api/filters/replacement/doc.go
generated
vendored
Normal file
4
vendor/sigs.k8s.io/kustomize/api/filters/replacement/doc.go
generated
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
// Package replacement contains a kio.Filter implementation of the kustomize
|
||||||
|
// replacement transformer (accepts sources and looks for targets to replace
|
||||||
|
// their values with values from the sources).
|
||||||
|
package replacement
|
181
vendor/sigs.k8s.io/kustomize/api/filters/replacement/replacement.go
generated
vendored
Normal file
181
vendor/sigs.k8s.io/kustomize/api/filters/replacement/replacement.go
generated
vendored
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
// Copyright 2021 The Kubernetes Authors.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
package replacement
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/yaml"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Filter struct {
|
||||||
|
Replacements []types.Replacement `json:"replacements,omitempty" yaml:"replacements,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filter replaces values of targets with values from sources
|
||||||
|
func (f Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) {
|
||||||
|
for _, r := range f.Replacements {
|
||||||
|
if r.Source == nil || r.Targets == nil {
|
||||||
|
return nil, fmt.Errorf("replacements must specify a source and at least one target")
|
||||||
|
}
|
||||||
|
value, err := getReplacement(nodes, &r)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
nodes, err = applyReplacement(nodes, value, r.Targets)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nodes, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func applyReplacement(nodes []*yaml.RNode, value *yaml.RNode, targets []*types.TargetSelector) ([]*yaml.RNode, error) {
|
||||||
|
for _, t := range targets {
|
||||||
|
if t.Select == nil {
|
||||||
|
return nil, fmt.Errorf("target must specify resources to select")
|
||||||
|
}
|
||||||
|
if len(t.FieldPaths) == 0 {
|
||||||
|
t.FieldPaths = []string{types.DefaultReplacementFieldPath}
|
||||||
|
}
|
||||||
|
for _, n := range nodes {
|
||||||
|
id := makeResId(n)
|
||||||
|
if id.IsSelectedBy(t.Select.ResId) && !rejectId(t.Reject, id) {
|
||||||
|
err := applyToNode(n, value, t)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nodes, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func rejectId(rejects []*types.Selector, id *resid.ResId) bool {
|
||||||
|
for _, r := range rejects {
|
||||||
|
if id.IsSelectedBy(r.ResId) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func applyToNode(node *yaml.RNode, value *yaml.RNode, target *types.TargetSelector) error {
|
||||||
|
for _, fp := range target.FieldPaths {
|
||||||
|
fieldPath := strings.Split(fp, ".")
|
||||||
|
var t *yaml.RNode
|
||||||
|
var err error
|
||||||
|
if target.Options != nil && target.Options.Create {
|
||||||
|
t, err = node.Pipe(yaml.LookupCreate(value.YNode().Kind, fieldPath...))
|
||||||
|
} else {
|
||||||
|
t, err = node.Pipe(yaml.Lookup(fieldPath...))
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if t != nil {
|
||||||
|
if err = setTargetValue(target.Options, t, value); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func setTargetValue(options *types.FieldOptions, t *yaml.RNode, value *yaml.RNode) error {
|
||||||
|
if options != nil && options.Delimiter != "" {
|
||||||
|
|
||||||
|
if t.YNode().Kind != yaml.ScalarNode {
|
||||||
|
return fmt.Errorf("delimiter option can only be used with scalar nodes")
|
||||||
|
}
|
||||||
|
|
||||||
|
tv := strings.Split(t.YNode().Value, options.Delimiter)
|
||||||
|
v := yaml.GetValue(value)
|
||||||
|
// TODO: Add a way to remove an element
|
||||||
|
switch {
|
||||||
|
case options.Index < 0: // prefix
|
||||||
|
tv = append([]string{v}, tv...)
|
||||||
|
case options.Index >= len(tv): // suffix
|
||||||
|
tv = append(tv, v)
|
||||||
|
default: // replace an element
|
||||||
|
tv[options.Index] = v
|
||||||
|
}
|
||||||
|
value.YNode().Value = strings.Join(tv, options.Delimiter)
|
||||||
|
}
|
||||||
|
t.SetYNode(value.YNode())
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getReplacement(nodes []*yaml.RNode, r *types.Replacement) (*yaml.RNode, error) {
|
||||||
|
source, err := selectSourceNode(nodes, r.Source)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if r.Source.FieldPath == "" {
|
||||||
|
r.Source.FieldPath = types.DefaultReplacementFieldPath
|
||||||
|
}
|
||||||
|
fieldPath := strings.Split(r.Source.FieldPath, ".")
|
||||||
|
|
||||||
|
rn, err := source.Pipe(yaml.Lookup(fieldPath...))
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if !rn.IsNilOrEmpty() {
|
||||||
|
return getRefinedValue(r.Source.Options, rn)
|
||||||
|
}
|
||||||
|
return rn, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func getRefinedValue(options *types.FieldOptions, rn *yaml.RNode) (*yaml.RNode, error) {
|
||||||
|
if options == nil || options.Delimiter == "" {
|
||||||
|
return rn, nil
|
||||||
|
}
|
||||||
|
if rn.YNode().Kind != yaml.ScalarNode {
|
||||||
|
return nil, fmt.Errorf("delimiter option can only be used with scalar nodes")
|
||||||
|
}
|
||||||
|
value := strings.Split(yaml.GetValue(rn), options.Delimiter)
|
||||||
|
if options.Index >= len(value) || options.Index < 0 {
|
||||||
|
return nil, fmt.Errorf("options.index %d is out of bounds for value %s", options.Index, yaml.GetValue(rn))
|
||||||
|
}
|
||||||
|
n := rn.Copy()
|
||||||
|
n.YNode().Value = value[options.Index]
|
||||||
|
return n, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// selectSourceNode finds the node that matches the selector, returning
|
||||||
|
// an error if multiple or none are found
|
||||||
|
func selectSourceNode(nodes []*yaml.RNode, selector *types.SourceSelector) (*yaml.RNode, error) {
|
||||||
|
var matches []*yaml.RNode
|
||||||
|
for _, n := range nodes {
|
||||||
|
if makeResId(n).IsSelectedBy(selector.ResId) {
|
||||||
|
if len(matches) > 0 {
|
||||||
|
return nil, fmt.Errorf(
|
||||||
|
"multiple matches for selector %s", selector)
|
||||||
|
}
|
||||||
|
matches = append(matches, n)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if len(matches) == 0 {
|
||||||
|
return nil, fmt.Errorf("nothing selected by %s", selector)
|
||||||
|
}
|
||||||
|
return matches[0], nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// makeResId makes a ResId from an RNode.
|
||||||
|
func makeResId(n *yaml.RNode) *resid.ResId {
|
||||||
|
apiVersion := n.Field(yaml.APIVersionField)
|
||||||
|
var group, version string
|
||||||
|
if apiVersion != nil {
|
||||||
|
group, version = resid.ParseGroupVersion(yaml.GetValue(apiVersion.Value))
|
||||||
|
}
|
||||||
|
return &resid.ResId{
|
||||||
|
Gvk: resid.Gvk{Group: group, Version: version, Kind: n.GetKind()},
|
||||||
|
Name: n.GetName(),
|
||||||
|
Namespace: n.GetNamespace(),
|
||||||
|
}
|
||||||
|
}
|
4
vendor/sigs.k8s.io/kustomize/api/internal/accumulator/loadconfigfromcrds.go
generated
vendored
4
vendor/sigs.k8s.io/kustomize/api/internal/accumulator/loadconfigfromcrds.go
generated
vendored
@ -7,13 +7,13 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/go-openapi/spec"
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
"k8s.io/kube-openapi/pkg/validation/spec"
|
||||||
"sigs.k8s.io/kustomize/api/filesys"
|
"sigs.k8s.io/kustomize/api/filesys"
|
||||||
"sigs.k8s.io/kustomize/api/ifc"
|
"sigs.k8s.io/kustomize/api/ifc"
|
||||||
"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
|
"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
5
vendor/sigs.k8s.io/kustomize/api/internal/accumulator/resaccumulator.go
generated
vendored
5
vendor/sigs.k8s.io/kustomize/api/internal/accumulator/resaccumulator.go
generated
vendored
@ -9,9 +9,9 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
|
"sigs.k8s.io/kustomize/api/internal/plugins/builtinconfig"
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/resmap"
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
)
|
)
|
||||||
|
|
||||||
// ResAccumulator accumulates resources and the rules
|
// ResAccumulator accumulates resources and the rules
|
||||||
@ -72,7 +72,7 @@ func (ra *ResAccumulator) MergeVars(incoming []types.Var) error {
|
|||||||
for _, v := range incoming {
|
for _, v := range incoming {
|
||||||
targetId := resid.NewResIdWithNamespace(v.ObjRef.GVK(), v.ObjRef.Name, v.ObjRef.Namespace)
|
targetId := resid.NewResIdWithNamespace(v.ObjRef.GVK(), v.ObjRef.Name, v.ObjRef.Namespace)
|
||||||
idMatcher := targetId.GvknEquals
|
idMatcher := targetId.GvknEquals
|
||||||
if targetId.Namespace != "" || !targetId.IsNamespaceableKind() {
|
if targetId.Namespace != "" || targetId.IsClusterScoped() {
|
||||||
// Preserve backward compatibility. An empty namespace means
|
// Preserve backward compatibility. An empty namespace means
|
||||||
// wildcard search on the namespace hence we still use GvknEquals
|
// wildcard search on the namespace hence we still use GvknEquals
|
||||||
idMatcher = targetId.Equals
|
idMatcher = targetId.Equals
|
||||||
@ -107,6 +107,7 @@ func (ra *ResAccumulator) findVarValueFromResources(v types.Var) (interface{}, e
|
|||||||
for _, res := range ra.resMap.Resources() {
|
for _, res := range ra.resMap.Resources() {
|
||||||
for _, varName := range res.GetRefVarNames() {
|
for _, varName := range res.GetRefVarNames() {
|
||||||
if varName == v.Name {
|
if varName == v.Name {
|
||||||
|
//nolint: staticcheck
|
||||||
s, err := res.GetFieldValue(v.FieldRef.FieldPath)
|
s, err := res.GetFieldValue(v.FieldRef.FieldPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf(
|
return "", fmt.Errorf(
|
||||||
|
1
vendor/sigs.k8s.io/kustomize/api/internal/generators/configmap.go
generated
vendored
1
vendor/sigs.k8s.io/kustomize/api/internal/generators/configmap.go
generated
vendored
@ -41,5 +41,6 @@ func MakeConfigMap(
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
copyLabelsAndAnnotations(rn, args.Options)
|
copyLabelsAndAnnotations(rn, args.Options)
|
||||||
|
setImmutable(rn, args.Options)
|
||||||
return rn, nil
|
return rn, nil
|
||||||
}
|
}
|
||||||
|
1
vendor/sigs.k8s.io/kustomize/api/internal/generators/secret.go
generated
vendored
1
vendor/sigs.k8s.io/kustomize/api/internal/generators/secret.go
generated
vendored
@ -54,5 +54,6 @@ func MakeSecret(
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
copyLabelsAndAnnotations(rn, args.Options)
|
copyLabelsAndAnnotations(rn, args.Options)
|
||||||
|
setImmutable(rn, args.Options)
|
||||||
return rn, nil
|
return rn, nil
|
||||||
}
|
}
|
||||||
|
13
vendor/sigs.k8s.io/kustomize/api/internal/generators/utils.go
generated
vendored
13
vendor/sigs.k8s.io/kustomize/api/internal/generators/utils.go
generated
vendored
@ -76,3 +76,16 @@ func copyLabelsAndAnnotations(
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setImmutable(
|
||||||
|
rn *yaml.RNode, opts *types.GeneratorOptions) error {
|
||||||
|
if opts == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if opts.Immutable {
|
||||||
|
if _, err := rn.Pipe(yaml.SetField("immutable", yaml.NewScalarRNode("true"))); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
7
vendor/sigs.k8s.io/kustomize/api/internal/git/cloner.go
generated
vendored
7
vendor/sigs.k8s.io/kustomize/api/internal/git/cloner.go
generated
vendored
@ -14,7 +14,7 @@ type Cloner func(repoSpec *RepoSpec) error
|
|||||||
// to say, some remote API, to obtain a local clone of
|
// to say, some remote API, to obtain a local clone of
|
||||||
// a remote repo.
|
// a remote repo.
|
||||||
func ClonerUsingGitExec(repoSpec *RepoSpec) error {
|
func ClonerUsingGitExec(repoSpec *RepoSpec) error {
|
||||||
r, err := newCmdRunner()
|
r, err := newCmdRunner(repoSpec.Timeout)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -36,7 +36,10 @@ func ClonerUsingGitExec(repoSpec *RepoSpec) error {
|
|||||||
if err = r.run("checkout", "FETCH_HEAD"); err != nil {
|
if err = r.run("checkout", "FETCH_HEAD"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return r.run("submodule", "update", "--init", "--recursive")
|
if repoSpec.Submodules {
|
||||||
|
return r.run("submodule", "update", "--init", "--recursive")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// DoNothingCloner returns a cloner that only sets
|
// DoNothingCloner returns a cloner that only sets
|
||||||
|
7
vendor/sigs.k8s.io/kustomize/api/internal/git/gitrunner.go
generated
vendored
7
vendor/sigs.k8s.io/kustomize/api/internal/git/gitrunner.go
generated
vendored
@ -12,9 +12,6 @@ import (
|
|||||||
"sigs.k8s.io/kustomize/api/internal/utils"
|
"sigs.k8s.io/kustomize/api/internal/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Arbitrary, but non-infinite, timeout for running commands.
|
|
||||||
const defaultDuration = 27 * time.Second
|
|
||||||
|
|
||||||
// gitRunner runs the external git binary.
|
// gitRunner runs the external git binary.
|
||||||
type gitRunner struct {
|
type gitRunner struct {
|
||||||
gitProgram string
|
gitProgram string
|
||||||
@ -24,7 +21,7 @@ type gitRunner struct {
|
|||||||
|
|
||||||
// newCmdRunner returns a gitRunner if it can find the binary.
|
// newCmdRunner returns a gitRunner if it can find the binary.
|
||||||
// It also creats a temp directory for cloning repos.
|
// It also creats a temp directory for cloning repos.
|
||||||
func newCmdRunner() (*gitRunner, error) {
|
func newCmdRunner(timeout time.Duration) (*gitRunner, error) {
|
||||||
gitProgram, err := exec.LookPath("git")
|
gitProgram, err := exec.LookPath("git")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "no 'git' program on path")
|
return nil, errors.Wrap(err, "no 'git' program on path")
|
||||||
@ -35,7 +32,7 @@ func newCmdRunner() (*gitRunner, error) {
|
|||||||
}
|
}
|
||||||
return &gitRunner{
|
return &gitRunner{
|
||||||
gitProgram: gitProgram,
|
gitProgram: gitProgram,
|
||||||
duration: defaultDuration,
|
duration: timeout,
|
||||||
dir: dir,
|
dir: dir,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
89
vendor/sigs.k8s.io/kustomize/api/internal/git/repospec.go
generated
vendored
89
vendor/sigs.k8s.io/kustomize/api/internal/git/repospec.go
generated
vendored
@ -5,9 +5,11 @@ package git
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net/url"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"regexp"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/filesys"
|
"sigs.k8s.io/kustomize/api/filesys"
|
||||||
)
|
)
|
||||||
@ -44,6 +46,12 @@ type RepoSpec struct {
|
|||||||
|
|
||||||
// e.g. .git or empty in case of _git is present
|
// e.g. .git or empty in case of _git is present
|
||||||
GitSuffix string
|
GitSuffix string
|
||||||
|
|
||||||
|
// Submodules indicates whether or not to clone git submodules.
|
||||||
|
Submodules bool
|
||||||
|
|
||||||
|
// Timeout is the maximum duration allowed for execing git commands.
|
||||||
|
Timeout time.Duration
|
||||||
}
|
}
|
||||||
|
|
||||||
// CloneSpec returns a string suitable for "git clone {spec}".
|
// CloneSpec returns a string suitable for "git clone {spec}".
|
||||||
@ -70,6 +78,7 @@ func (x *RepoSpec) Cleaner(fSys filesys.FileSystem) func() error {
|
|||||||
return func() error { return fSys.RemoveAll(x.Dir.String()) }
|
return func() error { return fSys.RemoveAll(x.Dir.String()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewRepoSpecFromUrl parses git-like urls.
|
||||||
// From strings like git@github.com:someOrg/someRepo.git or
|
// From strings like git@github.com:someOrg/someRepo.git or
|
||||||
// https://github.com/someOrg/someRepo?ref=someHash, extract
|
// https://github.com/someOrg/someRepo?ref=someHash, extract
|
||||||
// the parts.
|
// the parts.
|
||||||
@ -77,7 +86,7 @@ func NewRepoSpecFromUrl(n string) (*RepoSpec, error) {
|
|||||||
if filepath.IsAbs(n) {
|
if filepath.IsAbs(n) {
|
||||||
return nil, fmt.Errorf("uri looks like abs path: %s", n)
|
return nil, fmt.Errorf("uri looks like abs path: %s", n)
|
||||||
}
|
}
|
||||||
host, orgRepo, path, gitRef, gitSuffix := parseGitUrl(n)
|
host, orgRepo, path, gitRef, gitSubmodules, suffix, gitTimeout := parseGitUrl(n)
|
||||||
if orgRepo == "" {
|
if orgRepo == "" {
|
||||||
return nil, fmt.Errorf("url lacks orgRepo: %s", n)
|
return nil, fmt.Errorf("url lacks orgRepo: %s", n)
|
||||||
}
|
}
|
||||||
@ -86,28 +95,28 @@ func NewRepoSpecFromUrl(n string) (*RepoSpec, error) {
|
|||||||
}
|
}
|
||||||
return &RepoSpec{
|
return &RepoSpec{
|
||||||
raw: n, Host: host, OrgRepo: orgRepo,
|
raw: n, Host: host, OrgRepo: orgRepo,
|
||||||
Dir: notCloned, Path: path, Ref: gitRef, GitSuffix: gitSuffix}, nil
|
Dir: notCloned, Path: path, Ref: gitRef, GitSuffix: suffix,
|
||||||
|
Submodules: gitSubmodules, Timeout: gitTimeout}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
refQuery = "?ref="
|
refQuery = "?ref="
|
||||||
refQueryRegex = "\\?(version|ref)="
|
gitSuffix = ".git"
|
||||||
gitSuffix = ".git"
|
gitDelimiter = "_git/"
|
||||||
gitDelimiter = "_git/"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// From strings like git@github.com:someOrg/someRepo.git or
|
// From strings like git@github.com:someOrg/someRepo.git or
|
||||||
// https://github.com/someOrg/someRepo?ref=someHash, extract
|
// https://github.com/someOrg/someRepo?ref=someHash, extract
|
||||||
// the parts.
|
// the parts.
|
||||||
func parseGitUrl(n string) (
|
func parseGitUrl(n string) (
|
||||||
host string, orgRepo string, path string, gitRef string, gitSuff string) {
|
host string, orgRepo string, path string, gitRef string, gitSubmodules bool, gitSuff string, gitTimeout time.Duration) {
|
||||||
|
|
||||||
if strings.Contains(n, gitDelimiter) {
|
if strings.Contains(n, gitDelimiter) {
|
||||||
index := strings.Index(n, gitDelimiter)
|
index := strings.Index(n, gitDelimiter)
|
||||||
// Adding _git/ to host
|
// Adding _git/ to host
|
||||||
host = normalizeGitHostSpec(n[:index+len(gitDelimiter)])
|
host = normalizeGitHostSpec(n[:index+len(gitDelimiter)])
|
||||||
orgRepo = strings.Split(strings.Split(n[index+len(gitDelimiter):], "/")[0], "?")[0]
|
orgRepo = strings.Split(strings.Split(n[index+len(gitDelimiter):], "/")[0], "?")[0]
|
||||||
path, gitRef = peelQuery(n[index+len(gitDelimiter)+len(orgRepo):])
|
path, gitRef, gitTimeout, gitSubmodules = peelQuery(n[index+len(gitDelimiter)+len(orgRepo):])
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
host, n = parseHostSpec(n)
|
host, n = parseHostSpec(n)
|
||||||
@ -116,35 +125,75 @@ func parseGitUrl(n string) (
|
|||||||
index := strings.Index(n, gitSuffix)
|
index := strings.Index(n, gitSuffix)
|
||||||
orgRepo = n[0:index]
|
orgRepo = n[0:index]
|
||||||
n = n[index+len(gitSuffix):]
|
n = n[index+len(gitSuffix):]
|
||||||
path, gitRef = peelQuery(n)
|
if n[0] == '/' {
|
||||||
|
n = n[1:]
|
||||||
|
}
|
||||||
|
path, gitRef, gitTimeout, gitSubmodules = peelQuery(n)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
i := strings.Index(n, "/")
|
i := strings.Index(n, "/")
|
||||||
if i < 1 {
|
if i < 1 {
|
||||||
return "", "", "", "", ""
|
path, gitRef, gitTimeout, gitSubmodules = peelQuery(n)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
j := strings.Index(n[i+1:], "/")
|
j := strings.Index(n[i+1:], "/")
|
||||||
if j >= 0 {
|
if j >= 0 {
|
||||||
j += i + 1
|
j += i + 1
|
||||||
orgRepo = n[:j]
|
orgRepo = n[:j]
|
||||||
path, gitRef = peelQuery(n[j+1:])
|
path, gitRef, gitTimeout, gitSubmodules = peelQuery(n[j+1:])
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
path = ""
|
path = ""
|
||||||
orgRepo, gitRef = peelQuery(n)
|
orgRepo, gitRef, gitTimeout, gitSubmodules = peelQuery(n)
|
||||||
return host, orgRepo, path, gitRef, gitSuff
|
return host, orgRepo, path, gitRef, gitSubmodules, gitSuff, gitTimeout
|
||||||
}
|
}
|
||||||
|
|
||||||
func peelQuery(arg string) (string, string) {
|
// Clone git submodules by default.
|
||||||
|
const defaultSubmodules = true
|
||||||
|
|
||||||
r, _ := regexp.Compile(refQueryRegex)
|
// Arbitrary, but non-infinite, timeout for running commands.
|
||||||
j := r.FindStringIndex(arg)
|
const defaultTimeout = 27 * time.Second
|
||||||
|
|
||||||
if len(j) > 0 {
|
func peelQuery(arg string) (string, string, time.Duration, bool) {
|
||||||
return arg[:j[0]], arg[j[0]+len(r.FindString(arg)):]
|
// Parse the given arg into a URL. In the event of a parse failure, return
|
||||||
|
// our defaults.
|
||||||
|
parsed, err := url.Parse(arg)
|
||||||
|
if err != nil {
|
||||||
|
return arg, "", defaultTimeout, defaultSubmodules
|
||||||
}
|
}
|
||||||
return arg, ""
|
values := parsed.Query()
|
||||||
|
|
||||||
|
// ref is the desired git ref to target. Can be specified by in a git URL
|
||||||
|
// with ?ref=<string> or ?version=<string>, although ref takes precedence.
|
||||||
|
ref := values.Get("version")
|
||||||
|
if queryValue := values.Get("ref"); queryValue != "" {
|
||||||
|
ref = queryValue
|
||||||
|
}
|
||||||
|
|
||||||
|
// depth is the desired git exec timeout. Can be specified by in a git URL
|
||||||
|
// with ?timeout=<duration>.
|
||||||
|
duration := defaultTimeout
|
||||||
|
if queryValue := values.Get("timeout"); queryValue != "" {
|
||||||
|
// Attempt to first parse as a number of integer seconds (like "61"),
|
||||||
|
// and then attempt to parse as a suffixed duration (like "61s").
|
||||||
|
if intValue, err := strconv.Atoi(queryValue); err == nil && intValue > 0 {
|
||||||
|
duration = time.Duration(intValue) * time.Second
|
||||||
|
} else if durationValue, err := time.ParseDuration(queryValue); err == nil && durationValue > 0 {
|
||||||
|
duration = durationValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// submodules indicates if git submodule cloning is desired. Can be
|
||||||
|
// specified by in a git URL with ?submodules=<bool>.
|
||||||
|
submodules := defaultSubmodules
|
||||||
|
if queryValue := values.Get("submodules"); queryValue != "" {
|
||||||
|
if boolValue, err := strconv.ParseBool(queryValue); err == nil {
|
||||||
|
submodules = boolValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return parsed.Path, ref, duration, submodules
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseHostSpec(n string) (string, string) {
|
func parseHostSpec(n string) (string, string) {
|
||||||
|
@ -6,8 +6,8 @@ package builtinconfig
|
|||||||
import (
|
import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NameBackReferences is an association between a gvk.GVK (a ReferralTarget)
|
// NameBackReferences is an association between a gvk.GVK (a ReferralTarget)
|
||||||
|
@ -24,11 +24,12 @@ func _() {
|
|||||||
_ = x[SecretGenerator-13]
|
_ = x[SecretGenerator-13]
|
||||||
_ = x[ValueAddTransformer-14]
|
_ = x[ValueAddTransformer-14]
|
||||||
_ = x[HelmChartInflationGenerator-15]
|
_ = x[HelmChartInflationGenerator-15]
|
||||||
|
_ = x[ReplacementTransformer-16]
|
||||||
}
|
}
|
||||||
|
|
||||||
const _BuiltinPluginType_name = "UnknownAnnotationsTransformerConfigMapGeneratorHashTransformerImageTagTransformerLabelTransformerLegacyOrderTransformerNamespaceTransformerPatchJson6902TransformerPatchStrategicMergeTransformerPatchTransformerPrefixSuffixTransformerReplicaCountTransformerSecretGeneratorValueAddTransformerHelmChartInflationGenerator"
|
const _BuiltinPluginType_name = "UnknownAnnotationsTransformerConfigMapGeneratorHashTransformerImageTagTransformerLabelTransformerLegacyOrderTransformerNamespaceTransformerPatchJson6902TransformerPatchStrategicMergeTransformerPatchTransformerPrefixSuffixTransformerReplicaCountTransformerSecretGeneratorValueAddTransformerHelmChartInflationGeneratorReplacementTransformer"
|
||||||
|
|
||||||
var _BuiltinPluginType_index = [...]uint16{0, 7, 29, 47, 62, 81, 97, 119, 139, 163, 193, 209, 232, 255, 270, 289, 316}
|
var _BuiltinPluginType_index = [...]uint16{0, 7, 29, 47, 62, 81, 97, 119, 139, 163, 193, 209, 232, 255, 270, 289, 316, 338}
|
||||||
|
|
||||||
func (i BuiltinPluginType) String() string {
|
func (i BuiltinPluginType) String() string {
|
||||||
if i < 0 || i >= BuiltinPluginType(len(_BuiltinPluginType_index)-1) {
|
if i < 0 || i >= BuiltinPluginType(len(_BuiltinPluginType_index)-1) {
|
||||||
|
2
vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers/builtins.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/api/internal/plugins/builtinhelpers/builtins.go
generated
vendored
@ -28,6 +28,7 @@ const (
|
|||||||
SecretGenerator
|
SecretGenerator
|
||||||
ValueAddTransformer
|
ValueAddTransformer
|
||||||
HelmChartInflationGenerator
|
HelmChartInflationGenerator
|
||||||
|
ReplacementTransformer
|
||||||
)
|
)
|
||||||
|
|
||||||
var stringToBuiltinPluginTypeMap map[string]BuiltinPluginType
|
var stringToBuiltinPluginTypeMap map[string]BuiltinPluginType
|
||||||
@ -72,6 +73,7 @@ var TransformerFactories = map[BuiltinPluginType]func() resmap.TransformerPlugin
|
|||||||
PatchStrategicMergeTransformer: builtins.NewPatchStrategicMergeTransformerPlugin,
|
PatchStrategicMergeTransformer: builtins.NewPatchStrategicMergeTransformerPlugin,
|
||||||
PatchTransformer: builtins.NewPatchTransformerPlugin,
|
PatchTransformer: builtins.NewPatchTransformerPlugin,
|
||||||
PrefixSuffixTransformer: builtins.NewPrefixSuffixTransformerPlugin,
|
PrefixSuffixTransformer: builtins.NewPrefixSuffixTransformerPlugin,
|
||||||
|
ReplacementTransformer: builtins.NewReplacementTransformerPlugin,
|
||||||
ReplicaCountTransformer: builtins.NewReplicaCountTransformerPlugin,
|
ReplicaCountTransformer: builtins.NewReplicaCountTransformerPlugin,
|
||||||
ValueAddTransformer: builtins.NewValueAddTransformerPlugin,
|
ValueAddTransformer: builtins.NewValueAddTransformerPlugin,
|
||||||
}
|
}
|
||||||
|
2
vendor/sigs.k8s.io/kustomize/api/internal/plugins/loader/loader.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/api/internal/plugins/loader/loader.go
generated
vendored
@ -20,10 +20,10 @@ import (
|
|||||||
"sigs.k8s.io/kustomize/api/internal/plugins/fnplugin"
|
"sigs.k8s.io/kustomize/api/internal/plugins/fnplugin"
|
||||||
"sigs.k8s.io/kustomize/api/internal/plugins/utils"
|
"sigs.k8s.io/kustomize/api/internal/plugins/utils"
|
||||||
"sigs.k8s.io/kustomize/api/konfig"
|
"sigs.k8s.io/kustomize/api/konfig"
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/resmap"
|
"sigs.k8s.io/kustomize/api/resmap"
|
||||||
"sigs.k8s.io/kustomize/api/resource"
|
"sigs.k8s.io/kustomize/api/resource"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Loader loads plugins using a file loader (a different loader).
|
// Loader loads plugins using a file loader (a different loader).
|
||||||
|
23
vendor/sigs.k8s.io/kustomize/api/internal/plugins/utils/utils.go
generated
vendored
23
vendor/sigs.k8s.io/kustomize/api/internal/plugins/utils/utils.go
generated
vendored
@ -137,7 +137,9 @@ func GetResMapWithIDAnnotation(rm resmap.ResMap) (resmap.ResMap, error) {
|
|||||||
}
|
}
|
||||||
annotations := r.GetAnnotations()
|
annotations := r.GetAnnotations()
|
||||||
annotations[idAnnotation] = string(idString)
|
annotations[idAnnotation] = string(idString)
|
||||||
r.SetAnnotations(annotations)
|
if err = r.SetAnnotations(annotations); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return inputRM, nil
|
return inputRM, nil
|
||||||
}
|
}
|
||||||
@ -158,7 +160,10 @@ func UpdateResMapValues(pluginName string, h *resmap.PluginHelpers, output []byt
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, r := range resources {
|
for _, r := range resources {
|
||||||
removeIDAnnotation(r) // stale--not manipulated by plugin transformers
|
// stale--not manipulated by plugin transformers
|
||||||
|
if err = removeIDAnnotation(r); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// Add to the new map, checking for duplicates
|
// Add to the new map, checking for duplicates
|
||||||
if err := newMap.Append(r); err != nil {
|
if err := newMap.Append(r); err != nil {
|
||||||
@ -175,7 +180,7 @@ func UpdateResMapValues(pluginName string, h *resmap.PluginHelpers, output []byt
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if oldIdx != -1 {
|
if oldIdx != -1 {
|
||||||
rm.GetByIndex(oldIdx).ResetPrimaryData(r)
|
rm.GetByIndex(oldIdx).ResetRNode(r)
|
||||||
} else {
|
} else {
|
||||||
if err := rm.Append(r); err != nil {
|
if err := rm.Append(r); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -194,14 +199,11 @@ func UpdateResMapValues(pluginName string, h *resmap.PluginHelpers, output []byt
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func removeIDAnnotation(r *resource.Resource) {
|
func removeIDAnnotation(r *resource.Resource) error {
|
||||||
// remove the annotation set by Kustomize to track the resource
|
// remove the annotation set by Kustomize to track the resource
|
||||||
annotations := r.GetAnnotations()
|
annotations := r.GetAnnotations()
|
||||||
delete(annotations, idAnnotation)
|
delete(annotations, idAnnotation)
|
||||||
if len(annotations) == 0 {
|
return r.SetAnnotations(annotations)
|
||||||
annotations = nil
|
|
||||||
}
|
|
||||||
r.SetAnnotations(annotations)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// UpdateResourceOptions updates the generator options for each resource in the
|
// UpdateResourceOptions updates the generator options for each resource in the
|
||||||
@ -224,10 +226,9 @@ func UpdateResourceOptions(rm resmap.ResMap) (resmap.ResMap, error) {
|
|||||||
}
|
}
|
||||||
delete(annotations, HashAnnotation)
|
delete(annotations, HashAnnotation)
|
||||||
delete(annotations, BehaviorAnnotation)
|
delete(annotations, BehaviorAnnotation)
|
||||||
if len(annotations) == 0 {
|
if err := r.SetAnnotations(annotations); err != nil {
|
||||||
annotations = nil
|
return nil, err
|
||||||
}
|
}
|
||||||
r.SetAnnotations(annotations)
|
|
||||||
r.SetOptions(types.NewGenArgs(
|
r.SetOptions(types.NewGenArgs(
|
||||||
&types.GeneratorArgs{
|
&types.GeneratorArgs{
|
||||||
Behavior: behavior,
|
Behavior: behavior,
|
||||||
|
17
vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget.go
generated
vendored
17
vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget.go
generated
vendored
@ -303,16 +303,18 @@ func (kt *KustTarget) runValidators(ra *accumulator.ResAccumulator) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
new := ra.ResMap().DeepCopy()
|
newMap := ra.ResMap().DeepCopy()
|
||||||
kt.removeValidatedByLabel(new)
|
if err = kt.removeValidatedByLabel(newMap); err != nil {
|
||||||
if err = orignal.ErrorIfNotEqualSets(new); err != nil {
|
return err
|
||||||
|
}
|
||||||
|
if err = orignal.ErrorIfNotEqualSets(newMap); err != nil {
|
||||||
return fmt.Errorf("validator shouldn't modify the resource map: %v", err)
|
return fmt.Errorf("validator shouldn't modify the resource map: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (kt *KustTarget) removeValidatedByLabel(rm resmap.ResMap) {
|
func (kt *KustTarget) removeValidatedByLabel(rm resmap.ResMap) error {
|
||||||
resources := rm.Resources()
|
resources := rm.Resources()
|
||||||
for _, r := range resources {
|
for _, r := range resources {
|
||||||
labels := r.GetLabels()
|
labels := r.GetLabels()
|
||||||
@ -320,12 +322,11 @@ func (kt *KustTarget) removeValidatedByLabel(rm resmap.ResMap) {
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
delete(labels, konfig.ValidatedByLabelKey)
|
delete(labels, konfig.ValidatedByLabelKey)
|
||||||
if len(labels) == 0 {
|
if err := r.SetLabels(labels); err != nil {
|
||||||
r.SetLabels(nil)
|
return err
|
||||||
} else {
|
|
||||||
r.SetLabels(labels)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// accumulateResources fills the given resourceAccumulator
|
// accumulateResources fills the given resourceAccumulator
|
||||||
|
16
vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget_configplugin.go
generated
vendored
16
vendor/sigs.k8s.io/kustomize/api/internal/target/kusttarget_configplugin.go
generated
vendored
@ -57,6 +57,7 @@ func (kt *KustTarget) configureBuiltinTransformers(
|
|||||||
builtinhelpers.PatchJson6902Transformer,
|
builtinhelpers.PatchJson6902Transformer,
|
||||||
builtinhelpers.ReplicaCountTransformer,
|
builtinhelpers.ReplicaCountTransformer,
|
||||||
builtinhelpers.ImageTagTransformer,
|
builtinhelpers.ImageTagTransformer,
|
||||||
|
builtinhelpers.ReplacementTransformer,
|
||||||
} {
|
} {
|
||||||
r, err := transformerConfigurators[bpt](
|
r, err := transformerConfigurators[bpt](
|
||||||
kt, bpt, builtinhelpers.TransformerFactories[bpt], tc)
|
kt, bpt, builtinhelpers.TransformerFactories[bpt], tc)
|
||||||
@ -323,6 +324,21 @@ var transformerConfigurators = map[builtinhelpers.BuiltinPluginType]func(
|
|||||||
}
|
}
|
||||||
return
|
return
|
||||||
},
|
},
|
||||||
|
builtinhelpers.ReplacementTransformer: func(
|
||||||
|
kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, _ *builtinconfig.TransformerConfig) (
|
||||||
|
result []resmap.Transformer, err error) {
|
||||||
|
var c struct {
|
||||||
|
Replacements []types.ReplacementField
|
||||||
|
}
|
||||||
|
c.Replacements = kt.kustomization.Replacements
|
||||||
|
p := f()
|
||||||
|
err = kt.configureBuiltinPlugin(p, c, bpt)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
result = append(result, p)
|
||||||
|
return result, nil
|
||||||
|
},
|
||||||
builtinhelpers.ReplicaCountTransformer: func(
|
builtinhelpers.ReplicaCountTransformer: func(
|
||||||
kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, tc *builtinconfig.TransformerConfig) (
|
kt *KustTarget, bpt builtinhelpers.BuiltinPluginType, f tFactory, tc *builtinconfig.TransformerConfig) (
|
||||||
result []resmap.Transformer, err error) {
|
result []resmap.Transformer, err error) {
|
||||||
|
2
vendor/sigs.k8s.io/kustomize/api/resmap/idslice.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/api/resmap/idslice.go
generated
vendored
@ -19,7 +19,7 @@ package resmap
|
|||||||
import (
|
import (
|
||||||
"sort"
|
"sort"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
)
|
)
|
||||||
|
|
||||||
// IdSlice implements the sort interface.
|
// IdSlice implements the sort interface.
|
||||||
|
22
vendor/sigs.k8s.io/kustomize/api/resmap/resmap.go
generated
vendored
22
vendor/sigs.k8s.io/kustomize/api/resmap/resmap.go
generated
vendored
@ -7,9 +7,10 @@ package resmap
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"sigs.k8s.io/kustomize/api/ifc"
|
"sigs.k8s.io/kustomize/api/ifc"
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/resource"
|
"sigs.k8s.io/kustomize/api/resource"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/kio"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
"sigs.k8s.io/kustomize/kyaml/yaml"
|
"sigs.k8s.io/kustomize/kyaml/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -168,21 +169,20 @@ type ResMap interface {
|
|||||||
|
|
||||||
// GroupedByCurrentNamespace returns a map of namespace
|
// GroupedByCurrentNamespace returns a map of namespace
|
||||||
// to a slice of *Resource in that namespace.
|
// to a slice of *Resource in that namespace.
|
||||||
// Resources for whom IsNamespaceableKind is false are
|
// Cluster-scoped Resources are not included (see ClusterScoped).
|
||||||
// are not included at all (see NonNamespaceable).
|
|
||||||
// Resources with an empty namespace are placed
|
// Resources with an empty namespace are placed
|
||||||
// in the resid.DefaultNamespace entry.
|
// in the resid.DefaultNamespace entry.
|
||||||
GroupedByCurrentNamespace() map[string][]*resource.Resource
|
GroupedByCurrentNamespace() map[string][]*resource.Resource
|
||||||
|
|
||||||
// GroupByOrginalNamespace performs as GroupByNamespace
|
// GroupedByOriginalNamespace performs as GroupByNamespace
|
||||||
// but use the original namespace instead of the current
|
// but use the original namespace instead of the current
|
||||||
// one to perform the grouping.
|
// one to perform the grouping.
|
||||||
GroupedByOriginalNamespace() map[string][]*resource.Resource
|
GroupedByOriginalNamespace() map[string][]*resource.Resource
|
||||||
|
|
||||||
// NonNamespaceable returns a slice of resources that
|
// ClusterScoped returns a slice of resources that
|
||||||
// cannot be placed in a namespace, e.g.
|
// cannot be placed in a namespace, e.g.
|
||||||
// Node, ClusterRole, Namespace itself, etc.
|
// Node, ClusterRole, Namespace itself, etc.
|
||||||
NonNamespaceable() []*resource.Resource
|
ClusterScoped() []*resource.Resource
|
||||||
|
|
||||||
// AllIds returns all CurrentIds.
|
// AllIds returns all CurrentIds.
|
||||||
AllIds() []resid.ResId
|
AllIds() []resid.ResId
|
||||||
@ -254,4 +254,14 @@ type ResMap interface {
|
|||||||
|
|
||||||
// RemoveBuildAnnotations removes annotations created by the build process.
|
// RemoveBuildAnnotations removes annotations created by the build process.
|
||||||
RemoveBuildAnnotations()
|
RemoveBuildAnnotations()
|
||||||
|
|
||||||
|
// ApplyFilter applies an RNode filter to all Resources in the ResMap.
|
||||||
|
// TODO: Send/recover ancillary Resource data to/from subprocesses.
|
||||||
|
// Assure that the ancillary data in Resource (everything not in the RNode)
|
||||||
|
// is sent to and re-captured from transformer subprocess (as the process
|
||||||
|
// might edit that information). One way to do this would be to solely use
|
||||||
|
// RNode metadata annotation reading and writing instead of using Resource
|
||||||
|
// struct data members, i.e. the Resource struct is replaced by RNode
|
||||||
|
// and use of (slow) k8s metadata annotations inside the RNode.
|
||||||
|
ApplyFilter(f kio.Filter) error
|
||||||
}
|
}
|
||||||
|
72
vendor/sigs.k8s.io/kustomize/api/resmap/reswrangler.go
generated
vendored
72
vendor/sigs.k8s.io/kustomize/api/resmap/reswrangler.go
generated
vendored
@ -6,11 +6,13 @@ package resmap
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"reflect"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/resource"
|
"sigs.k8s.io/kustomize/api/resource"
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/kio"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
kyaml "sigs.k8s.io/kustomize/kyaml/yaml"
|
kyaml "sigs.k8s.io/kustomize/kyaml/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -41,7 +43,7 @@ func (m *resWrangler) Clear() {
|
|||||||
func (m *resWrangler) DropEmpties() {
|
func (m *resWrangler) DropEmpties() {
|
||||||
var rList []*resource.Resource
|
var rList []*resource.Resource
|
||||||
for _, r := range m.rList {
|
for _, r := range m.rList {
|
||||||
if !r.IsEmpty() {
|
if !r.IsNilOrEmpty() {
|
||||||
rList = append(rList, r)
|
rList = append(rList, r)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -228,18 +230,18 @@ func demandOneMatch(
|
|||||||
if len(r) > 1 {
|
if len(r) > 1 {
|
||||||
return nil, fmt.Errorf("multiple matches for %s %s", s, id)
|
return nil, fmt.Errorf("multiple matches for %s %s", s, id)
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("no matches for %sId %s", s, id)
|
return nil, fmt.Errorf("no matches for %s %s", s, id)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GroupedByCurrentNamespace implements ResMap.GroupByCurrentNamespace
|
// GroupedByCurrentNamespace implements ResMap.
|
||||||
func (m *resWrangler) GroupedByCurrentNamespace() map[string][]*resource.Resource {
|
func (m *resWrangler) GroupedByCurrentNamespace() map[string][]*resource.Resource {
|
||||||
items := m.groupedByCurrentNamespace()
|
items := m.groupedByCurrentNamespace()
|
||||||
delete(items, resid.TotallyNotANamespace)
|
delete(items, resid.TotallyNotANamespace)
|
||||||
return items
|
return items
|
||||||
}
|
}
|
||||||
|
|
||||||
// NonNamespaceable implements ResMap.NonNamespaceable
|
// ClusterScoped implements ResMap.
|
||||||
func (m *resWrangler) NonNamespaceable() []*resource.Resource {
|
func (m *resWrangler) ClusterScoped() []*resource.Resource {
|
||||||
return m.groupedByCurrentNamespace()[resid.TotallyNotANamespace]
|
return m.groupedByCurrentNamespace()[resid.TotallyNotANamespace]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -255,7 +257,7 @@ func (m *resWrangler) groupedByCurrentNamespace() map[string][]*resource.Resourc
|
|||||||
return byNamespace
|
return byNamespace
|
||||||
}
|
}
|
||||||
|
|
||||||
// GroupedByNamespace implements ResMap.GroupByOrginalNamespace
|
// GroupedByOriginalNamespace implements ResMap.
|
||||||
func (m *resWrangler) GroupedByOriginalNamespace() map[string][]*resource.Resource {
|
func (m *resWrangler) GroupedByOriginalNamespace() map[string][]*resource.Resource {
|
||||||
items := m.groupedByOriginalNamespace()
|
items := m.groupedByOriginalNamespace()
|
||||||
delete(items, resid.TotallyNotANamespace)
|
delete(items, resid.TotallyNotANamespace)
|
||||||
@ -323,7 +325,7 @@ func (m *resWrangler) ErrorIfNotEqualSets(other ResMap) error {
|
|||||||
"id in self matches %d in other; id: %s", len(others), id)
|
"id in self matches %d in other; id: %s", len(others), id)
|
||||||
}
|
}
|
||||||
r2 := others[0]
|
r2 := others[0]
|
||||||
if !r1.NodeEqual(r2) {
|
if !reflect.DeepEqual(r1.RNode, r2.RNode) {
|
||||||
return fmt.Errorf(
|
return fmt.Errorf(
|
||||||
"nodes unequal: \n -- %s,\n -- %s\n\n--\n%#v\n------\n%#v\n",
|
"nodes unequal: \n -- %s,\n -- %s\n\n--\n%#v\n------\n%#v\n",
|
||||||
r1, r2, r1, r2)
|
r1, r2, r1, r2)
|
||||||
@ -336,7 +338,7 @@ func (m *resWrangler) ErrorIfNotEqualSets(other ResMap) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ErrorIfNotEqualList implements ResMap.
|
// ErrorIfNotEqualLists implements ResMap.
|
||||||
func (m *resWrangler) ErrorIfNotEqualLists(other ResMap) error {
|
func (m *resWrangler) ErrorIfNotEqualLists(other ResMap) error {
|
||||||
m2, ok := other.(*resWrangler)
|
m2, ok := other.(*resWrangler)
|
||||||
if !ok {
|
if !ok {
|
||||||
@ -388,7 +390,7 @@ func (m *resWrangler) makeCopy(copier resCopier) ResMap {
|
|||||||
func (m *resWrangler) SubsetThatCouldBeReferencedByResource(
|
func (m *resWrangler) SubsetThatCouldBeReferencedByResource(
|
||||||
referrer *resource.Resource) ResMap {
|
referrer *resource.Resource) ResMap {
|
||||||
referrerId := referrer.CurId()
|
referrerId := referrer.CurId()
|
||||||
if !referrerId.IsNamespaceableKind() {
|
if referrerId.IsClusterScoped() {
|
||||||
// A cluster scoped resource can refer to anything.
|
// A cluster scoped resource can refer to anything.
|
||||||
return m
|
return m
|
||||||
}
|
}
|
||||||
@ -396,7 +398,7 @@ func (m *resWrangler) SubsetThatCouldBeReferencedByResource(
|
|||||||
roleBindingNamespaces := getNamespacesForRoleBinding(referrer)
|
roleBindingNamespaces := getNamespacesForRoleBinding(referrer)
|
||||||
for _, possibleTarget := range m.rList {
|
for _, possibleTarget := range m.rList {
|
||||||
id := possibleTarget.CurId()
|
id := possibleTarget.CurId()
|
||||||
if !id.IsNamespaceableKind() {
|
if id.IsClusterScoped() {
|
||||||
// A cluster-scoped resource can be referred to by anything.
|
// A cluster-scoped resource can be referred to by anything.
|
||||||
result.append(possibleTarget)
|
result.append(possibleTarget)
|
||||||
continue
|
continue
|
||||||
@ -409,8 +411,7 @@ func (m *resWrangler) SubsetThatCouldBeReferencedByResource(
|
|||||||
// The two objects are namespaced (not cluster-scoped), AND
|
// The two objects are namespaced (not cluster-scoped), AND
|
||||||
// are in different namespaces.
|
// are in different namespaces.
|
||||||
// There's still a chance they can refer to each other.
|
// There's still a chance they can refer to each other.
|
||||||
ns := possibleTarget.GetNamespace()
|
if roleBindingNamespaces[possibleTarget.GetNamespace()] {
|
||||||
if roleBindingNamespaces[ns] {
|
|
||||||
result.append(possibleTarget)
|
result.append(possibleTarget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -424,6 +425,7 @@ func getNamespacesForRoleBinding(r *resource.Resource) map[string]bool {
|
|||||||
if r.GetKind() != "RoleBinding" {
|
if r.GetKind() != "RoleBinding" {
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
//nolint staticcheck
|
||||||
subjects, err := r.GetSlice("subjects")
|
subjects, err := r.GetSlice("subjects")
|
||||||
if err != nil || subjects == nil {
|
if err != nil || subjects == nil {
|
||||||
return result
|
return result
|
||||||
@ -586,7 +588,7 @@ func (m *resWrangler) Select(s types.Selector) ([]*resource.Resource, error) {
|
|||||||
func (m *resWrangler) ToRNodeSlice() []*kyaml.RNode {
|
func (m *resWrangler) ToRNodeSlice() []*kyaml.RNode {
|
||||||
result := make([]*kyaml.RNode, len(m.rList))
|
result := make([]*kyaml.RNode, len(m.rList))
|
||||||
for i := range m.rList {
|
for i := range m.rList {
|
||||||
result[i] = m.rList[i].AsRNode()
|
result[i] = m.rList[i].Copy()
|
||||||
}
|
}
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
@ -605,7 +607,7 @@ func (m *resWrangler) ApplySmPatch(
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if !res.IsEmpty() {
|
if !res.IsNilOrEmpty() {
|
||||||
list = append(list, res)
|
list = append(list, res)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -618,3 +620,43 @@ func (m *resWrangler) RemoveBuildAnnotations() {
|
|||||||
r.RemoveBuildAnnotations()
|
r.RemoveBuildAnnotations()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ApplyFilter implements ResMap.
|
||||||
|
func (m *resWrangler) ApplyFilter(f kio.Filter) error {
|
||||||
|
reverseLookup := make(map[*kyaml.RNode]*resource.Resource, len(m.rList))
|
||||||
|
nodes := make([]*kyaml.RNode, len(m.rList))
|
||||||
|
for i, r := range m.rList {
|
||||||
|
ptr := &(r.RNode)
|
||||||
|
nodes[i] = ptr
|
||||||
|
reverseLookup[ptr] = r
|
||||||
|
}
|
||||||
|
// The filter can modify nodes, but also delete and create them.
|
||||||
|
// The filtered list might be smaller or larger than the nodes list.
|
||||||
|
filtered, err := f.Filter(nodes)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
// Rebuild the resmap from the filtered RNodes.
|
||||||
|
var nRList []*resource.Resource
|
||||||
|
for _, rn := range filtered {
|
||||||
|
if rn.IsNilOrEmpty() {
|
||||||
|
// A node might make it through the filter as an object,
|
||||||
|
// but still be empty. Drop such entries.
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
res, ok := reverseLookup[rn]
|
||||||
|
if !ok {
|
||||||
|
// A node was created; make a Resource to wrap it.
|
||||||
|
res = &resource.Resource{
|
||||||
|
RNode: *rn,
|
||||||
|
// Leave remaining fields empty.
|
||||||
|
// At at time of writing, seeking to eliminate those fields.
|
||||||
|
// Alternatively, could just return error on creation attempt
|
||||||
|
// until remaining fields eliminated.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
nRList = append(nRList, res)
|
||||||
|
}
|
||||||
|
m.rList = nRList
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
4
vendor/sigs.k8s.io/kustomize/api/resource/factory.go
generated
vendored
4
vendor/sigs.k8s.io/kustomize/api/resource/factory.go
generated
vendored
@ -13,9 +13,9 @@ import (
|
|||||||
"sigs.k8s.io/kustomize/api/internal/generators"
|
"sigs.k8s.io/kustomize/api/internal/generators"
|
||||||
"sigs.k8s.io/kustomize/api/internal/kusterr"
|
"sigs.k8s.io/kustomize/api/internal/kusterr"
|
||||||
"sigs.k8s.io/kustomize/api/konfig"
|
"sigs.k8s.io/kustomize/api/konfig"
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
"sigs.k8s.io/kustomize/kyaml/kio"
|
"sigs.k8s.io/kustomize/kyaml/kio"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
"sigs.k8s.io/kustomize/kyaml/yaml"
|
"sigs.k8s.io/kustomize/kyaml/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ func (rf *Factory) makeOne(rn *yaml.RNode, o *types.GenArgs) *Resource {
|
|||||||
if o == nil {
|
if o == nil {
|
||||||
o = types.NewGenArgs(nil)
|
o = types.NewGenArgs(nil)
|
||||||
}
|
}
|
||||||
return &Resource{node: rn, options: o}
|
return &Resource{RNode: *rn, options: o}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SliceFromPatches returns a slice of resources given a patch path
|
// SliceFromPatches returns a slice of resources given a patch path
|
||||||
|
2
vendor/sigs.k8s.io/kustomize/api/resource/idset.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/api/resource/idset.go
generated
vendored
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
package resource
|
package resource
|
||||||
|
|
||||||
import "sigs.k8s.io/kustomize/api/resid"
|
import "sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
|
|
||||||
type IdSet struct {
|
type IdSet struct {
|
||||||
ids map[resid.ResId]bool
|
ids map[resid.ResId]bool
|
||||||
|
237
vendor/sigs.k8s.io/kustomize/api/resource/resource.go
generated
vendored
237
vendor/sigs.k8s.io/kustomize/api/resource/resource.go
generated
vendored
@ -7,15 +7,14 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"reflect"
|
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/filters/patchstrategicmerge"
|
"sigs.k8s.io/kustomize/api/filters/patchstrategicmerge"
|
||||||
"sigs.k8s.io/kustomize/api/ifc"
|
"sigs.k8s.io/kustomize/api/ifc"
|
||||||
"sigs.k8s.io/kustomize/api/konfig"
|
"sigs.k8s.io/kustomize/api/konfig"
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
|
||||||
"sigs.k8s.io/kustomize/api/types"
|
"sigs.k8s.io/kustomize/api/types"
|
||||||
"sigs.k8s.io/kustomize/kyaml/kio"
|
"sigs.k8s.io/kustomize/kyaml/kio"
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
kyaml "sigs.k8s.io/kustomize/kyaml/yaml"
|
kyaml "sigs.k8s.io/kustomize/kyaml/yaml"
|
||||||
"sigs.k8s.io/yaml"
|
"sigs.k8s.io/yaml"
|
||||||
)
|
)
|
||||||
@ -23,8 +22,7 @@ import (
|
|||||||
// Resource is an RNode, representing a Kubernetes Resource Model object,
|
// Resource is an RNode, representing a Kubernetes Resource Model object,
|
||||||
// paired with metadata used by kustomize.
|
// paired with metadata used by kustomize.
|
||||||
type Resource struct {
|
type Resource struct {
|
||||||
// TODO: Inline RNode, dropping complexity. Resource is just a decorator.
|
kyaml.RNode
|
||||||
node *kyaml.RNode
|
|
||||||
options *types.GenArgs
|
options *types.GenArgs
|
||||||
refBy []resid.ResId
|
refBy []resid.ResId
|
||||||
refVarNames []string
|
refVarNames []string
|
||||||
@ -41,6 +39,7 @@ const (
|
|||||||
// and kinds of their targets
|
// and kinds of their targets
|
||||||
buildAnnotationAllowNameChange = konfig.ConfigAnnoDomain + "/allowNameChange"
|
buildAnnotationAllowNameChange = konfig.ConfigAnnoDomain + "/allowNameChange"
|
||||||
buildAnnotationAllowKindChange = konfig.ConfigAnnoDomain + "/allowKindChange"
|
buildAnnotationAllowKindChange = konfig.ConfigAnnoDomain + "/allowKindChange"
|
||||||
|
allowed = "allowed"
|
||||||
)
|
)
|
||||||
|
|
||||||
var buildAnnotations = []string{
|
var buildAnnotations = []string{
|
||||||
@ -53,143 +52,21 @@ var buildAnnotations = []string{
|
|||||||
buildAnnotationAllowKindChange,
|
buildAnnotationAllowKindChange,
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) AsRNode() *kyaml.RNode {
|
func (r *Resource) ResetRNode(incoming *Resource) {
|
||||||
return r.node.Copy()
|
r.RNode = *incoming.Copy()
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) ResetPrimaryData(incoming *Resource) {
|
|
||||||
r.node = incoming.node.Copy()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) GetAnnotations() map[string]string {
|
|
||||||
annotations, err := r.node.GetAnnotations()
|
|
||||||
if err != nil || annotations == nil {
|
|
||||||
return make(map[string]string)
|
|
||||||
}
|
|
||||||
return annotations
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) GetFieldValue(f string) (interface{}, error) {
|
|
||||||
//nolint:staticcheck
|
|
||||||
return r.node.GetFieldValue(f)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) GetDataMap() map[string]string {
|
|
||||||
return r.node.GetDataMap()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) GetBinaryDataMap() map[string]string {
|
|
||||||
return r.node.GetBinaryDataMap()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) GetGvk() resid.Gvk {
|
func (r *Resource) GetGvk() resid.Gvk {
|
||||||
meta, err := r.node.GetMeta()
|
return resid.GvkFromNode(&r.RNode)
|
||||||
if err != nil {
|
|
||||||
return resid.GvkFromString("")
|
|
||||||
}
|
|
||||||
g, v := resid.ParseGroupVersion(meta.APIVersion)
|
|
||||||
return resid.Gvk{Group: g, Version: v, Kind: meta.Kind}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) Hash(h ifc.KustHasher) (string, error) {
|
func (r *Resource) Hash(h ifc.KustHasher) (string, error) {
|
||||||
return h.Hash(r.node)
|
return h.Hash(&r.RNode)
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) GetKind() string {
|
|
||||||
return r.node.GetKind()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) GetLabels() map[string]string {
|
|
||||||
l, err := r.node.GetLabels()
|
|
||||||
if err != nil {
|
|
||||||
return map[string]string{}
|
|
||||||
}
|
|
||||||
return l
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) GetName() string {
|
|
||||||
return r.node.GetName()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) GetSlice(p string) ([]interface{}, error) {
|
|
||||||
//nolint:staticcheck
|
|
||||||
return r.node.GetSlice(p)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) GetString(p string) (string, error) {
|
|
||||||
//nolint:staticcheck
|
|
||||||
return r.node.GetString(p)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) IsEmpty() bool {
|
|
||||||
return r.node.IsNilOrEmpty()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) Map() (map[string]interface{}, error) {
|
|
||||||
return r.node.Map()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) MarshalJSON() ([]byte, error) {
|
|
||||||
return r.node.MarshalJSON()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) MatchesLabelSelector(selector string) (bool, error) {
|
|
||||||
return r.node.MatchesLabelSelector(selector)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) MatchesAnnotationSelector(selector string) (bool, error) {
|
|
||||||
return r.node.MatchesAnnotationSelector(selector)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) SetAnnotations(m map[string]string) {
|
|
||||||
if len(m) == 0 {
|
|
||||||
// Force field erasure.
|
|
||||||
r.node.SetAnnotations(nil)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
r.node.SetAnnotations(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) SetDataMap(m map[string]string) {
|
|
||||||
r.node.SetDataMap(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) SetBinaryDataMap(m map[string]string) {
|
|
||||||
r.node.SetBinaryDataMap(m)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) SetGvk(gvk resid.Gvk) {
|
func (r *Resource) SetGvk(gvk resid.Gvk) {
|
||||||
r.node.SetMapField(
|
r.SetKind(gvk.Kind)
|
||||||
kyaml.NewScalarRNode(gvk.Kind), kyaml.KindField)
|
r.SetApiVersion(gvk.ApiVersion())
|
||||||
r.node.SetMapField(
|
|
||||||
kyaml.NewScalarRNode(gvk.ApiVersion()), kyaml.APIVersionField)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) SetLabels(m map[string]string) {
|
|
||||||
if len(m) == 0 {
|
|
||||||
// Force field erasure.
|
|
||||||
r.node.SetLabels(nil)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
r.node.SetLabels(m)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) SetName(n string) {
|
|
||||||
r.node.SetName(n)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) SetNamespace(n string) {
|
|
||||||
r.node.SetNamespace(n)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) SetKind(k string) {
|
|
||||||
gvk := r.GetGvk()
|
|
||||||
gvk.Kind = k
|
|
||||||
r.SetGvk(gvk)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) UnmarshalJSON(s []byte) error {
|
|
||||||
return r.node.UnmarshalJSON(s)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ResCtx is an interface describing the contextual added
|
// ResCtx is an interface describing the contextual added
|
||||||
@ -209,24 +86,36 @@ type ResCtxMatcher func(ResCtx) bool
|
|||||||
// DeepCopy returns a new copy of resource
|
// DeepCopy returns a new copy of resource
|
||||||
func (r *Resource) DeepCopy() *Resource {
|
func (r *Resource) DeepCopy() *Resource {
|
||||||
rc := &Resource{
|
rc := &Resource{
|
||||||
node: r.node.Copy(),
|
RNode: *r.Copy(),
|
||||||
}
|
}
|
||||||
rc.copyOtherFields(r)
|
rc.copyKustomizeSpecificFields(r)
|
||||||
return rc
|
return rc
|
||||||
}
|
}
|
||||||
|
|
||||||
// CopyMergeMetaDataFields copies everything but the non-metadata in
|
// CopyMergeMetaDataFieldsFrom copies everything but the non-metadata in
|
||||||
// the resource.
|
// the resource.
|
||||||
func (r *Resource) CopyMergeMetaDataFieldsFrom(other *Resource) {
|
// TODO: move to RNode, use GetMeta to improve performance.
|
||||||
r.SetLabels(mergeStringMaps(other.GetLabels(), r.GetLabels()))
|
// Must remove the kustomize bit at the end.
|
||||||
r.SetAnnotations(
|
func (r *Resource) CopyMergeMetaDataFieldsFrom(other *Resource) error {
|
||||||
mergeStringMaps(other.GetAnnotations(), r.GetAnnotations()))
|
if err := r.SetLabels(
|
||||||
r.SetName(other.GetName())
|
mergeStringMaps(other.GetLabels(), r.GetLabels())); err != nil {
|
||||||
r.SetNamespace(other.GetNamespace())
|
return fmt.Errorf("copyMerge cannot set labels - %w", err)
|
||||||
r.copyOtherFields(other)
|
}
|
||||||
|
if err := r.SetAnnotations(
|
||||||
|
mergeStringMaps(other.GetAnnotations(), r.GetAnnotations())); err != nil {
|
||||||
|
return fmt.Errorf("copyMerge cannot set annotations - %w", err)
|
||||||
|
}
|
||||||
|
if err := r.SetName(other.GetName()); err != nil {
|
||||||
|
return fmt.Errorf("copyMerge cannot set name - %w", err)
|
||||||
|
}
|
||||||
|
if err := r.SetNamespace(other.GetNamespace()); err != nil {
|
||||||
|
return fmt.Errorf("copyMerge cannot set namespace - %w", err)
|
||||||
|
}
|
||||||
|
r.copyKustomizeSpecificFields(other)
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) copyOtherFields(other *Resource) {
|
func (r *Resource) copyKustomizeSpecificFields(other *Resource) {
|
||||||
r.options = other.options
|
r.options = other.options
|
||||||
r.refBy = other.copyRefBy()
|
r.refBy = other.copyRefBy()
|
||||||
r.refVarNames = copyStringSlice(other.refVarNames)
|
r.refVarNames = copyStringSlice(other.refVarNames)
|
||||||
@ -282,12 +171,6 @@ func (r *Resource) ReferencesEqual(other *Resource) bool {
|
|||||||
return len(setSelf) == len(setOther)
|
return len(setSelf) == len(setOther)
|
||||||
}
|
}
|
||||||
|
|
||||||
// NodeEqual returns true if the resource's nodes are
|
|
||||||
// equal, ignoring ancillary information like genargs, refby, etc.
|
|
||||||
func (r *Resource) NodeEqual(o *Resource) bool {
|
|
||||||
return reflect.DeepEqual(r.node, o.node)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (r *Resource) copyRefBy() []resid.ResId {
|
func (r *Resource) copyRefBy() []resid.ResId {
|
||||||
if r.refBy == nil {
|
if r.refBy == nil {
|
||||||
return nil
|
return nil
|
||||||
@ -326,7 +209,9 @@ func (r *Resource) appendCsvAnnotation(name, value string) {
|
|||||||
} else {
|
} else {
|
||||||
annotations[name] = value
|
annotations[name] = value
|
||||||
}
|
}
|
||||||
r.SetAnnotations(annotations)
|
if err := r.SetAnnotations(annotations); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func SameEndingSubarray(shortest, longest []string) bool {
|
func SameEndingSubarray(shortest, longest []string) bool {
|
||||||
@ -381,7 +266,9 @@ func (r *Resource) RemoveBuildAnnotations() {
|
|||||||
for _, a := range buildAnnotations {
|
for _, a := range buildAnnotations {
|
||||||
delete(annotations, a)
|
delete(annotations, a)
|
||||||
}
|
}
|
||||||
r.SetAnnotations(annotations)
|
if err := r.SetAnnotations(annotations); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) setPreviousId(ns string, n string, k string) *Resource {
|
func (r *Resource) setPreviousId(ns string, n string, k string) *Resource {
|
||||||
@ -391,32 +278,34 @@ func (r *Resource) setPreviousId(ns string, n string, k string) *Resource {
|
|||||||
return r
|
return r
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) SetAllowNameChange(value string) {
|
// AllowNameChange allows name changes to the resource.
|
||||||
|
func (r *Resource) AllowNameChange() {
|
||||||
annotations := r.GetAnnotations()
|
annotations := r.GetAnnotations()
|
||||||
annotations[buildAnnotationAllowNameChange] = value
|
annotations[buildAnnotationAllowNameChange] = allowed
|
||||||
r.SetAnnotations(annotations)
|
if err := r.SetAnnotations(annotations); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) NameChangeAllowed() bool {
|
func (r *Resource) NameChangeAllowed() bool {
|
||||||
annotations := r.GetAnnotations()
|
annotations := r.GetAnnotations()
|
||||||
if allowed, set := annotations[buildAnnotationAllowNameChange]; set && allowed == "true" {
|
v, ok := annotations[buildAnnotationAllowNameChange]
|
||||||
return true
|
return ok && v == allowed
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) SetAllowKindChange(value string) {
|
// AllowKindChange allows kind changes to the resource.
|
||||||
|
func (r *Resource) AllowKindChange() {
|
||||||
annotations := r.GetAnnotations()
|
annotations := r.GetAnnotations()
|
||||||
annotations[buildAnnotationAllowKindChange] = value
|
annotations[buildAnnotationAllowKindChange] = allowed
|
||||||
r.SetAnnotations(annotations)
|
if err := r.SetAnnotations(annotations); err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) KindChangeAllowed() bool {
|
func (r *Resource) KindChangeAllowed() bool {
|
||||||
annotations := r.GetAnnotations()
|
annotations := r.GetAnnotations()
|
||||||
if allowed, set := annotations[buildAnnotationAllowKindChange]; set && allowed == "true" {
|
v, ok := annotations[buildAnnotationAllowKindChange]
|
||||||
return true
|
return ok && v == allowed
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// String returns resource as JSON.
|
// String returns resource as JSON.
|
||||||
@ -463,13 +352,6 @@ func (r *Resource) NeedHashSuffix() bool {
|
|||||||
return r.options != nil && r.options.ShouldAddHashSuffixToName()
|
return r.options != nil && r.options.ShouldAddHashSuffixToName()
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNamespace returns the namespace the resource thinks it's in.
|
|
||||||
func (r *Resource) GetNamespace() string {
|
|
||||||
namespace, _ := r.GetString("metadata.namespace")
|
|
||||||
// if err, namespace is empty, so no need to check.
|
|
||||||
return namespace
|
|
||||||
}
|
|
||||||
|
|
||||||
// OrgId returns the original, immutable ResId for the resource.
|
// OrgId returns the original, immutable ResId for the resource.
|
||||||
// This doesn't have to be unique in a ResMap.
|
// This doesn't have to be unique in a ResMap.
|
||||||
func (r *Resource) OrgId() resid.ResId {
|
func (r *Resource) OrgId() resid.ResId {
|
||||||
@ -550,11 +432,11 @@ func (r *Resource) ApplySmPatch(patch *Resource) error {
|
|||||||
r.StorePreviousId()
|
r.StorePreviousId()
|
||||||
}
|
}
|
||||||
if err := r.ApplyFilter(patchstrategicmerge.Filter{
|
if err := r.ApplyFilter(patchstrategicmerge.Filter{
|
||||||
Patch: patch.node,
|
Patch: &patch.RNode,
|
||||||
}); err != nil {
|
}); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if r.IsEmpty() {
|
if r.IsNilOrEmpty() {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if !patch.KindChangeAllowed() {
|
if !patch.KindChangeAllowed() {
|
||||||
@ -568,10 +450,11 @@ func (r *Resource) ApplySmPatch(patch *Resource) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resource) ApplyFilter(f kio.Filter) error {
|
func (r *Resource) ApplyFilter(f kio.Filter) error {
|
||||||
l, err := f.Filter([]*kyaml.RNode{r.node})
|
l, err := f.Filter([]*kyaml.RNode{&r.RNode})
|
||||||
if len(l) == 0 {
|
if len(l) == 0 {
|
||||||
// The node was deleted. The following makes r.IsEmpty() true.
|
// The node was deleted, which means the entire resource
|
||||||
r.node = nil
|
// must be deleted. Signal that via the following:
|
||||||
|
r.SetYNode(nil)
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
2
vendor/sigs.k8s.io/kustomize/api/types/fieldspec.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/api/types/fieldspec.go
generated
vendored
@ -6,7 +6,7 @@ package types
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
)
|
)
|
||||||
|
|
||||||
// FieldSpec completely specifies a kustomizable field in a k8s API object.
|
// FieldSpec completely specifies a kustomizable field in a k8s API object.
|
||||||
|
6
vendor/sigs.k8s.io/kustomize/api/types/generatoroptions.go
generated
vendored
6
vendor/sigs.k8s.io/kustomize/api/types/generatoroptions.go
generated
vendored
@ -15,6 +15,9 @@ type GeneratorOptions struct {
|
|||||||
// suffix to the names of generated resources that is a hash of the
|
// suffix to the names of generated resources that is a hash of the
|
||||||
// resource contents.
|
// resource contents.
|
||||||
DisableNameSuffixHash bool `json:"disableNameSuffixHash,omitempty" yaml:"disableNameSuffixHash,omitempty"`
|
DisableNameSuffixHash bool `json:"disableNameSuffixHash,omitempty" yaml:"disableNameSuffixHash,omitempty"`
|
||||||
|
|
||||||
|
// Immutable if true add to all generated resources.
|
||||||
|
Immutable bool `json:"immutable,omitempty" yaml:"immutable,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// MergeGlobalOptionsIntoLocal merges two instances of GeneratorOptions.
|
// MergeGlobalOptionsIntoLocal merges two instances of GeneratorOptions.
|
||||||
@ -42,6 +45,9 @@ func MergeGlobalOptionsIntoLocal(
|
|||||||
if globalOpts.DisableNameSuffixHash {
|
if globalOpts.DisableNameSuffixHash {
|
||||||
localOpts.DisableNameSuffixHash = true
|
localOpts.DisableNameSuffixHash = true
|
||||||
}
|
}
|
||||||
|
if globalOpts.Immutable {
|
||||||
|
localOpts.Immutable = true
|
||||||
|
}
|
||||||
return localOpts
|
return localOpts
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
vendor/sigs.k8s.io/kustomize/api/types/helmchartargs.go
generated
vendored
4
vendor/sigs.k8s.io/kustomize/api/types/helmchartargs.go
generated
vendored
@ -51,6 +51,10 @@ type HelmChart struct {
|
|||||||
// If omitted, the flag --generate-name is passed to 'helm template'.
|
// If omitted, the flag --generate-name is passed to 'helm template'.
|
||||||
ReleaseName string `json:"releaseName,omitempty" yaml:"releaseName,omitempty"`
|
ReleaseName string `json:"releaseName,omitempty" yaml:"releaseName,omitempty"`
|
||||||
|
|
||||||
|
// Namespace set the target namespace for a release. It is .Release.Namespace
|
||||||
|
// in the helm template
|
||||||
|
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
|
||||||
|
|
||||||
// ValuesFile is local file path to a values file to use _instead of_
|
// ValuesFile is local file path to a values file to use _instead of_
|
||||||
// the default values that accompanied the chart.
|
// the default values that accompanied the chart.
|
||||||
// The default values are in '{ChartHome}/{Name}/values.yaml'.
|
// The default values are in '{ChartHome}/{Name}/values.yaml'.
|
||||||
|
4
vendor/sigs.k8s.io/kustomize/api/types/kustomization.go
generated
vendored
4
vendor/sigs.k8s.io/kustomize/api/types/kustomization.go
generated
vendored
@ -74,6 +74,10 @@ type Kustomization struct {
|
|||||||
// patch, but this operator is simpler to specify.
|
// patch, but this operator is simpler to specify.
|
||||||
Images []Image `json:"images,omitempty" yaml:"images,omitempty"`
|
Images []Image `json:"images,omitempty" yaml:"images,omitempty"`
|
||||||
|
|
||||||
|
// Replacements is a list of replacements, which will copy nodes from a
|
||||||
|
// specified source to N specified targets.
|
||||||
|
Replacements []ReplacementField `json:"replacements,omitempty" yaml:"replacements,omitempty"`
|
||||||
|
|
||||||
// Replicas is a list of {resourcename, count} that allows for simpler replica
|
// Replicas is a list of {resourcename, count} that allows for simpler replica
|
||||||
// specification. This can also be done with a patch.
|
// specification. This can also be done with a patch.
|
||||||
Replicas []Replica `json:"replicas,omitempty" yaml:"replicas,omitempty"`
|
Replicas []Replica `json:"replicas,omitempty" yaml:"replicas,omitempty"`
|
||||||
|
30
vendor/sigs.k8s.io/kustomize/api/types/replacement.go
generated
vendored
30
vendor/sigs.k8s.io/kustomize/api/types/replacement.go
generated
vendored
@ -3,6 +3,13 @@
|
|||||||
|
|
||||||
package types
|
package types
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
|
)
|
||||||
|
|
||||||
const DefaultReplacementFieldPath = "metadata.name"
|
const DefaultReplacementFieldPath = "metadata.name"
|
||||||
|
|
||||||
// Replacement defines how to perform a substitution
|
// Replacement defines how to perform a substitution
|
||||||
@ -18,7 +25,7 @@ type Replacement struct {
|
|||||||
// SourceSelector is the source of the replacement transformer.
|
// SourceSelector is the source of the replacement transformer.
|
||||||
type SourceSelector struct {
|
type SourceSelector struct {
|
||||||
// A specific object to read it from.
|
// A specific object to read it from.
|
||||||
KrmId `json:",inline,omitempty" yaml:",inline,omitempty"`
|
resid.ResId `json:",inline,omitempty" yaml:",inline,omitempty"`
|
||||||
|
|
||||||
// Structured field path expected in the allowed object.
|
// Structured field path expected in the allowed object.
|
||||||
FieldPath string `json:"fieldPath" yaml:"fieldPath"`
|
FieldPath string `json:"fieldPath" yaml:"fieldPath"`
|
||||||
@ -27,6 +34,20 @@ type SourceSelector struct {
|
|||||||
Options *FieldOptions `json:"options" yaml:"options"`
|
Options *FieldOptions `json:"options" yaml:"options"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *SourceSelector) String() string {
|
||||||
|
if s == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
result := []string{s.ResId.String()}
|
||||||
|
if s.FieldPath != "" {
|
||||||
|
result = append(result, s.FieldPath)
|
||||||
|
}
|
||||||
|
if opts := s.Options.String(); opts != "" {
|
||||||
|
result = append(result, opts)
|
||||||
|
}
|
||||||
|
return strings.Join(result, ":")
|
||||||
|
}
|
||||||
|
|
||||||
// TargetSelector specifies fields in one or more objects.
|
// TargetSelector specifies fields in one or more objects.
|
||||||
type TargetSelector struct {
|
type TargetSelector struct {
|
||||||
// Include objects that match this.
|
// Include objects that match this.
|
||||||
@ -57,3 +78,10 @@ type FieldOptions struct {
|
|||||||
// If field missing, add it.
|
// If field missing, add it.
|
||||||
Create bool `json:"create" yaml:"create"`
|
Create bool `json:"create" yaml:"create"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (fo *FieldOptions) String() string {
|
||||||
|
if fo == nil || fo.Delimiter == "" {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("%s(%d)", fo.Delimiter, fo.Index)
|
||||||
|
}
|
||||||
|
6
vendor/sigs.k8s.io/kustomize/api/types/replacementfield.go
generated
vendored
Normal file
6
vendor/sigs.k8s.io/kustomize/api/types/replacementfield.go
generated
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
package types
|
||||||
|
|
||||||
|
type ReplacementField struct {
|
||||||
|
Replacement `json:",inline,omitempty" yaml:",inline,omitempty"`
|
||||||
|
Path string `json:"path,omitempty" yaml:"path,omitempty"`
|
||||||
|
}
|
25
vendor/sigs.k8s.io/kustomize/api/types/selector.go
generated
vendored
25
vendor/sigs.k8s.io/kustomize/api/types/selector.go
generated
vendored
@ -4,17 +4,18 @@
|
|||||||
package types
|
package types
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Selector specifies a set of resources.
|
// Selector specifies a set of resources.
|
||||||
// Any resource that matches intersection of all conditions
|
// Any resource that matches intersection of all conditions
|
||||||
// is included in this set.
|
// is included in this set.
|
||||||
type Selector struct {
|
type Selector struct {
|
||||||
// KrmId refers to a GVKN/Ns of a resource.
|
// ResId refers to a GVKN/Ns of a resource.
|
||||||
KrmId `json:",inline,omitempty" yaml:",inline,omitempty"`
|
resid.ResId `json:",inline,omitempty" yaml:",inline,omitempty"`
|
||||||
|
|
||||||
// AnnotationSelector is a string that follows the label selection expression
|
// AnnotationSelector is a string that follows the label selection expression
|
||||||
// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
|
// https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
|
||||||
@ -27,21 +28,9 @@ type Selector struct {
|
|||||||
LabelSelector string `json:"labelSelector,omitempty" yaml:"labelSelector,omitempty"`
|
LabelSelector string `json:"labelSelector,omitempty" yaml:"labelSelector,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// KrmId refers to a GVKN/Ns of a resource.
|
func (s *Selector) String() string {
|
||||||
type KrmId struct {
|
return fmt.Sprintf(
|
||||||
resid.Gvk `json:",inline,omitempty" yaml:",inline,omitempty"`
|
"%s:a=%s:l=%s", s.ResId, s.AnnotationSelector, s.LabelSelector)
|
||||||
Name string `json:"name,omitempty" yaml:"name,omitempty"`
|
|
||||||
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
|
|
||||||
}
|
|
||||||
|
|
||||||
// Match returns true if id selects other, i.e. id's fields
|
|
||||||
// either match other's or are empty
|
|
||||||
func (id *KrmId) Match(other *KrmId) bool {
|
|
||||||
return (id.Group == "" || id.Group == other.Group) &&
|
|
||||||
(id.Version == "" || id.Version == other.Version) &&
|
|
||||||
(id.Kind == "" || id.Kind == other.Kind) &&
|
|
||||||
(id.Name == "" || id.Name == other.Name) &&
|
|
||||||
(id.Namespace == "" || id.Namespace == other.Namespace)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SelectorRegex is a Selector with regex in GVK
|
// SelectorRegex is a Selector with regex in GVK
|
||||||
|
2
vendor/sigs.k8s.io/kustomize/api/types/var.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/api/types/var.go
generated
vendored
@ -9,7 +9,7 @@ import (
|
|||||||
"sort"
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/api/resid"
|
"sigs.k8s.io/kustomize/kyaml/resid"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Var represents a variable whose value will be sourced
|
// Var represents a variable whose value will be sourced
|
||||||
|
2
vendor/sigs.k8s.io/kustomize/kustomize/v4/commands/build/writer.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/kustomize/v4/commands/build/writer.go
generated
vendored
@ -36,7 +36,7 @@ func (w Writer) WriteIndividualFiles(dirPath string, m resmap.ResMap) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, res := range m.NonNamespaceable() {
|
for _, res := range m.ClusterScoped() {
|
||||||
err := w.write(dirPath, fileName(res), res)
|
err := w.write(dirPath, fileName(res), res)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
2
vendor/sigs.k8s.io/kustomize/kyaml/fieldmeta/fieldmeta.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/kyaml/fieldmeta/fieldmeta.go
generated
vendored
@ -10,7 +10,7 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/go-openapi/spec"
|
"k8s.io/kube-openapi/pkg/validation/spec"
|
||||||
"sigs.k8s.io/kustomize/kyaml/errors"
|
"sigs.k8s.io/kustomize/kyaml/errors"
|
||||||
"sigs.k8s.io/kustomize/kyaml/openapi"
|
"sigs.k8s.io/kustomize/kyaml/openapi"
|
||||||
"sigs.k8s.io/kustomize/kyaml/yaml"
|
"sigs.k8s.io/kustomize/kyaml/yaml"
|
||||||
|
4
vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/runtimeutil.go
generated
vendored
4
vendor/sigs.k8s.io/kustomize/kyaml/fn/runtime/runtimeutil/runtimeutil.go
generated
vendored
@ -42,7 +42,7 @@ type FunctionFilter struct {
|
|||||||
DeferFailure bool
|
DeferFailure bool
|
||||||
|
|
||||||
// results saves the results emitted from Run
|
// results saves the results emitted from Run
|
||||||
results *yaml.RNode
|
Results *yaml.RNode
|
||||||
|
|
||||||
// exit saves the error returned from Run
|
// exit saves the error returned from Run
|
||||||
exit error
|
exit error
|
||||||
@ -250,7 +250,7 @@ func (c *FunctionFilter) doResults(r *kio.ByteReader) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if r.Results != nil {
|
if r.Results != nil {
|
||||||
c.results = r.Results
|
c.Results = r.Results
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
90
vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/merge3.go
generated
vendored
90
vendor/sigs.k8s.io/kustomize/kyaml/kio/filters/merge3.go
generated
vendored
@ -19,17 +19,24 @@ const (
|
|||||||
mergeSourceDest = "dest"
|
mergeSourceDest = "dest"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// ResourceMatcher interface is used to match two resources based on IsSameResource implementation
|
||||||
|
// This is the way to group same logical resources in upstream, local and origin for merge
|
||||||
|
// The default way to group them is using GVKNN similar to how kubernetes server identifies resources
|
||||||
|
// Users of this library might have their own interpretation of grouping similar resources
|
||||||
|
// for e.g. if consumer adds a name-prefix to local resource, it should not be treated as new resource
|
||||||
|
// for updates etc.
|
||||||
|
// Hence, the callers of this library may pass different implementation for IsSameResource
|
||||||
|
type ResourceMatcher interface {
|
||||||
|
IsSameResource(node1, node2 *yaml.RNode) bool
|
||||||
|
}
|
||||||
|
|
||||||
// Merge3 performs a 3-way merge on the original, updated, and destination packages.
|
// Merge3 performs a 3-way merge on the original, updated, and destination packages.
|
||||||
type Merge3 struct {
|
type Merge3 struct {
|
||||||
OriginalPath string
|
OriginalPath string
|
||||||
UpdatedPath string
|
UpdatedPath string
|
||||||
DestPath string
|
DestPath string
|
||||||
MatchFilesGlob []string
|
MatchFilesGlob []string
|
||||||
|
Matcher ResourceMatcher
|
||||||
// MergeOnPath will use the relative filepath as part of the merge key.
|
|
||||||
// This may be necessary if the directory contains multiple copies of
|
|
||||||
// the same resource, or resources patches.
|
|
||||||
MergeOnPath bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m Merge3) Merge() error {
|
func (m Merge3) Merge() error {
|
||||||
@ -67,7 +74,11 @@ func (m Merge3) Merge() error {
|
|||||||
// Filter combines Resources with the same GVK + N + NS into tuples, and then merges them
|
// Filter combines Resources with the same GVK + N + NS into tuples, and then merges them
|
||||||
func (m Merge3) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) {
|
func (m Merge3) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) {
|
||||||
// index the nodes by their identity
|
// index the nodes by their identity
|
||||||
tl := tuples{mergeOnPath: m.MergeOnPath}
|
matcher := m.Matcher
|
||||||
|
if matcher == nil {
|
||||||
|
matcher = &DefaultGVKNNMatcher{MergeOnPath: true}
|
||||||
|
}
|
||||||
|
tl := tuples{matcher: matcher}
|
||||||
for i := range nodes {
|
for i := range nodes {
|
||||||
if err := tl.add(nodes[i]); err != nil {
|
if err := tl.add(nodes[i]); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -82,7 +93,7 @@ func (m Merge3) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) {
|
|||||||
case t.original == nil && t.updated == nil && t.dest != nil:
|
case t.original == nil && t.updated == nil && t.dest != nil:
|
||||||
// added locally -- keep dest
|
// added locally -- keep dest
|
||||||
output = append(output, t.dest)
|
output = append(output, t.dest)
|
||||||
case t.original == nil && t.updated != nil && t.dest == nil:
|
case t.updated != nil && t.dest == nil:
|
||||||
// added in the update -- add update
|
// added in the update -- add update
|
||||||
output = append(output, t.updated)
|
output = append(output, t.updated)
|
||||||
case t.original != nil && t.updated == nil:
|
case t.original != nil && t.updated == nil:
|
||||||
@ -109,13 +120,35 @@ func (m Merge3) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error) {
|
|||||||
type tuples struct {
|
type tuples struct {
|
||||||
list []*tuple
|
list []*tuple
|
||||||
|
|
||||||
// mergeOnPath if set to true will use the resource filepath
|
// matcher matches the resources for merge
|
||||||
// as part of the merge key
|
matcher ResourceMatcher
|
||||||
mergeOnPath bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// isSameResource returns true if meta1 and meta2 are for the same logic resource
|
// DefaultGVKNNMatcher holds the default matching of resources implementation based on
|
||||||
func (ts *tuples) isSameResource(meta1, meta2 yaml.ResourceMeta) bool {
|
// Group, Version, Kind, Name and Namespace of the resource
|
||||||
|
type DefaultGVKNNMatcher struct {
|
||||||
|
// MergeOnPath will use the relative filepath as part of the merge key.
|
||||||
|
// This may be necessary if the directory contains multiple copies of
|
||||||
|
// the same resource, or resources patches.
|
||||||
|
MergeOnPath bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsSameResource returns true if metadata of node1 and metadata of node2 belongs to same logical resource
|
||||||
|
func (dm *DefaultGVKNNMatcher) IsSameResource(node1, node2 *yaml.RNode) bool {
|
||||||
|
if node1 == nil || node2 == nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
meta1, err := node1.GetMeta()
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
meta2, err := node2.GetMeta()
|
||||||
|
if err != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
if meta1.Name != meta2.Name {
|
if meta1.Name != meta2.Name {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -128,7 +161,7 @@ func (ts *tuples) isSameResource(meta1, meta2 yaml.ResourceMeta) bool {
|
|||||||
if meta1.Kind != meta2.Kind {
|
if meta1.Kind != meta2.Kind {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
if ts.mergeOnPath {
|
if dm.MergeOnPath {
|
||||||
// directories may contain multiple copies of a resource with the same
|
// directories may contain multiple copies of a resource with the same
|
||||||
// name, namespace, apiVersion and kind -- e.g. kustomize patches, or
|
// name, namespace, apiVersion and kind -- e.g. kustomize patches, or
|
||||||
// multiple environments
|
// multiple environments
|
||||||
@ -143,17 +176,13 @@ func (ts *tuples) isSameResource(meta1, meta2 yaml.ResourceMeta) bool {
|
|||||||
|
|
||||||
// add adds a node to the list, combining it with an existing matching Resource if found
|
// add adds a node to the list, combining it with an existing matching Resource if found
|
||||||
func (ts *tuples) add(node *yaml.RNode) error {
|
func (ts *tuples) add(node *yaml.RNode) error {
|
||||||
nodeMeta, err := node.GetMeta()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
for i := range ts.list {
|
for i := range ts.list {
|
||||||
t := ts.list[i]
|
t := ts.list[i]
|
||||||
if ts.isSameResource(t.meta, nodeMeta) {
|
if ts.matcher.IsSameResource(addedNode(t), node) {
|
||||||
return t.add(node)
|
return t.add(node)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
t := &tuple{meta: nodeMeta}
|
t := &tuple{}
|
||||||
if err := t.add(node); err != nil {
|
if err := t.add(node); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -161,9 +190,19 @@ func (ts *tuples) add(node *yaml.RNode) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// addedNode returns one on the existing added nodes in the tuple
|
||||||
|
func addedNode(t *tuple) *yaml.RNode {
|
||||||
|
if t.updated != nil {
|
||||||
|
return t.updated
|
||||||
|
}
|
||||||
|
if t.original != nil {
|
||||||
|
return t.original
|
||||||
|
}
|
||||||
|
return t.dest
|
||||||
|
}
|
||||||
|
|
||||||
// tuple wraps an original, updated, and dest tuple for a given Resource
|
// tuple wraps an original, updated, and dest tuple for a given Resource
|
||||||
type tuple struct {
|
type tuple struct {
|
||||||
meta yaml.ResourceMeta
|
|
||||||
original *yaml.RNode
|
original *yaml.RNode
|
||||||
updated *yaml.RNode
|
updated *yaml.RNode
|
||||||
dest *yaml.RNode
|
dest *yaml.RNode
|
||||||
@ -178,17 +217,17 @@ func (t *tuple) add(node *yaml.RNode) error {
|
|||||||
switch meta.Annotations[mergeSourceAnnotation] {
|
switch meta.Annotations[mergeSourceAnnotation] {
|
||||||
case mergeSourceDest:
|
case mergeSourceDest:
|
||||||
if t.dest != nil {
|
if t.dest != nil {
|
||||||
return fmt.Errorf("dest source already specified")
|
return duplicateError("local", meta.Annotations[kioutil.PathAnnotation])
|
||||||
}
|
}
|
||||||
t.dest = node
|
t.dest = node
|
||||||
case mergeSourceOriginal:
|
case mergeSourceOriginal:
|
||||||
if t.original != nil {
|
if t.original != nil {
|
||||||
return fmt.Errorf("original source already specified")
|
return duplicateError("original upstream", meta.Annotations[kioutil.PathAnnotation])
|
||||||
}
|
}
|
||||||
t.original = node
|
t.original = node
|
||||||
case mergeSourceUpdated:
|
case mergeSourceUpdated:
|
||||||
if t.updated != nil {
|
if t.updated != nil {
|
||||||
return fmt.Errorf("updated source already specified")
|
return duplicateError("updated upstream", meta.Annotations[kioutil.PathAnnotation])
|
||||||
}
|
}
|
||||||
t.updated = node
|
t.updated = node
|
||||||
default:
|
default:
|
||||||
@ -201,3 +240,8 @@ func (t *tuple) add(node *yaml.RNode) error {
|
|||||||
func (t *tuple) merge() (*yaml.RNode, error) {
|
func (t *tuple) merge() (*yaml.RNode, error) {
|
||||||
return merge3.Merge(t.dest, t.original, t.updated)
|
return merge3.Merge(t.dest, t.original, t.updated)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// duplicateError returns duplicate resources error
|
||||||
|
func duplicateError(source, filePath string) error {
|
||||||
|
return fmt.Errorf(`found duplicate %q resources in file %q, please refer to "update" documentation for the fix`, source, filePath)
|
||||||
|
}
|
||||||
|
11
vendor/sigs.k8s.io/kustomize/kyaml/openapi/openapi.go
generated
vendored
11
vendor/sigs.k8s.io/kustomize/kyaml/openapi/openapi.go
generated
vendored
@ -11,7 +11,7 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/go-openapi/spec"
|
"k8s.io/kube-openapi/pkg/validation/spec"
|
||||||
"sigs.k8s.io/kustomize/kyaml/errors"
|
"sigs.k8s.io/kustomize/kyaml/errors"
|
||||||
"sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi"
|
"sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi"
|
||||||
"sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi"
|
"sigs.k8s.io/kustomize/kyaml/openapi/kustomizationapi"
|
||||||
@ -273,6 +273,15 @@ func IsNamespaceScoped(typeMeta yaml.TypeMeta) (bool, bool) {
|
|||||||
return isNamespaceScoped, found
|
return isNamespaceScoped, found
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsCertainlyClusterScoped returns true for Node, Namespace, etc. and
|
||||||
|
// false for Pod, Deployment, etc. and kinds that aren't recognized in the
|
||||||
|
// openapi data. See:
|
||||||
|
// https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces
|
||||||
|
func IsCertainlyClusterScoped(typeMeta yaml.TypeMeta) bool {
|
||||||
|
nsScoped, found := IsNamespaceScoped(typeMeta)
|
||||||
|
return found && !nsScoped
|
||||||
|
}
|
||||||
|
|
||||||
// SuppressBuiltInSchemaUse can be called to prevent using the built-in Kubernetes
|
// SuppressBuiltInSchemaUse can be called to prevent using the built-in Kubernetes
|
||||||
// schema as part of the global schema.
|
// schema as part of the global schema.
|
||||||
// Must be called before the schema is used.
|
// Must be called before the schema is used.
|
||||||
|
@ -16,13 +16,26 @@ type Gvk struct {
|
|||||||
Group string `json:"group,omitempty" yaml:"group,omitempty"`
|
Group string `json:"group,omitempty" yaml:"group,omitempty"`
|
||||||
Version string `json:"version,omitempty" yaml:"version,omitempty"`
|
Version string `json:"version,omitempty" yaml:"version,omitempty"`
|
||||||
Kind string `json:"kind,omitempty" yaml:"kind,omitempty"`
|
Kind string `json:"kind,omitempty" yaml:"kind,omitempty"`
|
||||||
|
// isClusterScoped is true if the object is known, per the openapi
|
||||||
|
// data in use, to be cluster scoped, and false otherwise.
|
||||||
|
isClusterScoped bool
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewGvk(g, v, k string) Gvk {
|
||||||
|
result := Gvk{Group: g, Version: v, Kind: k}
|
||||||
|
result.isClusterScoped =
|
||||||
|
openapi.IsCertainlyClusterScoped(result.AsTypeMeta())
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
func GvkFromNode(r *yaml.RNode) Gvk {
|
||||||
|
g, v := ParseGroupVersion(r.GetApiVersion())
|
||||||
|
return NewGvk(g, v, r.GetKind())
|
||||||
}
|
}
|
||||||
|
|
||||||
// FromKind makes a Gvk with only the kind specified.
|
// FromKind makes a Gvk with only the kind specified.
|
||||||
func FromKind(k string) Gvk {
|
func FromKind(k string) Gvk {
|
||||||
return Gvk{
|
return NewGvk("", "", k)
|
||||||
Kind: k,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ParseGroupVersion parses a KRM metadata apiVersion field.
|
// ParseGroupVersion parses a KRM metadata apiVersion field.
|
||||||
@ -56,11 +69,7 @@ func GvkFromString(s string) Gvk {
|
|||||||
if k == noKind {
|
if k == noKind {
|
||||||
k = ""
|
k = ""
|
||||||
}
|
}
|
||||||
return Gvk{
|
return NewGvk(g, v, k)
|
||||||
Group: g,
|
|
||||||
Version: v,
|
|
||||||
Kind: k,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Values that are brief but meaningful in logs.
|
// Values that are brief but meaningful in logs.
|
||||||
@ -90,10 +99,13 @@ func (x Gvk) String() string {
|
|||||||
|
|
||||||
// ApiVersion returns the combination of Group and Version
|
// ApiVersion returns the combination of Group and Version
|
||||||
func (x Gvk) ApiVersion() string {
|
func (x Gvk) ApiVersion() string {
|
||||||
if x.Group == "" {
|
var sb strings.Builder
|
||||||
return x.Version
|
if x.Group != "" {
|
||||||
|
sb.WriteString(x.Group)
|
||||||
|
sb.WriteString("/")
|
||||||
}
|
}
|
||||||
return x.Group + "/" + x.Version
|
sb.WriteString(x.Version)
|
||||||
|
return sb.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
// StringWoEmptyField returns a string representation of the GVK. Non-exist
|
// StringWoEmptyField returns a string representation of the GVK. Non-exist
|
||||||
@ -207,26 +219,16 @@ func (x Gvk) IsSelected(selector *Gvk) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// toKyamlTypeMeta returns a yaml.TypeMeta from x's information.
|
// AsTypeMeta returns a yaml.TypeMeta from x's information.
|
||||||
func (x Gvk) toKyamlTypeMeta() yaml.TypeMeta {
|
func (x Gvk) AsTypeMeta() yaml.TypeMeta {
|
||||||
var apiVersion strings.Builder
|
|
||||||
if x.Group != "" {
|
|
||||||
apiVersion.WriteString(x.Group)
|
|
||||||
apiVersion.WriteString("/")
|
|
||||||
}
|
|
||||||
apiVersion.WriteString(x.Version)
|
|
||||||
return yaml.TypeMeta{
|
return yaml.TypeMeta{
|
||||||
APIVersion: apiVersion.String(),
|
APIVersion: x.ApiVersion(),
|
||||||
Kind: x.Kind,
|
Kind: x.Kind,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsNamespaceableKind returns true if x is a namespaceable Gvk,
|
// IsClusterScoped returns true if the Gvk is certainly cluster scoped
|
||||||
// e.g. instances of Pod and Deployment are namespaceable,
|
// with respect to the available openapi data.
|
||||||
// but instances of Node and Namespace are not namespaceable.
|
func (x Gvk) IsClusterScoped() bool {
|
||||||
// Alternative name for this method: IsNotClusterScoped.
|
return x.isClusterScoped
|
||||||
// Implements https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#not-all-objects-are-in-a-namespace
|
|
||||||
func (x Gvk) IsNamespaceableKind() bool {
|
|
||||||
isNamespaceScoped, found := openapi.IsNamespaceScoped(x.toKyamlTypeMeta())
|
|
||||||
return !found || isNamespaceScoped
|
|
||||||
}
|
}
|
@ -12,13 +12,10 @@ type ResId struct {
|
|||||||
// Gvk of the resource.
|
// Gvk of the resource.
|
||||||
Gvk `json:",inline,omitempty" yaml:",inline,omitempty"`
|
Gvk `json:",inline,omitempty" yaml:",inline,omitempty"`
|
||||||
|
|
||||||
// Name of the resource before transformation.
|
// Name of the resource.
|
||||||
Name string `json:"name,omitempty" yaml:"name,omitempty"`
|
Name string `json:"name,omitempty" yaml:"name,omitempty"`
|
||||||
|
|
||||||
// Namespace the resource belongs to.
|
// Namespace the resource belongs to, if it can belong to a namespace.
|
||||||
// An untransformed resource has no namespace.
|
|
||||||
// A fully transformed resource has the namespace
|
|
||||||
// from the top most overlay.
|
|
||||||
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
|
Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,12 +27,12 @@ func NewResIdWithNamespace(k Gvk, n, ns string) ResId {
|
|||||||
|
|
||||||
// NewResId creates new ResId.
|
// NewResId creates new ResId.
|
||||||
func NewResId(k Gvk, n string) ResId {
|
func NewResId(k Gvk, n string) ResId {
|
||||||
return ResId{Gvk: k, Name: n}
|
return NewResIdWithNamespace(k, n, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewResIdKindOnly creates a new ResId.
|
// NewResIdKindOnly creates a new ResId.
|
||||||
func NewResIdKindOnly(k string, n string) ResId {
|
func NewResIdKindOnly(k string, n string) ResId {
|
||||||
return ResId{Gvk: FromKind(k), Name: n}
|
return NewResId(FromKind(k), n)
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -90,6 +87,13 @@ func (id ResId) GvknEquals(o ResId) bool {
|
|||||||
return id.Name == o.Name && id.Gvk.Equals(o.Gvk)
|
return id.Name == o.Name && id.Gvk.Equals(o.Gvk)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IsSelectedBy returns true if self is selected by the argument.
|
||||||
|
func (id ResId) IsSelectedBy(selector ResId) bool {
|
||||||
|
return (selector.Name == "" || selector.Name == id.Name) &&
|
||||||
|
(selector.Namespace == "" || selector.IsNsEquals(id)) &&
|
||||||
|
id.Gvk.IsSelected(&selector.Gvk)
|
||||||
|
}
|
||||||
|
|
||||||
// Equals returns true if the other id matches
|
// Equals returns true if the other id matches
|
||||||
// namespace/Group/Version/Kind/name.
|
// namespace/Group/Version/Kind/name.
|
||||||
func (id ResId) Equals(o ResId) bool {
|
func (id ResId) Equals(o ResId) bool {
|
||||||
@ -106,7 +110,7 @@ func (id ResId) IsNsEquals(o ResId) bool {
|
|||||||
// ResId and the Namespace is either not set or set
|
// ResId and the Namespace is either not set or set
|
||||||
// to DefaultNamespace.
|
// to DefaultNamespace.
|
||||||
func (id ResId) IsInDefaultNs() bool {
|
func (id ResId) IsInDefaultNs() bool {
|
||||||
return id.IsNamespaceableKind() && id.isPutativelyDefaultNs()
|
return !id.IsClusterScoped() && id.isPutativelyDefaultNs()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (id ResId) isPutativelyDefaultNs() bool {
|
func (id ResId) isPutativelyDefaultNs() bool {
|
||||||
@ -117,7 +121,7 @@ func (id ResId) isPutativelyDefaultNs() bool {
|
|||||||
// namespace for use in reporting and equality tests.
|
// namespace for use in reporting and equality tests.
|
||||||
func (id ResId) EffectiveNamespace() string {
|
func (id ResId) EffectiveNamespace() string {
|
||||||
// The order of these checks matters.
|
// The order of these checks matters.
|
||||||
if !id.IsNamespaceableKind() {
|
if id.IsClusterScoped() {
|
||||||
return TotallyNotANamespace
|
return TotallyNotANamespace
|
||||||
}
|
}
|
||||||
if id.isPutativelyDefaultNs() {
|
if id.isPutativelyDefaultNs() {
|
2
vendor/sigs.k8s.io/kustomize/kyaml/yaml/compatibility.go
generated
vendored
2
vendor/sigs.k8s.io/kustomize/kyaml/yaml/compatibility.go
generated
vendored
@ -7,9 +7,9 @@ import (
|
|||||||
"reflect"
|
"reflect"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/go-openapi/spec"
|
|
||||||
y1_1 "gopkg.in/yaml.v2"
|
y1_1 "gopkg.in/yaml.v2"
|
||||||
y1_2 "gopkg.in/yaml.v3"
|
y1_2 "gopkg.in/yaml.v3"
|
||||||
|
"k8s.io/kube-openapi/pkg/validation/spec"
|
||||||
)
|
)
|
||||||
|
|
||||||
// typeToTag maps OpenAPI schema types to yaml 1.2 tags
|
// typeToTag maps OpenAPI schema types to yaml 1.2 tags
|
||||||
|
1
vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/selector.go
generated
vendored
1
vendor/sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/labels/selector.go
generated
vendored
@ -27,6 +27,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"log"
|
"log"
|
||||||
|
|
||||||
"sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/selection"
|
"sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/selection"
|
||||||
"sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets"
|
"sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/sets"
|
||||||
"sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation"
|
"sigs.k8s.io/kustomize/kyaml/yaml/internal/k8sgen/pkg/util/validation"
|
||||||
|
143
vendor/sigs.k8s.io/kustomize/kyaml/yaml/rnode.go
generated
vendored
143
vendor/sigs.k8s.io/kustomize/kyaml/yaml/rnode.go
generated
vendored
@ -337,26 +337,83 @@ func (rn *RNode) SetYNode(node *yaml.Node) {
|
|||||||
*rn.value = *node
|
*rn.value = *node
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetKind returns the kind.
|
// GetKind returns the kind, if it exists, else empty string.
|
||||||
func (rn *RNode) GetKind() string {
|
func (rn *RNode) GetKind() string {
|
||||||
node, err := rn.Pipe(FieldMatcher{Name: KindField})
|
if node := rn.getMapFieldValue(KindField); node != nil {
|
||||||
if err != nil {
|
return node.Value
|
||||||
return ""
|
|
||||||
}
|
}
|
||||||
return GetValue(node)
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetName returns the name.
|
// SetKind sets the kind.
|
||||||
|
func (rn *RNode) SetKind(k string) {
|
||||||
|
rn.SetMapField(NewScalarRNode(k), KindField)
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetApiVersion returns the apiversion, if it exists, else empty string.
|
||||||
|
func (rn *RNode) GetApiVersion() string {
|
||||||
|
if node := rn.getMapFieldValue(APIVersionField); node != nil {
|
||||||
|
return node.Value
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetApiVersion sets the apiVersion.
|
||||||
|
func (rn *RNode) SetApiVersion(av string) {
|
||||||
|
rn.SetMapField(NewScalarRNode(av), APIVersionField)
|
||||||
|
}
|
||||||
|
|
||||||
|
// getMapFieldValue returns the value (*yaml.Node) of a mapping field.
|
||||||
|
// The value might be nil. Also, the function returns nil, not an error,
|
||||||
|
// if this node is not a mapping node, or if this node does not have the
|
||||||
|
// given field, so this function cannot be used to make distinctions
|
||||||
|
// between these cases.
|
||||||
|
func (rn *RNode) getMapFieldValue(field string) *yaml.Node {
|
||||||
|
for i := 0; i < len(rn.Content()); i = IncrementFieldIndex(i) {
|
||||||
|
if rn.Content()[i].Value == field {
|
||||||
|
return rn.Content()[i+1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetName returns the name, or empty string if
|
||||||
|
// field not found. The setter is more restrictive.
|
||||||
func (rn *RNode) GetName() string {
|
func (rn *RNode) GetName() string {
|
||||||
f := rn.Field(MetadataField)
|
return rn.getMetaStringField(NameField)
|
||||||
|
}
|
||||||
|
|
||||||
|
// getMetaStringField returns the value of a string field in metadata.
|
||||||
|
func (rn *RNode) getMetaStringField(fName string) string {
|
||||||
|
md := rn.getMetaData()
|
||||||
|
if md == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
f := md.Field(fName)
|
||||||
if f.IsNilOrEmpty() {
|
if f.IsNilOrEmpty() {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
f = f.Value.Field(NameField)
|
return GetValue(f.Value)
|
||||||
if f.IsNilOrEmpty() {
|
}
|
||||||
return ""
|
|
||||||
|
// getMetaData returns the RNode holding the value of the metadata field.
|
||||||
|
// Return nil if field not found (no error).
|
||||||
|
func (rn *RNode) getMetaData() *RNode {
|
||||||
|
if IsMissingOrNull(rn) {
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
return f.Value.YNode().Value
|
var n *RNode
|
||||||
|
if rn.YNode().Kind == DocumentNode {
|
||||||
|
// get the content if this is the document node
|
||||||
|
n = NewRNode(rn.Content()[0])
|
||||||
|
} else {
|
||||||
|
n = rn
|
||||||
|
}
|
||||||
|
mf := n.Field(MetadataField)
|
||||||
|
if mf.IsNilOrEmpty() {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return mf.Value
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetName sets the metadata name field.
|
// SetName sets the metadata name field.
|
||||||
@ -364,16 +421,14 @@ func (rn *RNode) SetName(name string) error {
|
|||||||
return rn.SetMapField(NewScalarRNode(name), MetadataField, NameField)
|
return rn.SetMapField(NewScalarRNode(name), MetadataField, NameField)
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNamespace gets the metadata namespace field.
|
// GetNamespace gets the metadata namespace field, or empty string if
|
||||||
func (rn *RNode) GetNamespace() (string, error) {
|
// field not found. The setter is more restrictive.
|
||||||
meta, err := rn.GetMeta()
|
func (rn *RNode) GetNamespace() string {
|
||||||
if err != nil {
|
return rn.getMetaStringField(NamespaceField)
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return meta.Namespace, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetNamespace tries to set the metadata namespace field.
|
// SetNamespace tries to set the metadata namespace field. If the argument
|
||||||
|
// is empty, the field is dropped.
|
||||||
func (rn *RNode) SetNamespace(ns string) error {
|
func (rn *RNode) SetNamespace(ns string) error {
|
||||||
meta, err := rn.Pipe(Lookup(MetadataField))
|
meta, err := rn.Pipe(Lookup(MetadataField))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -390,12 +445,14 @@ func (rn *RNode) SetNamespace(ns string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetAnnotations gets the metadata annotations field.
|
// GetAnnotations gets the metadata annotations field.
|
||||||
func (rn *RNode) GetAnnotations() (map[string]string, error) {
|
// If the field is missing, returns an empty map.
|
||||||
meta, err := rn.GetMeta()
|
// Use another method to check for missing metadata.
|
||||||
if err != nil {
|
func (rn *RNode) GetAnnotations() map[string]string {
|
||||||
return nil, err
|
meta := rn.getMetaData()
|
||||||
|
if meta == nil {
|
||||||
|
return make(map[string]string)
|
||||||
}
|
}
|
||||||
return meta.Annotations, nil
|
return rn.getMapFromMeta(meta, AnnotationsField)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetAnnotations tries to set the metadata annotations field.
|
// SetAnnotations tries to set the metadata annotations field.
|
||||||
@ -404,12 +461,26 @@ func (rn *RNode) SetAnnotations(m map[string]string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetLabels gets the metadata labels field.
|
// GetLabels gets the metadata labels field.
|
||||||
func (rn *RNode) GetLabels() (map[string]string, error) {
|
// If the field is missing, returns an empty map.
|
||||||
meta, err := rn.GetMeta()
|
// Use another method to check for missing metadata.
|
||||||
if err != nil {
|
func (rn *RNode) GetLabels() map[string]string {
|
||||||
return nil, err
|
meta := rn.getMetaData()
|
||||||
|
if meta == nil {
|
||||||
|
return make(map[string]string)
|
||||||
}
|
}
|
||||||
return meta.Labels, nil
|
return rn.getMapFromMeta(meta, LabelsField)
|
||||||
|
}
|
||||||
|
|
||||||
|
// getMapFromMeta returns map, sometimes empty, from metadata.
|
||||||
|
func (rn *RNode) getMapFromMeta(meta *RNode, fName string) map[string]string {
|
||||||
|
result := make(map[string]string)
|
||||||
|
if f := meta.Field(fName); !f.IsNilOrEmpty() {
|
||||||
|
_ = f.Value.VisitFields(func(node *MapNode) error {
|
||||||
|
result[GetValue(node.Key)] = GetValue(node.Value)
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetLabels sets the metadata labels field.
|
// SetLabels sets the metadata labels field.
|
||||||
@ -419,7 +490,7 @@ func (rn *RNode) SetLabels(m map[string]string) error {
|
|||||||
|
|
||||||
// This established proper quoting on string values, and sorts by key.
|
// This established proper quoting on string values, and sorts by key.
|
||||||
func (rn *RNode) setMapInMetadata(m map[string]string, field string) error {
|
func (rn *RNode) setMapInMetadata(m map[string]string, field string) error {
|
||||||
meta, err := rn.Pipe(Lookup(MetadataField))
|
meta, err := rn.Pipe(LookupCreate(MappingNode, MetadataField))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -786,11 +857,7 @@ func (rn *RNode) MatchesAnnotationSelector(selector string) (bool, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
slice, err := rn.GetAnnotations()
|
return s.Matches(labels.Set(rn.GetAnnotations())), nil
|
||||||
if err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
return s.Matches(labels.Set(slice)), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MatchesLabelSelector returns true on a selector match to labels.
|
// MatchesLabelSelector returns true on a selector match to labels.
|
||||||
@ -799,11 +866,7 @@ func (rn *RNode) MatchesLabelSelector(selector string) (bool, error) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
slice, err := rn.GetLabels()
|
return s.Matches(labels.Set(rn.GetLabels())), nil
|
||||||
if err != nil {
|
|
||||||
return false, err
|
|
||||||
}
|
|
||||||
return s.Matches(labels.Set(slice)), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// HasNilEntryInList returns true if the RNode contains a list which has
|
// HasNilEntryInList returns true if the RNode contains a list which has
|
||||||
|
Loading…
Reference in New Issue
Block a user