mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-03 19:58:17 +00:00 
			
		
		
		
	Update vendor to drop unused openapi deps
This commit is contained in:
		
							
								
								
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/analysis/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/analysis/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,206 +0,0 @@
 | 
				
			|||||||
= vendor/github.com/go-openapi/analysis 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/analysis/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
 | 
					 | 
				
			||||||
							
								
								
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/errors/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/errors/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,206 +0,0 @@
 | 
				
			|||||||
= vendor/github.com/go-openapi/errors 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/errors/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
 | 
					 | 
				
			||||||
							
								
								
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/loads/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/loads/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,206 +0,0 @@
 | 
				
			|||||||
= vendor/github.com/go-openapi/loads 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/loads/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
 | 
					 | 
				
			||||||
							
								
								
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/runtime/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/runtime/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,206 +0,0 @@
 | 
				
			|||||||
= vendor/github.com/go-openapi/runtime 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/runtime/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
 | 
					 | 
				
			||||||
							
								
								
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/strfmt/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/strfmt/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,206 +0,0 @@
 | 
				
			|||||||
= vendor/github.com/go-openapi/strfmt 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/strfmt/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
 | 
					 | 
				
			||||||
							
								
								
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/validate/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										206
									
								
								LICENSES/vendor/github.com/go-openapi/validate/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,206 +0,0 @@
 | 
				
			|||||||
= vendor/github.com/go-openapi/validate 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/validate/LICENSE 3b83ef96387f14655fc854ddc3c6bd57
 | 
					 | 
				
			||||||
							
								
								
									
										25
									
								
								LICENSES/vendor/github.com/go-stack/stack/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								LICENSES/vendor/github.com/go-stack/stack/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,25 +0,0 @@
 | 
				
			|||||||
= vendor/github.com/go-stack/stack licensed under: =
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The MIT License (MIT)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Copyright (c) 2014 Chris Hines
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
					 | 
				
			||||||
of this software and associated documentation files (the "Software"), to deal
 | 
					 | 
				
			||||||
in the Software without restriction, including without limitation the rights
 | 
					 | 
				
			||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 | 
					 | 
				
			||||||
copies of the Software, and to permit persons to whom the Software is
 | 
					 | 
				
			||||||
furnished to do so, subject to the following conditions:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The above copyright notice and this permission notice shall be included in all
 | 
					 | 
				
			||||||
copies or substantial portions of the Software.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 | 
					 | 
				
			||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 | 
					 | 
				
			||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 | 
					 | 
				
			||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 | 
					 | 
				
			||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 | 
					 | 
				
			||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
					 | 
				
			||||||
SOFTWARE.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
= vendor/github.com/go-stack/stack/LICENSE.md 55d1e6f86c872bf9b8f648d1293cb2c3
 | 
					 | 
				
			||||||
							
								
								
									
										205
									
								
								LICENSES/vendor/go.mongodb.org/mongo-driver/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										205
									
								
								LICENSES/vendor/go.mongodb.org/mongo-driver/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,205 +0,0 @@
 | 
				
			|||||||
= vendor/go.mongodb.org/mongo-driver 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/go.mongodb.org/mongo-driver/LICENSE 86d3f3a95c324c9479bd8986968f4327
 | 
					 | 
				
			||||||
							
								
								
									
										16
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								go.mod
									
									
									
									
									
								
							@@ -43,10 +43,7 @@ require (
 | 
				
			|||||||
	github.com/evanphx/json-patch v4.9.0+incompatible
 | 
						github.com/evanphx/json-patch v4.9.0+incompatible
 | 
				
			||||||
	github.com/fsnotify/fsnotify v1.4.9
 | 
						github.com/fsnotify/fsnotify v1.4.9
 | 
				
			||||||
	github.com/go-bindata/go-bindata v3.1.1+incompatible
 | 
						github.com/go-bindata/go-bindata v3.1.1+incompatible
 | 
				
			||||||
	github.com/go-openapi/loads v0.19.4
 | 
					 | 
				
			||||||
	github.com/go-openapi/spec v0.19.3
 | 
						github.com/go-openapi/spec v0.19.3
 | 
				
			||||||
	github.com/go-openapi/strfmt v0.19.3
 | 
					 | 
				
			||||||
	github.com/go-openapi/validate v0.19.5
 | 
					 | 
				
			||||||
	github.com/go-ozzo/ozzo-validation v3.5.0+incompatible // indirect
 | 
						github.com/go-ozzo/ozzo-validation v3.5.0+incompatible // indirect
 | 
				
			||||||
	github.com/godbus/dbus/v5 v5.0.3
 | 
						github.com/godbus/dbus/v5 v5.0.3
 | 
				
			||||||
	github.com/gogo/protobuf v1.3.2
 | 
						github.com/gogo/protobuf v1.3.2
 | 
				
			||||||
@@ -173,11 +170,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
 | 
				
			||||||
@@ -255,18 +250,11 @@ 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.3
 | 
						github.com/go-openapi/spec => github.com/go-openapi/spec v0.19.3
 | 
				
			||||||
	github.com/go-openapi/strfmt => github.com/go-openapi/strfmt v0.19.3
 | 
					 | 
				
			||||||
	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.5
 | 
					 | 
				
			||||||
	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/godbus/dbus/v5 => github.com/godbus/dbus/v5 v5.0.3
 | 
						github.com/godbus/dbus/v5 => github.com/godbus/dbus/v5 v5.0.3
 | 
				
			||||||
	github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2
 | 
						github.com/gogo/protobuf => github.com/gogo/protobuf v1.3.2
 | 
				
			||||||
	github.com/golang/freetype => github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
 | 
						github.com/golang/freetype => github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
 | 
				
			||||||
@@ -409,7 +397,6 @@ replace (
 | 
				
			|||||||
	github.com/satori/go.uuid => github.com/satori/go.uuid v1.2.0
 | 
						github.com/satori/go.uuid => github.com/satori/go.uuid v1.2.0
 | 
				
			||||||
	github.com/sean-/seed => github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529
 | 
						github.com/sean-/seed => github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529
 | 
				
			||||||
	github.com/seccomp/libseccomp-golang => github.com/seccomp/libseccomp-golang v0.9.1
 | 
						github.com/seccomp/libseccomp-golang => github.com/seccomp/libseccomp-golang v0.9.1
 | 
				
			||||||
	github.com/sergi/go-diff => github.com/sergi/go-diff v1.0.0
 | 
					 | 
				
			||||||
	github.com/shurcooL/sanitized_anchor_name => github.com/shurcooL/sanitized_anchor_name v1.0.0
 | 
						github.com/shurcooL/sanitized_anchor_name => github.com/shurcooL/sanitized_anchor_name v1.0.0
 | 
				
			||||||
	github.com/sirupsen/logrus => github.com/sirupsen/logrus v1.6.0
 | 
						github.com/sirupsen/logrus => github.com/sirupsen/logrus v1.6.0
 | 
				
			||||||
	github.com/smartystreets/assertions => github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d
 | 
						github.com/smartystreets/assertions => github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d
 | 
				
			||||||
@@ -427,11 +414,9 @@ replace (
 | 
				
			|||||||
	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-20180916011248-d98352740cb2
 | 
						github.com/syndtr/gocapability => github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2
 | 
				
			||||||
	github.com/thecodeteam/goscaleio => github.com/thecodeteam/goscaleio v0.1.0
 | 
						github.com/thecodeteam/goscaleio => github.com/thecodeteam/goscaleio v0.1.0
 | 
				
			||||||
	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
 | 
				
			||||||
@@ -440,7 +425,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.uber.org/atomic => go.uber.org/atomic v1.4.0
 | 
						go.uber.org/atomic => go.uber.org/atomic v1.4.0
 | 
				
			||||||
	go.uber.org/multierr => go.uber.org/multierr v1.1.0
 | 
						go.uber.org/multierr => go.uber.org/multierr v1.1.0
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										22
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								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=
 | 
				
			||||||
@@ -181,30 +179,16 @@ 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 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI=
 | 
					 | 
				
			||||||
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
 | 
					 | 
				
			||||||
github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=
 | 
					 | 
				
			||||||
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 h1:5I4CCSqoWzT+82bBkNIvmLc0UOsoKKQ4Fz+3VxOB7SY=
 | 
					 | 
				
			||||||
github.com/go-openapi/loads v0.19.4/go.mod h1:zZVHonKd8DXyxyw4yfnVjPzBjIQcLt0CCsn0N0ZrQsk=
 | 
					 | 
				
			||||||
github.com/go-openapi/runtime v0.19.4 h1:csnOgcgAiuGoM/Po7PEpKDoNulCcF3FGbSnbHfxgjMI=
 | 
					 | 
				
			||||||
github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4=
 | 
					 | 
				
			||||||
github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc=
 | 
					github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc=
 | 
				
			||||||
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
 | 
					github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
 | 
				
			||||||
github.com/go-openapi/strfmt v0.19.3 h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
 | 
					 | 
				
			||||||
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.5 h1:QhCBKRYqZR+SKo4gl1lPhPahope8/RLt6EVgY8X80w0=
 | 
					 | 
				
			||||||
github.com/go-openapi/validate v0.19.5/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 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
 | 
					 | 
				
			||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 | 
					 | 
				
			||||||
github.com/godbus/dbus/v5 v5.0.3 h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME=
 | 
					github.com/godbus/dbus/v5 v5.0.3 h1:ZqHaoEF7TBzh4jzPmqVhE/5A1z9of6orkAe5uHoAeME=
 | 
				
			||||||
github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 | 
					github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
 | 
				
			||||||
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 | 
					github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
 | 
				
			||||||
@@ -433,7 +417,6 @@ github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdh
 | 
				
			|||||||
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/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo=
 | 
					github.com/seccomp/libseccomp-golang v0.9.1 h1:NJjM5DNFOs0s3kYE1WUOr6G8V97sdt46rlXTMfXGWBo=
 | 
				
			||||||
github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
 | 
					github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo=
 | 
				
			||||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
 | 
					 | 
				
			||||||
github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
 | 
					github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo=
 | 
				
			||||||
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=
 | 
				
			||||||
github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
 | 
					github.com/sirupsen/logrus v1.6.0 h1:UBcNElsrwanuuMsnGSlYmtmgbb23qDR5dG+6X6Oo89I=
 | 
				
			||||||
@@ -468,14 +451,11 @@ github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2 h1:b6uOv7YOFK0
 | 
				
			|||||||
github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
 | 
					github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww=
 | 
				
			||||||
github.com/thecodeteam/goscaleio v0.1.0 h1:SB5tO98lawC+UK8ds/U2jyfOCH7GTcFztcF5x9gbut4=
 | 
					github.com/thecodeteam/goscaleio v0.1.0 h1:SB5tO98lawC+UK8ds/U2jyfOCH7GTcFztcF5x9gbut4=
 | 
				
			||||||
github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM=
 | 
					github.com/thecodeteam/goscaleio v0.1.0/go.mod h1:68sdkZAsK8bvEwBlbQnlLS+xU+hvLYM/iQ8KXej1AwM=
 | 
				
			||||||
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
 | 
					 | 
				
			||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 | 
					 | 
				
			||||||
github.com/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=
 | 
				
			||||||
@@ -491,8 +471,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 h1:jxcFYjlkl8xaERsgLo+RNquI0epW6zuy/ZRQs6jnrFA=
 | 
					 | 
				
			||||||
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.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=
 | 
					go.uber.org/atomic v1.4.0 h1:cxzIVoETapQEqDhQu3QfnvXAV4AlzcvUCxkVUFw3+EU=
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										5
									
								
								vendor/github.com/go-openapi/analysis/.codecov.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/go-openapi/analysis/.codecov.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +0,0 @@
 | 
				
			|||||||
coverage:
 | 
					 | 
				
			||||||
  status:
 | 
					 | 
				
			||||||
    patch:
 | 
					 | 
				
			||||||
      default:
 | 
					 | 
				
			||||||
        target: 80%
 | 
					 | 
				
			||||||
							
								
								
									
										5
									
								
								vendor/github.com/go-openapi/analysis/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/go-openapi/analysis/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +0,0 @@
 | 
				
			|||||||
secrets.yml
 | 
					 | 
				
			||||||
coverage.out
 | 
					 | 
				
			||||||
coverage.txt
 | 
					 | 
				
			||||||
*.cov
 | 
					 | 
				
			||||||
.idea
 | 
					 | 
				
			||||||
							
								
								
									
										27
									
								
								vendor/github.com/go-openapi/analysis/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										27
									
								
								vendor/github.com/go-openapi/analysis/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,27 +0,0 @@
 | 
				
			|||||||
linters-settings:
 | 
					 | 
				
			||||||
  govet:
 | 
					 | 
				
			||||||
    check-shadowing: true
 | 
					 | 
				
			||||||
  golint:
 | 
					 | 
				
			||||||
    min-confidence: 0
 | 
					 | 
				
			||||||
  gocyclo:
 | 
					 | 
				
			||||||
    min-complexity: 40
 | 
					 | 
				
			||||||
  maligned:
 | 
					 | 
				
			||||||
    suggest-new: true
 | 
					 | 
				
			||||||
  dupl:
 | 
					 | 
				
			||||||
    threshold: 100
 | 
					 | 
				
			||||||
  goconst:
 | 
					 | 
				
			||||||
    min-len: 2
 | 
					 | 
				
			||||||
    min-occurrences: 4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
linters:
 | 
					 | 
				
			||||||
  enable-all: true
 | 
					 | 
				
			||||||
  disable:
 | 
					 | 
				
			||||||
    - maligned
 | 
					 | 
				
			||||||
    - lll
 | 
					 | 
				
			||||||
    - gochecknoglobals
 | 
					 | 
				
			||||||
    - gochecknoinits
 | 
					 | 
				
			||||||
    # scopelint is useful, but also reports false positives
 | 
					 | 
				
			||||||
    # that unfortunately can't be disabled. So we disable the
 | 
					 | 
				
			||||||
    # linter rather than changing code that works.
 | 
					 | 
				
			||||||
    # see: https://github.com/kyoh86/scopelint/issues/4
 | 
					 | 
				
			||||||
    - scopelint
 | 
					 | 
				
			||||||
							
								
								
									
										15
									
								
								vendor/github.com/go-openapi/analysis/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/go-openapi/analysis/.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: Sf7kZf7ZGbnwWUMpffHwMu5A0cHkLK2MYY32LNTPj4+/3qC3Ghl7+9v4TSLOqOlCwdRNjOGblAq7s+GDJed6/xgRQl1JtCi1klzZNrYX4q01pgTPvvGcwbBkIYgeMaPeIRcK9OZnud7sRXdttozgTOpytps2U6Js32ip7uj5mHSg2ub0FwoSJwlS6dbezZ8+eDhoha0F/guY99BEwx8Bd+zROrT2TFGsSGOFGN6wFc7moCqTHO/YkWib13a2QNXqOxCCVBy/lt76Wp+JkeFppjHlzs/2lP3EAk13RIUAaesdEUHvIHrzCyNJEd3/+KO2DzsWOYfpktd+KBCvgaYOsoo7ubdT3IROeAegZdCgo/6xgCEsmFc9ZcqCfN5yNx2A+BZ2Vwmpws+bQ1E1+B5HDzzaiLcYfG4X2O210QVGVDLWsv1jqD+uPYeHY2WRfh5ZsIUFvaqgUEnwHwrK44/8REAhQavt1QAj5uJpsRd7CkRVPWRNK+yIky+wgbVUFEchRNmS55E7QWf+W4+4QZkQi7vUTMc9nbTUu2Es9NfvfudOpM2wZbn98fjpb/qq/nRv6Bk+ca+7XD5/IgNLMbWp2ouDdzbiHLCOfDUiHiDJhLfFZx9Bwo7ZwfzeOlbrQX66bx7xRKYmOe4DLrXhNcpbsMa8qbfxlZRCmYbubB/Y8h4=
 | 
					 | 
				
			||||||
script:
 | 
					 | 
				
			||||||
- gotestsum -f short-verbose -- -race -timeout=20m -coverprofile=coverage.txt -covermode=atomic ./...
 | 
					 | 
				
			||||||
							
								
								
									
										74
									
								
								vendor/github.com/go-openapi/analysis/CODE_OF_CONDUCT.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										74
									
								
								vendor/github.com/go-openapi/analysis/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/analysis/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										202
									
								
								vendor/github.com/go-openapi/analysis/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.
 | 
					 | 
				
			||||||
							
								
								
									
										9
									
								
								vendor/github.com/go-openapi/analysis/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/go-openapi/analysis/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,9 +0,0 @@
 | 
				
			|||||||
# OpenAPI initiative analysis [](https://travis-ci.org/go-openapi/analysis) [](https://ci.appveyor.com/project/casualjim/go-openapi/analysis/branch/master) [](https://codecov.io/gh/go-openapi/analysis)
 | 
					 | 
				
			||||||
[](https://slackin.goswagger.io)
 | 
					 | 
				
			||||||
[](https://raw.githubusercontent.com/go-openapi/analysis/master/LICENSE)
 | 
					 | 
				
			||||||
[](http://godoc.org/github.com/go-openapi/analysis)
 | 
					 | 
				
			||||||
[](https://golangci.com)
 | 
					 | 
				
			||||||
[](https://goreportcard.com/report/github.com/go-openapi/analysis)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A foundational library to analyze an OAI specification document for easier reasoning about the content.
 | 
					 | 
				
			||||||
							
								
								
									
										970
									
								
								vendor/github.com/go-openapi/analysis/analyzer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										970
									
								
								vendor/github.com/go-openapi/analysis/analyzer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,970 +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 analysis
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	slashpath "path"
 | 
					 | 
				
			||||||
	"strconv"
 | 
					 | 
				
			||||||
	"strings"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/jsonpointer"
 | 
					 | 
				
			||||||
	"github.com/go-openapi/spec"
 | 
					 | 
				
			||||||
	"github.com/go-openapi/swag"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type referenceAnalysis struct {
 | 
					 | 
				
			||||||
	schemas        map[string]spec.Ref
 | 
					 | 
				
			||||||
	responses      map[string]spec.Ref
 | 
					 | 
				
			||||||
	parameters     map[string]spec.Ref
 | 
					 | 
				
			||||||
	items          map[string]spec.Ref
 | 
					 | 
				
			||||||
	headerItems    map[string]spec.Ref
 | 
					 | 
				
			||||||
	parameterItems map[string]spec.Ref
 | 
					 | 
				
			||||||
	allRefs        map[string]spec.Ref
 | 
					 | 
				
			||||||
	pathItems      map[string]spec.Ref
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (r *referenceAnalysis) addRef(key string, ref spec.Ref) {
 | 
					 | 
				
			||||||
	r.allRefs["#"+key] = ref
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (r *referenceAnalysis) addItemsRef(key string, items *spec.Items, location string) {
 | 
					 | 
				
			||||||
	r.items["#"+key] = items.Ref
 | 
					 | 
				
			||||||
	r.addRef(key, items.Ref)
 | 
					 | 
				
			||||||
	if location == "header" {
 | 
					 | 
				
			||||||
		// NOTE: in swagger 2.0, headers and parameters (but not body param schemas) are simple schemas
 | 
					 | 
				
			||||||
		// and $ref are not supported here. However it is possible to analyze this.
 | 
					 | 
				
			||||||
		r.headerItems["#"+key] = items.Ref
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		r.parameterItems["#"+key] = items.Ref
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (r *referenceAnalysis) addSchemaRef(key string, ref SchemaRef) {
 | 
					 | 
				
			||||||
	r.schemas["#"+key] = ref.Schema.Ref
 | 
					 | 
				
			||||||
	r.addRef(key, ref.Schema.Ref)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (r *referenceAnalysis) addResponseRef(key string, resp *spec.Response) {
 | 
					 | 
				
			||||||
	r.responses["#"+key] = resp.Ref
 | 
					 | 
				
			||||||
	r.addRef(key, resp.Ref)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (r *referenceAnalysis) addParamRef(key string, param *spec.Parameter) {
 | 
					 | 
				
			||||||
	r.parameters["#"+key] = param.Ref
 | 
					 | 
				
			||||||
	r.addRef(key, param.Ref)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (r *referenceAnalysis) addPathItemRef(key string, pathItem *spec.PathItem) {
 | 
					 | 
				
			||||||
	r.pathItems["#"+key] = pathItem.Ref
 | 
					 | 
				
			||||||
	r.addRef(key, pathItem.Ref)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type patternAnalysis struct {
 | 
					 | 
				
			||||||
	parameters  map[string]string
 | 
					 | 
				
			||||||
	headers     map[string]string
 | 
					 | 
				
			||||||
	items       map[string]string
 | 
					 | 
				
			||||||
	schemas     map[string]string
 | 
					 | 
				
			||||||
	allPatterns map[string]string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *patternAnalysis) addPattern(key, pattern string) {
 | 
					 | 
				
			||||||
	p.allPatterns["#"+key] = pattern
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *patternAnalysis) addParameterPattern(key, pattern string) {
 | 
					 | 
				
			||||||
	p.parameters["#"+key] = pattern
 | 
					 | 
				
			||||||
	p.addPattern(key, pattern)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *patternAnalysis) addHeaderPattern(key, pattern string) {
 | 
					 | 
				
			||||||
	p.headers["#"+key] = pattern
 | 
					 | 
				
			||||||
	p.addPattern(key, pattern)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *patternAnalysis) addItemsPattern(key, pattern string) {
 | 
					 | 
				
			||||||
	p.items["#"+key] = pattern
 | 
					 | 
				
			||||||
	p.addPattern(key, pattern)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *patternAnalysis) addSchemaPattern(key, pattern string) {
 | 
					 | 
				
			||||||
	p.schemas["#"+key] = pattern
 | 
					 | 
				
			||||||
	p.addPattern(key, pattern)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type enumAnalysis struct {
 | 
					 | 
				
			||||||
	parameters map[string][]interface{}
 | 
					 | 
				
			||||||
	headers    map[string][]interface{}
 | 
					 | 
				
			||||||
	items      map[string][]interface{}
 | 
					 | 
				
			||||||
	schemas    map[string][]interface{}
 | 
					 | 
				
			||||||
	allEnums   map[string][]interface{}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *enumAnalysis) addEnum(key string, enum []interface{}) {
 | 
					 | 
				
			||||||
	p.allEnums["#"+key] = enum
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *enumAnalysis) addParameterEnum(key string, enum []interface{}) {
 | 
					 | 
				
			||||||
	p.parameters["#"+key] = enum
 | 
					 | 
				
			||||||
	p.addEnum(key, enum)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *enumAnalysis) addHeaderEnum(key string, enum []interface{}) {
 | 
					 | 
				
			||||||
	p.headers["#"+key] = enum
 | 
					 | 
				
			||||||
	p.addEnum(key, enum)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *enumAnalysis) addItemsEnum(key string, enum []interface{}) {
 | 
					 | 
				
			||||||
	p.items["#"+key] = enum
 | 
					 | 
				
			||||||
	p.addEnum(key, enum)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *enumAnalysis) addSchemaEnum(key string, enum []interface{}) {
 | 
					 | 
				
			||||||
	p.schemas["#"+key] = enum
 | 
					 | 
				
			||||||
	p.addEnum(key, enum)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// New takes a swagger spec object and returns an analyzed spec document.
 | 
					 | 
				
			||||||
// The analyzed document contains a number of indices that make it easier to
 | 
					 | 
				
			||||||
// reason about semantics of a swagger specification for use in code generation
 | 
					 | 
				
			||||||
// or validation etc.
 | 
					 | 
				
			||||||
func New(doc *spec.Swagger) *Spec {
 | 
					 | 
				
			||||||
	a := &Spec{
 | 
					 | 
				
			||||||
		spec:       doc,
 | 
					 | 
				
			||||||
		references: referenceAnalysis{},
 | 
					 | 
				
			||||||
		patterns:   patternAnalysis{},
 | 
					 | 
				
			||||||
		enums:      enumAnalysis{},
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	a.reset()
 | 
					 | 
				
			||||||
	a.initialize()
 | 
					 | 
				
			||||||
	return a
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Spec is an analyzed specification object. It takes a swagger spec object and turns it into a registry
 | 
					 | 
				
			||||||
// with a bunch of utility methods to act on the information in the spec.
 | 
					 | 
				
			||||||
type Spec struct {
 | 
					 | 
				
			||||||
	spec        *spec.Swagger
 | 
					 | 
				
			||||||
	consumes    map[string]struct{}
 | 
					 | 
				
			||||||
	produces    map[string]struct{}
 | 
					 | 
				
			||||||
	authSchemes map[string]struct{}
 | 
					 | 
				
			||||||
	operations  map[string]map[string]*spec.Operation
 | 
					 | 
				
			||||||
	references  referenceAnalysis
 | 
					 | 
				
			||||||
	patterns    patternAnalysis
 | 
					 | 
				
			||||||
	enums       enumAnalysis
 | 
					 | 
				
			||||||
	allSchemas  map[string]SchemaRef
 | 
					 | 
				
			||||||
	allOfs      map[string]SchemaRef
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (s *Spec) reset() {
 | 
					 | 
				
			||||||
	s.consumes = make(map[string]struct{}, 150)
 | 
					 | 
				
			||||||
	s.produces = make(map[string]struct{}, 150)
 | 
					 | 
				
			||||||
	s.authSchemes = make(map[string]struct{}, 150)
 | 
					 | 
				
			||||||
	s.operations = make(map[string]map[string]*spec.Operation, 150)
 | 
					 | 
				
			||||||
	s.allSchemas = make(map[string]SchemaRef, 150)
 | 
					 | 
				
			||||||
	s.allOfs = make(map[string]SchemaRef, 150)
 | 
					 | 
				
			||||||
	s.references.schemas = make(map[string]spec.Ref, 150)
 | 
					 | 
				
			||||||
	s.references.pathItems = make(map[string]spec.Ref, 150)
 | 
					 | 
				
			||||||
	s.references.responses = make(map[string]spec.Ref, 150)
 | 
					 | 
				
			||||||
	s.references.parameters = make(map[string]spec.Ref, 150)
 | 
					 | 
				
			||||||
	s.references.items = make(map[string]spec.Ref, 150)
 | 
					 | 
				
			||||||
	s.references.headerItems = make(map[string]spec.Ref, 150)
 | 
					 | 
				
			||||||
	s.references.parameterItems = make(map[string]spec.Ref, 150)
 | 
					 | 
				
			||||||
	s.references.allRefs = make(map[string]spec.Ref, 150)
 | 
					 | 
				
			||||||
	s.patterns.parameters = make(map[string]string, 150)
 | 
					 | 
				
			||||||
	s.patterns.headers = make(map[string]string, 150)
 | 
					 | 
				
			||||||
	s.patterns.items = make(map[string]string, 150)
 | 
					 | 
				
			||||||
	s.patterns.schemas = make(map[string]string, 150)
 | 
					 | 
				
			||||||
	s.patterns.allPatterns = make(map[string]string, 150)
 | 
					 | 
				
			||||||
	s.enums.parameters = make(map[string][]interface{}, 150)
 | 
					 | 
				
			||||||
	s.enums.headers = make(map[string][]interface{}, 150)
 | 
					 | 
				
			||||||
	s.enums.items = make(map[string][]interface{}, 150)
 | 
					 | 
				
			||||||
	s.enums.schemas = make(map[string][]interface{}, 150)
 | 
					 | 
				
			||||||
	s.enums.allEnums = make(map[string][]interface{}, 150)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (s *Spec) reload() {
 | 
					 | 
				
			||||||
	s.reset()
 | 
					 | 
				
			||||||
	s.initialize()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (s *Spec) initialize() {
 | 
					 | 
				
			||||||
	for _, c := range s.spec.Consumes {
 | 
					 | 
				
			||||||
		s.consumes[c] = struct{}{}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for _, c := range s.spec.Produces {
 | 
					 | 
				
			||||||
		s.produces[c] = struct{}{}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for _, ss := range s.spec.Security {
 | 
					 | 
				
			||||||
		for k := range ss {
 | 
					 | 
				
			||||||
			s.authSchemes[k] = struct{}{}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for path, pathItem := range s.AllPaths() {
 | 
					 | 
				
			||||||
		s.analyzeOperations(path, &pathItem)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for name, parameter := range s.spec.Parameters {
 | 
					 | 
				
			||||||
		refPref := slashpath.Join("/parameters", jsonpointer.Escape(name))
 | 
					 | 
				
			||||||
		if parameter.Items != nil {
 | 
					 | 
				
			||||||
			s.analyzeItems("items", parameter.Items, refPref, "parameter")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if parameter.In == "body" && parameter.Schema != nil {
 | 
					 | 
				
			||||||
			s.analyzeSchema("schema", *parameter.Schema, refPref)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if parameter.Pattern != "" {
 | 
					 | 
				
			||||||
			s.patterns.addParameterPattern(refPref, parameter.Pattern)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if len(parameter.Enum) > 0 {
 | 
					 | 
				
			||||||
			s.enums.addParameterEnum(refPref, parameter.Enum)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for name, response := range s.spec.Responses {
 | 
					 | 
				
			||||||
		refPref := slashpath.Join("/responses", jsonpointer.Escape(name))
 | 
					 | 
				
			||||||
		for k, v := range response.Headers {
 | 
					 | 
				
			||||||
			hRefPref := slashpath.Join(refPref, "headers", k)
 | 
					 | 
				
			||||||
			if v.Items != nil {
 | 
					 | 
				
			||||||
				s.analyzeItems("items", v.Items, hRefPref, "header")
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if v.Pattern != "" {
 | 
					 | 
				
			||||||
				s.patterns.addHeaderPattern(hRefPref, v.Pattern)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if len(v.Enum) > 0 {
 | 
					 | 
				
			||||||
				s.enums.addHeaderEnum(hRefPref, v.Enum)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if response.Schema != nil {
 | 
					 | 
				
			||||||
			s.analyzeSchema("schema", *response.Schema, refPref)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for name, schema := range s.spec.Definitions {
 | 
					 | 
				
			||||||
		s.analyzeSchema(name, schema, "/definitions")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	// TODO: after analyzing all things and flattening schemas etc
 | 
					 | 
				
			||||||
	// resolve all the collected references to their final representations
 | 
					 | 
				
			||||||
	// best put in a separate method because this could get expensive
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (s *Spec) analyzeOperations(path string, pi *spec.PathItem) {
 | 
					 | 
				
			||||||
	// TODO: resolve refs here?
 | 
					 | 
				
			||||||
	// Currently, operations declared via pathItem $ref are known only after expansion
 | 
					 | 
				
			||||||
	op := pi
 | 
					 | 
				
			||||||
	if pi.Ref.String() != "" {
 | 
					 | 
				
			||||||
		key := slashpath.Join("/paths", jsonpointer.Escape(path))
 | 
					 | 
				
			||||||
		s.references.addPathItemRef(key, pi)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	s.analyzeOperation("GET", path, op.Get)
 | 
					 | 
				
			||||||
	s.analyzeOperation("PUT", path, op.Put)
 | 
					 | 
				
			||||||
	s.analyzeOperation("POST", path, op.Post)
 | 
					 | 
				
			||||||
	s.analyzeOperation("PATCH", path, op.Patch)
 | 
					 | 
				
			||||||
	s.analyzeOperation("DELETE", path, op.Delete)
 | 
					 | 
				
			||||||
	s.analyzeOperation("HEAD", path, op.Head)
 | 
					 | 
				
			||||||
	s.analyzeOperation("OPTIONS", path, op.Options)
 | 
					 | 
				
			||||||
	for i, param := range op.Parameters {
 | 
					 | 
				
			||||||
		refPref := slashpath.Join("/paths", jsonpointer.Escape(path), "parameters", strconv.Itoa(i))
 | 
					 | 
				
			||||||
		if param.Ref.String() != "" {
 | 
					 | 
				
			||||||
			s.references.addParamRef(refPref, ¶m)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if param.Pattern != "" {
 | 
					 | 
				
			||||||
			s.patterns.addParameterPattern(refPref, param.Pattern)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if len(param.Enum) > 0 {
 | 
					 | 
				
			||||||
			s.enums.addParameterEnum(refPref, param.Enum)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if param.Items != nil {
 | 
					 | 
				
			||||||
			s.analyzeItems("items", param.Items, refPref, "parameter")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if param.Schema != nil {
 | 
					 | 
				
			||||||
			s.analyzeSchema("schema", *param.Schema, refPref)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (s *Spec) analyzeItems(name string, items *spec.Items, prefix, location string) {
 | 
					 | 
				
			||||||
	if items == nil {
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	refPref := slashpath.Join(prefix, name)
 | 
					 | 
				
			||||||
	s.analyzeItems(name, items.Items, refPref, location)
 | 
					 | 
				
			||||||
	if items.Ref.String() != "" {
 | 
					 | 
				
			||||||
		s.references.addItemsRef(refPref, items, location)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if items.Pattern != "" {
 | 
					 | 
				
			||||||
		s.patterns.addItemsPattern(refPref, items.Pattern)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if len(items.Enum) > 0 {
 | 
					 | 
				
			||||||
		s.enums.addItemsEnum(refPref, items.Enum)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (s *Spec) analyzeOperation(method, path string, op *spec.Operation) {
 | 
					 | 
				
			||||||
	if op == nil {
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for _, c := range op.Consumes {
 | 
					 | 
				
			||||||
		s.consumes[c] = struct{}{}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for _, c := range op.Produces {
 | 
					 | 
				
			||||||
		s.produces[c] = struct{}{}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for _, ss := range op.Security {
 | 
					 | 
				
			||||||
		for k := range ss {
 | 
					 | 
				
			||||||
			s.authSchemes[k] = struct{}{}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if _, ok := s.operations[method]; !ok {
 | 
					 | 
				
			||||||
		s.operations[method] = make(map[string]*spec.Operation)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	s.operations[method][path] = op
 | 
					 | 
				
			||||||
	prefix := slashpath.Join("/paths", jsonpointer.Escape(path), strings.ToLower(method))
 | 
					 | 
				
			||||||
	for i, param := range op.Parameters {
 | 
					 | 
				
			||||||
		refPref := slashpath.Join(prefix, "parameters", strconv.Itoa(i))
 | 
					 | 
				
			||||||
		if param.Ref.String() != "" {
 | 
					 | 
				
			||||||
			s.references.addParamRef(refPref, ¶m)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if param.Pattern != "" {
 | 
					 | 
				
			||||||
			s.patterns.addParameterPattern(refPref, param.Pattern)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if len(param.Enum) > 0 {
 | 
					 | 
				
			||||||
			s.enums.addParameterEnum(refPref, param.Enum)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		s.analyzeItems("items", param.Items, refPref, "parameter")
 | 
					 | 
				
			||||||
		if param.In == "body" && param.Schema != nil {
 | 
					 | 
				
			||||||
			s.analyzeSchema("schema", *param.Schema, refPref)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if op.Responses != nil {
 | 
					 | 
				
			||||||
		if op.Responses.Default != nil {
 | 
					 | 
				
			||||||
			refPref := slashpath.Join(prefix, "responses", "default")
 | 
					 | 
				
			||||||
			if op.Responses.Default.Ref.String() != "" {
 | 
					 | 
				
			||||||
				s.references.addResponseRef(refPref, op.Responses.Default)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			for k, v := range op.Responses.Default.Headers {
 | 
					 | 
				
			||||||
				hRefPref := slashpath.Join(refPref, "headers", k)
 | 
					 | 
				
			||||||
				s.analyzeItems("items", v.Items, hRefPref, "header")
 | 
					 | 
				
			||||||
				if v.Pattern != "" {
 | 
					 | 
				
			||||||
					s.patterns.addHeaderPattern(hRefPref, v.Pattern)
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if op.Responses.Default.Schema != nil {
 | 
					 | 
				
			||||||
				s.analyzeSchema("schema", *op.Responses.Default.Schema, refPref)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		for k, res := range op.Responses.StatusCodeResponses {
 | 
					 | 
				
			||||||
			refPref := slashpath.Join(prefix, "responses", strconv.Itoa(k))
 | 
					 | 
				
			||||||
			if res.Ref.String() != "" {
 | 
					 | 
				
			||||||
				s.references.addResponseRef(refPref, &res)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			for k, v := range res.Headers {
 | 
					 | 
				
			||||||
				hRefPref := slashpath.Join(refPref, "headers", k)
 | 
					 | 
				
			||||||
				s.analyzeItems("items", v.Items, hRefPref, "header")
 | 
					 | 
				
			||||||
				if v.Pattern != "" {
 | 
					 | 
				
			||||||
					s.patterns.addHeaderPattern(hRefPref, v.Pattern)
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				if len(v.Enum) > 0 {
 | 
					 | 
				
			||||||
					s.enums.addHeaderEnum(hRefPref, v.Enum)
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if res.Schema != nil {
 | 
					 | 
				
			||||||
				s.analyzeSchema("schema", *res.Schema, refPref)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (s *Spec) analyzeSchema(name string, schema spec.Schema, prefix string) {
 | 
					 | 
				
			||||||
	refURI := slashpath.Join(prefix, jsonpointer.Escape(name))
 | 
					 | 
				
			||||||
	schRef := SchemaRef{
 | 
					 | 
				
			||||||
		Name:     name,
 | 
					 | 
				
			||||||
		Schema:   &schema,
 | 
					 | 
				
			||||||
		Ref:      spec.MustCreateRef("#" + refURI),
 | 
					 | 
				
			||||||
		TopLevel: prefix == "/definitions",
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	s.allSchemas["#"+refURI] = schRef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if schema.Ref.String() != "" {
 | 
					 | 
				
			||||||
		s.references.addSchemaRef(refURI, schRef)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if schema.Pattern != "" {
 | 
					 | 
				
			||||||
		s.patterns.addSchemaPattern(refURI, schema.Pattern)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if len(schema.Enum) > 0 {
 | 
					 | 
				
			||||||
		s.enums.addSchemaEnum(refURI, schema.Enum)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for k, v := range schema.Definitions {
 | 
					 | 
				
			||||||
		s.analyzeSchema(k, v, slashpath.Join(refURI, "definitions"))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for k, v := range schema.Properties {
 | 
					 | 
				
			||||||
		s.analyzeSchema(k, v, slashpath.Join(refURI, "properties"))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for k, v := range schema.PatternProperties {
 | 
					 | 
				
			||||||
		// NOTE: swagger 2.0 does not support PatternProperties.
 | 
					 | 
				
			||||||
		// However it is possible to analyze this in a schema
 | 
					 | 
				
			||||||
		s.analyzeSchema(k, v, slashpath.Join(refURI, "patternProperties"))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for i, v := range schema.AllOf {
 | 
					 | 
				
			||||||
		s.analyzeSchema(strconv.Itoa(i), v, slashpath.Join(refURI, "allOf"))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if len(schema.AllOf) > 0 {
 | 
					 | 
				
			||||||
		s.allOfs["#"+refURI] = schRef
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for i, v := range schema.AnyOf {
 | 
					 | 
				
			||||||
		// NOTE: swagger 2.0 does not support anyOf constructs.
 | 
					 | 
				
			||||||
		// However it is possible to analyze this in a schema
 | 
					 | 
				
			||||||
		s.analyzeSchema(strconv.Itoa(i), v, slashpath.Join(refURI, "anyOf"))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for i, v := range schema.OneOf {
 | 
					 | 
				
			||||||
		// NOTE: swagger 2.0 does not support oneOf constructs.
 | 
					 | 
				
			||||||
		// However it is possible to analyze this in a schema
 | 
					 | 
				
			||||||
		s.analyzeSchema(strconv.Itoa(i), v, slashpath.Join(refURI, "oneOf"))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if schema.Not != nil {
 | 
					 | 
				
			||||||
		// NOTE: swagger 2.0 does not support "not" constructs.
 | 
					 | 
				
			||||||
		// However it is possible to analyze this in a schema
 | 
					 | 
				
			||||||
		s.analyzeSchema("not", *schema.Not, refURI)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if schema.AdditionalProperties != nil && schema.AdditionalProperties.Schema != nil {
 | 
					 | 
				
			||||||
		s.analyzeSchema("additionalProperties", *schema.AdditionalProperties.Schema, refURI)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if schema.AdditionalItems != nil && schema.AdditionalItems.Schema != nil {
 | 
					 | 
				
			||||||
		// NOTE: swagger 2.0 does not support AdditionalItems.
 | 
					 | 
				
			||||||
		// However it is possible to analyze this in a schema
 | 
					 | 
				
			||||||
		s.analyzeSchema("additionalItems", *schema.AdditionalItems.Schema, refURI)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if schema.Items != nil {
 | 
					 | 
				
			||||||
		if schema.Items.Schema != nil {
 | 
					 | 
				
			||||||
			s.analyzeSchema("items", *schema.Items.Schema, refURI)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		for i, sch := range schema.Items.Schemas {
 | 
					 | 
				
			||||||
			s.analyzeSchema(strconv.Itoa(i), sch, slashpath.Join(refURI, "items"))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SecurityRequirement is a representation of a security requirement for an operation
 | 
					 | 
				
			||||||
type SecurityRequirement struct {
 | 
					 | 
				
			||||||
	Name   string
 | 
					 | 
				
			||||||
	Scopes []string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SecurityRequirementsFor gets the security requirements for the operation
 | 
					 | 
				
			||||||
func (s *Spec) SecurityRequirementsFor(operation *spec.Operation) [][]SecurityRequirement {
 | 
					 | 
				
			||||||
	if s.spec.Security == nil && operation.Security == nil {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	schemes := s.spec.Security
 | 
					 | 
				
			||||||
	if operation.Security != nil {
 | 
					 | 
				
			||||||
		schemes = operation.Security
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	result := [][]SecurityRequirement{}
 | 
					 | 
				
			||||||
	for _, scheme := range schemes {
 | 
					 | 
				
			||||||
		if len(scheme) == 0 {
 | 
					 | 
				
			||||||
			// append a zero object for anonymous
 | 
					 | 
				
			||||||
			result = append(result, []SecurityRequirement{{}})
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		var reqs []SecurityRequirement
 | 
					 | 
				
			||||||
		for k, v := range scheme {
 | 
					 | 
				
			||||||
			if v == nil {
 | 
					 | 
				
			||||||
				v = []string{}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			reqs = append(reqs, SecurityRequirement{Name: k, Scopes: v})
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		result = append(result, reqs)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return result
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SecurityDefinitionsForRequirements gets the matching security definitions for a set of requirements
 | 
					 | 
				
			||||||
func (s *Spec) SecurityDefinitionsForRequirements(requirements []SecurityRequirement) map[string]spec.SecurityScheme {
 | 
					 | 
				
			||||||
	result := make(map[string]spec.SecurityScheme)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for _, v := range requirements {
 | 
					 | 
				
			||||||
		if definition, ok := s.spec.SecurityDefinitions[v.Name]; ok {
 | 
					 | 
				
			||||||
			if definition != nil {
 | 
					 | 
				
			||||||
				result[v.Name] = *definition
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return result
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SecurityDefinitionsFor gets the matching security definitions for a set of requirements
 | 
					 | 
				
			||||||
func (s *Spec) SecurityDefinitionsFor(operation *spec.Operation) map[string]spec.SecurityScheme {
 | 
					 | 
				
			||||||
	requirements := s.SecurityRequirementsFor(operation)
 | 
					 | 
				
			||||||
	if len(requirements) == 0 {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	result := make(map[string]spec.SecurityScheme)
 | 
					 | 
				
			||||||
	for _, reqs := range requirements {
 | 
					 | 
				
			||||||
		for _, v := range reqs {
 | 
					 | 
				
			||||||
			if v.Name == "" {
 | 
					 | 
				
			||||||
				// optional requirement
 | 
					 | 
				
			||||||
				continue
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if _, ok := result[v.Name]; ok {
 | 
					 | 
				
			||||||
				// duplicate requirement
 | 
					 | 
				
			||||||
				continue
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if definition, ok := s.spec.SecurityDefinitions[v.Name]; ok {
 | 
					 | 
				
			||||||
				if definition != nil {
 | 
					 | 
				
			||||||
					result[v.Name] = *definition
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return result
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ConsumesFor gets the mediatypes for the operation
 | 
					 | 
				
			||||||
func (s *Spec) ConsumesFor(operation *spec.Operation) []string {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if len(operation.Consumes) == 0 {
 | 
					 | 
				
			||||||
		cons := make(map[string]struct{}, len(s.spec.Consumes))
 | 
					 | 
				
			||||||
		for _, k := range s.spec.Consumes {
 | 
					 | 
				
			||||||
			cons[k] = struct{}{}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return s.structMapKeys(cons)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	cons := make(map[string]struct{}, len(operation.Consumes))
 | 
					 | 
				
			||||||
	for _, c := range operation.Consumes {
 | 
					 | 
				
			||||||
		cons[c] = struct{}{}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return s.structMapKeys(cons)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ProducesFor gets the mediatypes for the operation
 | 
					 | 
				
			||||||
func (s *Spec) ProducesFor(operation *spec.Operation) []string {
 | 
					 | 
				
			||||||
	if len(operation.Produces) == 0 {
 | 
					 | 
				
			||||||
		prod := make(map[string]struct{}, len(s.spec.Produces))
 | 
					 | 
				
			||||||
		for _, k := range s.spec.Produces {
 | 
					 | 
				
			||||||
			prod[k] = struct{}{}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return s.structMapKeys(prod)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	prod := make(map[string]struct{}, len(operation.Produces))
 | 
					 | 
				
			||||||
	for _, c := range operation.Produces {
 | 
					 | 
				
			||||||
		prod[c] = struct{}{}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return s.structMapKeys(prod)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mapKeyFromParam(param *spec.Parameter) string {
 | 
					 | 
				
			||||||
	return fmt.Sprintf("%s#%s", param.In, fieldNameFromParam(param))
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func fieldNameFromParam(param *spec.Parameter) string {
 | 
					 | 
				
			||||||
	// TODO: this should be x-go-name
 | 
					 | 
				
			||||||
	if nm, ok := param.Extensions.GetString("go-name"); ok {
 | 
					 | 
				
			||||||
		return nm
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return swag.ToGoName(param.Name)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ErrorOnParamFunc is a callback function to be invoked
 | 
					 | 
				
			||||||
// whenever an error is encountered while resolving references
 | 
					 | 
				
			||||||
// on parameters.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// This function takes as input the spec.Parameter which triggered the
 | 
					 | 
				
			||||||
// error and the error itself.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// If the callback function returns false, the calling function should bail.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// If it returns true, the calling function should continue evaluating parameters.
 | 
					 | 
				
			||||||
// A nil ErrorOnParamFunc must be evaluated as equivalent to panic().
 | 
					 | 
				
			||||||
type ErrorOnParamFunc func(spec.Parameter, error) bool
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (s *Spec) paramsAsMap(parameters []spec.Parameter, res map[string]spec.Parameter, callmeOnError ErrorOnParamFunc) {
 | 
					 | 
				
			||||||
	for _, param := range parameters {
 | 
					 | 
				
			||||||
		pr := param
 | 
					 | 
				
			||||||
		if pr.Ref.String() != "" {
 | 
					 | 
				
			||||||
			obj, _, err := pr.Ref.GetPointer().Get(s.spec)
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				if callmeOnError != nil {
 | 
					 | 
				
			||||||
					if callmeOnError(param, fmt.Errorf("invalid reference: %q", pr.Ref.String())) {
 | 
					 | 
				
			||||||
						continue
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
					break
 | 
					 | 
				
			||||||
				} else {
 | 
					 | 
				
			||||||
					panic(fmt.Sprintf("invalid reference: %q", pr.Ref.String()))
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if objAsParam, ok := obj.(spec.Parameter); ok {
 | 
					 | 
				
			||||||
				pr = objAsParam
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				if callmeOnError != nil {
 | 
					 | 
				
			||||||
					if callmeOnError(param, fmt.Errorf("resolved reference is not a parameter: %q", pr.Ref.String())) {
 | 
					 | 
				
			||||||
						continue
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
					break
 | 
					 | 
				
			||||||
				} else {
 | 
					 | 
				
			||||||
					panic(fmt.Sprintf("resolved reference is not a parameter: %q", pr.Ref.String()))
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		res[mapKeyFromParam(&pr)] = pr
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ParametersFor the specified operation id.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Assumes parameters properly resolve references if any and that
 | 
					 | 
				
			||||||
// such references actually resolve to a parameter object.
 | 
					 | 
				
			||||||
// Otherwise, panics.
 | 
					 | 
				
			||||||
func (s *Spec) ParametersFor(operationID string) []spec.Parameter {
 | 
					 | 
				
			||||||
	return s.SafeParametersFor(operationID, nil)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SafeParametersFor the specified operation id.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Does not assume parameters properly resolve references or that
 | 
					 | 
				
			||||||
// such references actually resolve to a parameter object.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Upon error, invoke a ErrorOnParamFunc callback with the erroneous
 | 
					 | 
				
			||||||
// parameters. If the callback is set to nil, panics upon errors.
 | 
					 | 
				
			||||||
func (s *Spec) SafeParametersFor(operationID string, callmeOnError ErrorOnParamFunc) []spec.Parameter {
 | 
					 | 
				
			||||||
	gatherParams := func(pi *spec.PathItem, op *spec.Operation) []spec.Parameter {
 | 
					 | 
				
			||||||
		bag := make(map[string]spec.Parameter)
 | 
					 | 
				
			||||||
		s.paramsAsMap(pi.Parameters, bag, callmeOnError)
 | 
					 | 
				
			||||||
		s.paramsAsMap(op.Parameters, bag, callmeOnError)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		var res []spec.Parameter
 | 
					 | 
				
			||||||
		for _, v := range bag {
 | 
					 | 
				
			||||||
			res = append(res, v)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return res
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for _, pi := range s.spec.Paths.Paths {
 | 
					 | 
				
			||||||
		if pi.Get != nil && pi.Get.ID == operationID {
 | 
					 | 
				
			||||||
			return gatherParams(&pi, pi.Get)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if pi.Head != nil && pi.Head.ID == operationID {
 | 
					 | 
				
			||||||
			return gatherParams(&pi, pi.Head)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if pi.Options != nil && pi.Options.ID == operationID {
 | 
					 | 
				
			||||||
			return gatherParams(&pi, pi.Options)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if pi.Post != nil && pi.Post.ID == operationID {
 | 
					 | 
				
			||||||
			return gatherParams(&pi, pi.Post)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if pi.Patch != nil && pi.Patch.ID == operationID {
 | 
					 | 
				
			||||||
			return gatherParams(&pi, pi.Patch)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if pi.Put != nil && pi.Put.ID == operationID {
 | 
					 | 
				
			||||||
			return gatherParams(&pi, pi.Put)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if pi.Delete != nil && pi.Delete.ID == operationID {
 | 
					 | 
				
			||||||
			return gatherParams(&pi, pi.Delete)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ParamsFor the specified method and path. Aggregates them with the defaults etc, so it's all the params that
 | 
					 | 
				
			||||||
// apply for the method and path.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Assumes parameters properly resolve references if any and that
 | 
					 | 
				
			||||||
// such references actually resolve to a parameter object.
 | 
					 | 
				
			||||||
// Otherwise, panics.
 | 
					 | 
				
			||||||
func (s *Spec) ParamsFor(method, path string) map[string]spec.Parameter {
 | 
					 | 
				
			||||||
	return s.SafeParamsFor(method, path, nil)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SafeParamsFor the specified method and path. Aggregates them with the defaults etc, so it's all the params that
 | 
					 | 
				
			||||||
// apply for the method and path.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Does not assume parameters properly resolve references or that
 | 
					 | 
				
			||||||
// such references actually resolve to a parameter object.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Upon error, invoke a ErrorOnParamFunc callback with the erroneous
 | 
					 | 
				
			||||||
// parameters. If the callback is set to nil, panics upon errors.
 | 
					 | 
				
			||||||
func (s *Spec) SafeParamsFor(method, path string, callmeOnError ErrorOnParamFunc) map[string]spec.Parameter {
 | 
					 | 
				
			||||||
	res := make(map[string]spec.Parameter)
 | 
					 | 
				
			||||||
	if pi, ok := s.spec.Paths.Paths[path]; ok {
 | 
					 | 
				
			||||||
		s.paramsAsMap(pi.Parameters, res, callmeOnError)
 | 
					 | 
				
			||||||
		s.paramsAsMap(s.operations[strings.ToUpper(method)][path].Parameters, res, callmeOnError)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return res
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// OperationForName gets the operation for the given id
 | 
					 | 
				
			||||||
func (s *Spec) OperationForName(operationID string) (string, string, *spec.Operation, bool) {
 | 
					 | 
				
			||||||
	for method, pathItem := range s.operations {
 | 
					 | 
				
			||||||
		for path, op := range pathItem {
 | 
					 | 
				
			||||||
			if operationID == op.ID {
 | 
					 | 
				
			||||||
				return method, path, op, true
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return "", "", nil, false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// OperationFor the given method and path
 | 
					 | 
				
			||||||
func (s *Spec) OperationFor(method, path string) (*spec.Operation, bool) {
 | 
					 | 
				
			||||||
	if mp, ok := s.operations[strings.ToUpper(method)]; ok {
 | 
					 | 
				
			||||||
		op, fn := mp[path]
 | 
					 | 
				
			||||||
		return op, fn
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil, false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Operations gathers all the operations specified in the spec document
 | 
					 | 
				
			||||||
func (s *Spec) Operations() map[string]map[string]*spec.Operation {
 | 
					 | 
				
			||||||
	return s.operations
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (s *Spec) structMapKeys(mp map[string]struct{}) []string {
 | 
					 | 
				
			||||||
	if len(mp) == 0 {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	result := make([]string, 0, len(mp))
 | 
					 | 
				
			||||||
	for k := range mp {
 | 
					 | 
				
			||||||
		result = append(result, k)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return result
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllPaths returns all the paths in the swagger spec
 | 
					 | 
				
			||||||
func (s *Spec) AllPaths() map[string]spec.PathItem {
 | 
					 | 
				
			||||||
	if s.spec == nil || s.spec.Paths == nil {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return s.spec.Paths.Paths
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// OperationIDs gets all the operation ids based on method an dpath
 | 
					 | 
				
			||||||
func (s *Spec) OperationIDs() []string {
 | 
					 | 
				
			||||||
	if len(s.operations) == 0 {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	result := make([]string, 0, len(s.operations))
 | 
					 | 
				
			||||||
	for method, v := range s.operations {
 | 
					 | 
				
			||||||
		for p, o := range v {
 | 
					 | 
				
			||||||
			if o.ID != "" {
 | 
					 | 
				
			||||||
				result = append(result, o.ID)
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				result = append(result, fmt.Sprintf("%s %s", strings.ToUpper(method), p))
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return result
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// OperationMethodPaths gets all the operation ids based on method an dpath
 | 
					 | 
				
			||||||
func (s *Spec) OperationMethodPaths() []string {
 | 
					 | 
				
			||||||
	if len(s.operations) == 0 {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	result := make([]string, 0, len(s.operations))
 | 
					 | 
				
			||||||
	for method, v := range s.operations {
 | 
					 | 
				
			||||||
		for p := range v {
 | 
					 | 
				
			||||||
			result = append(result, fmt.Sprintf("%s %s", strings.ToUpper(method), p))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return result
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// RequiredConsumes gets all the distinct consumes that are specified in the specification document
 | 
					 | 
				
			||||||
func (s *Spec) RequiredConsumes() []string {
 | 
					 | 
				
			||||||
	return s.structMapKeys(s.consumes)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// RequiredProduces gets all the distinct produces that are specified in the specification document
 | 
					 | 
				
			||||||
func (s *Spec) RequiredProduces() []string {
 | 
					 | 
				
			||||||
	return s.structMapKeys(s.produces)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// RequiredSecuritySchemes gets all the distinct security schemes that are specified in the swagger spec
 | 
					 | 
				
			||||||
func (s *Spec) RequiredSecuritySchemes() []string {
 | 
					 | 
				
			||||||
	return s.structMapKeys(s.authSchemes)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SchemaRef is a reference to a schema
 | 
					 | 
				
			||||||
type SchemaRef struct {
 | 
					 | 
				
			||||||
	Name     string
 | 
					 | 
				
			||||||
	Ref      spec.Ref
 | 
					 | 
				
			||||||
	Schema   *spec.Schema
 | 
					 | 
				
			||||||
	TopLevel bool
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SchemasWithAllOf returns schema references to all schemas that are defined
 | 
					 | 
				
			||||||
// with an allOf key
 | 
					 | 
				
			||||||
func (s *Spec) SchemasWithAllOf() (result []SchemaRef) {
 | 
					 | 
				
			||||||
	for _, v := range s.allOfs {
 | 
					 | 
				
			||||||
		result = append(result, v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllDefinitions returns schema references for all the definitions that were discovered
 | 
					 | 
				
			||||||
func (s *Spec) AllDefinitions() (result []SchemaRef) {
 | 
					 | 
				
			||||||
	for _, v := range s.allSchemas {
 | 
					 | 
				
			||||||
		result = append(result, v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllDefinitionReferences returns json refs for all the discovered schemas
 | 
					 | 
				
			||||||
func (s *Spec) AllDefinitionReferences() (result []string) {
 | 
					 | 
				
			||||||
	for _, v := range s.references.schemas {
 | 
					 | 
				
			||||||
		result = append(result, v.String())
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllParameterReferences returns json refs for all the discovered parameters
 | 
					 | 
				
			||||||
func (s *Spec) AllParameterReferences() (result []string) {
 | 
					 | 
				
			||||||
	for _, v := range s.references.parameters {
 | 
					 | 
				
			||||||
		result = append(result, v.String())
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllResponseReferences returns json refs for all the discovered responses
 | 
					 | 
				
			||||||
func (s *Spec) AllResponseReferences() (result []string) {
 | 
					 | 
				
			||||||
	for _, v := range s.references.responses {
 | 
					 | 
				
			||||||
		result = append(result, v.String())
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllPathItemReferences returns the references for all the items
 | 
					 | 
				
			||||||
func (s *Spec) AllPathItemReferences() (result []string) {
 | 
					 | 
				
			||||||
	for _, v := range s.references.pathItems {
 | 
					 | 
				
			||||||
		result = append(result, v.String())
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllItemsReferences returns the references for all the items in simple schemas (parameters or headers).
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// NOTE: since Swagger 2.0 forbids $ref in simple params, this should always yield an empty slice for a valid
 | 
					 | 
				
			||||||
// Swagger 2.0 spec.
 | 
					 | 
				
			||||||
func (s *Spec) AllItemsReferences() (result []string) {
 | 
					 | 
				
			||||||
	for _, v := range s.references.items {
 | 
					 | 
				
			||||||
		result = append(result, v.String())
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllReferences returns all the references found in the document, with possible duplicates
 | 
					 | 
				
			||||||
func (s *Spec) AllReferences() (result []string) {
 | 
					 | 
				
			||||||
	for _, v := range s.references.allRefs {
 | 
					 | 
				
			||||||
		result = append(result, v.String())
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllRefs returns all the unique references found in the document
 | 
					 | 
				
			||||||
func (s *Spec) AllRefs() (result []spec.Ref) {
 | 
					 | 
				
			||||||
	set := make(map[string]struct{})
 | 
					 | 
				
			||||||
	for _, v := range s.references.allRefs {
 | 
					 | 
				
			||||||
		a := v.String()
 | 
					 | 
				
			||||||
		if a == "" {
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if _, ok := set[a]; !ok {
 | 
					 | 
				
			||||||
			set[a] = struct{}{}
 | 
					 | 
				
			||||||
			result = append(result, v)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func cloneStringMap(source map[string]string) map[string]string {
 | 
					 | 
				
			||||||
	res := make(map[string]string, len(source))
 | 
					 | 
				
			||||||
	for k, v := range source {
 | 
					 | 
				
			||||||
		res[k] = v
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return res
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func cloneEnumMap(source map[string][]interface{}) map[string][]interface{} {
 | 
					 | 
				
			||||||
	res := make(map[string][]interface{}, len(source))
 | 
					 | 
				
			||||||
	for k, v := range source {
 | 
					 | 
				
			||||||
		res[k] = v
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return res
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ParameterPatterns returns all the patterns found in parameters
 | 
					 | 
				
			||||||
// the map is cloned to avoid accidental changes
 | 
					 | 
				
			||||||
func (s *Spec) ParameterPatterns() map[string]string {
 | 
					 | 
				
			||||||
	return cloneStringMap(s.patterns.parameters)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// HeaderPatterns returns all the patterns found in response headers
 | 
					 | 
				
			||||||
// the map is cloned to avoid accidental changes
 | 
					 | 
				
			||||||
func (s *Spec) HeaderPatterns() map[string]string {
 | 
					 | 
				
			||||||
	return cloneStringMap(s.patterns.headers)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ItemsPatterns returns all the patterns found in simple array items
 | 
					 | 
				
			||||||
// the map is cloned to avoid accidental changes
 | 
					 | 
				
			||||||
func (s *Spec) ItemsPatterns() map[string]string {
 | 
					 | 
				
			||||||
	return cloneStringMap(s.patterns.items)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SchemaPatterns returns all the patterns found in schemas
 | 
					 | 
				
			||||||
// the map is cloned to avoid accidental changes
 | 
					 | 
				
			||||||
func (s *Spec) SchemaPatterns() map[string]string {
 | 
					 | 
				
			||||||
	return cloneStringMap(s.patterns.schemas)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllPatterns returns all the patterns found in the spec
 | 
					 | 
				
			||||||
// the map is cloned to avoid accidental changes
 | 
					 | 
				
			||||||
func (s *Spec) AllPatterns() map[string]string {
 | 
					 | 
				
			||||||
	return cloneStringMap(s.patterns.allPatterns)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ParameterEnums returns all the enums found in parameters
 | 
					 | 
				
			||||||
// the map is cloned to avoid accidental changes
 | 
					 | 
				
			||||||
func (s *Spec) ParameterEnums() map[string][]interface{} {
 | 
					 | 
				
			||||||
	return cloneEnumMap(s.enums.parameters)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// HeaderEnums returns all the enums found in response headers
 | 
					 | 
				
			||||||
// the map is cloned to avoid accidental changes
 | 
					 | 
				
			||||||
func (s *Spec) HeaderEnums() map[string][]interface{} {
 | 
					 | 
				
			||||||
	return cloneEnumMap(s.enums.headers)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ItemsEnums returns all the enums found in simple array items
 | 
					 | 
				
			||||||
// the map is cloned to avoid accidental changes
 | 
					 | 
				
			||||||
func (s *Spec) ItemsEnums() map[string][]interface{} {
 | 
					 | 
				
			||||||
	return cloneEnumMap(s.enums.items)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SchemaEnums returns all the enums found in schemas
 | 
					 | 
				
			||||||
// the map is cloned to avoid accidental changes
 | 
					 | 
				
			||||||
func (s *Spec) SchemaEnums() map[string][]interface{} {
 | 
					 | 
				
			||||||
	return cloneEnumMap(s.enums.schemas)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllEnums returns all the enums found in the spec
 | 
					 | 
				
			||||||
// the map is cloned to avoid accidental changes
 | 
					 | 
				
			||||||
func (s *Spec) AllEnums() map[string][]interface{} {
 | 
					 | 
				
			||||||
	return cloneEnumMap(s.enums.allEnums)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										33
									
								
								vendor/github.com/go-openapi/analysis/appveyor.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								vendor/github.com/go-openapi/analysis/appveyor.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,33 +0,0 @@
 | 
				
			|||||||
version: "0.1.{build}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
clone_folder: C:\go-openapi\analysis
 | 
					 | 
				
			||||||
shallow_clone: true # for startup speed
 | 
					 | 
				
			||||||
pull_requests:
 | 
					 | 
				
			||||||
  do_not_increment_build_number: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#skip_tags: true
 | 
					 | 
				
			||||||
#skip_branch_with_pr: true
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# appveyor.yml
 | 
					 | 
				
			||||||
build: off
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
environment:
 | 
					 | 
				
			||||||
  GOPATH: c:\gopath
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
stack: go 1.12
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
test_script:
 | 
					 | 
				
			||||||
  - go test -v -timeout 20m ./...
 | 
					 | 
				
			||||||
#artifacts:
 | 
					 | 
				
			||||||
#  - path: '%GOPATH%\bin\*.exe'
 | 
					 | 
				
			||||||
deploy: off
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
notifications:
 | 
					 | 
				
			||||||
  - provider: Slack
 | 
					 | 
				
			||||||
    incoming_webhook: https://hooks.slack.com/services/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
 | 
					 | 
				
			||||||
    auth_token:
 | 
					 | 
				
			||||||
      secure: Sf7kZf7ZGbnwWUMpffHwMu5A0cHkLK2MYY32LNTPj4+/3qC3Ghl7+9v4TSLOqOlCwdRNjOGblAq7s+GDJed6/xgRQl1JtCi1klzZNrYX4q01pgTPvvGcwbBkIYgeMaPeIRcK9OZnud7sRXdttozgTOpytps2U6Js32ip7uj5mHSg2ub0FwoSJwlS6dbezZ8+eDhoha0F/guY99BEwx8Bd+zROrT2TFGsSGOFGN6wFc7moCqTHO/YkWib13a2QNXqOxCCVBy/lt76Wp+JkeFppjHlzs/2lP3EAk13RIUAaesdEUHvIHrzCyNJEd3/+KO2DzsWOYfpktd+KBCvgaYOsoo7ubdT3IROeAegZdCgo/6xgCEsmFc9ZcqCfN5yNx2A+BZ2Vwmpws+bQ1E1+B5HDzzaiLcYfG4X2O210QVGVDLWsv1jqD+uPYeHY2WRfh5ZsIUFvaqgUEnwHwrK44/8REAhQavt1QAj5uJpsRd7CkRVPWRNK+yIky+wgbVUFEchRNmS55E7QWf+W4+4QZkQi7vUTMc9nbTUu2Es9NfvfudOpM2wZbn98fjpb/qq/nRv6Bk+ca+7XD5/IgNLMbWp2ouDdzbiHLCOfDUiHiDJhLfFZx9Bwo7ZwfzeOlbrQX66bx7xRKYmOe4DLrXhNcpbsMa8qbfxlZRCmYbubB/Y8h4=
 | 
					 | 
				
			||||||
    channel: bots
 | 
					 | 
				
			||||||
    on_build_success: false
 | 
					 | 
				
			||||||
    on_build_failure: true
 | 
					 | 
				
			||||||
    on_build_status_changed: true
 | 
					 | 
				
			||||||
							
								
								
									
										47
									
								
								vendor/github.com/go-openapi/analysis/debug.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								vendor/github.com/go-openapi/analysis/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 analysis
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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 the spec analyzer.
 | 
					 | 
				
			||||||
	Debug = os.Getenv("SWAGGER_DEBUG") != ""
 | 
					 | 
				
			||||||
	// analysisLogger is a debug logger for this package
 | 
					 | 
				
			||||||
	analysisLogger *log.Logger
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func init() {
 | 
					 | 
				
			||||||
	debugOptions()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func debugOptions() {
 | 
					 | 
				
			||||||
	analysisLogger = log.New(os.Stdout, "analysis:", 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)
 | 
					 | 
				
			||||||
		analysisLogger.Printf("%s:%d: %s", filepath.Base(file1), pos1, fmt.Sprintf(msg, args...))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										43
									
								
								vendor/github.com/go-openapi/analysis/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										43
									
								
								vendor/github.com/go-openapi/analysis/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,43 +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 analysis provides methods to work with a Swagger specification document from
 | 
					 | 
				
			||||||
package go-openapi/spec.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Analyzing a specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
An analysed specification object (type Spec) provides methods to work with swagger definition.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Flattening or expanding a specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Flattening a specification bundles all remote $ref in the main spec document.
 | 
					 | 
				
			||||||
Depending on flattening options, additional preprocessing may take place:
 | 
					 | 
				
			||||||
  - full flattening: replacing all inline complex constructs by a named entry in #/definitions
 | 
					 | 
				
			||||||
  - expand: replace all $ref's in the document by their expanded content
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Merging several specifications
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Mixin several specifications merges all Swagger constructs, and warns about found conflicts.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Fixing a specification
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Unmarshalling a specification with golang json unmarshalling may lead to
 | 
					 | 
				
			||||||
some unwanted result on present but empty fields.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Analyzing a Swagger schema
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Swagger schemas are analyzed to determine their complexity and qualify their content.
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
package analysis
 | 
					 | 
				
			||||||
							
								
								
									
										76
									
								
								vendor/github.com/go-openapi/analysis/fixer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										76
									
								
								vendor/github.com/go-openapi/analysis/fixer.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,76 +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 analysis
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import "github.com/go-openapi/spec"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// FixEmptyResponseDescriptions replaces empty ("") response
 | 
					 | 
				
			||||||
// descriptions in the input with "(empty)" to ensure that the
 | 
					 | 
				
			||||||
// resulting Swagger is stays valid.  The problem appears to arise
 | 
					 | 
				
			||||||
// from reading in valid specs that have a explicit response
 | 
					 | 
				
			||||||
// description of "" (valid, response.description is required), but
 | 
					 | 
				
			||||||
// due to zero values being omitted upon re-serializing (omitempty) we
 | 
					 | 
				
			||||||
// lose them unless we stick some chars in there.
 | 
					 | 
				
			||||||
func FixEmptyResponseDescriptions(s *spec.Swagger) {
 | 
					 | 
				
			||||||
	if s.Paths != nil {
 | 
					 | 
				
			||||||
		for _, v := range s.Paths.Paths {
 | 
					 | 
				
			||||||
			if v.Get != nil {
 | 
					 | 
				
			||||||
				FixEmptyDescs(v.Get.Responses)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if v.Put != nil {
 | 
					 | 
				
			||||||
				FixEmptyDescs(v.Put.Responses)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if v.Post != nil {
 | 
					 | 
				
			||||||
				FixEmptyDescs(v.Post.Responses)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if v.Delete != nil {
 | 
					 | 
				
			||||||
				FixEmptyDescs(v.Delete.Responses)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if v.Options != nil {
 | 
					 | 
				
			||||||
				FixEmptyDescs(v.Options.Responses)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if v.Head != nil {
 | 
					 | 
				
			||||||
				FixEmptyDescs(v.Head.Responses)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if v.Patch != nil {
 | 
					 | 
				
			||||||
				FixEmptyDescs(v.Patch.Responses)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for k, v := range s.Responses {
 | 
					 | 
				
			||||||
		FixEmptyDesc(&v)
 | 
					 | 
				
			||||||
		s.Responses[k] = v
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// FixEmptyDescs adds "(empty)" as the description for any Response in
 | 
					 | 
				
			||||||
// the given Responses object that doesn't already have one.
 | 
					 | 
				
			||||||
func FixEmptyDescs(rs *spec.Responses) {
 | 
					 | 
				
			||||||
	FixEmptyDesc(rs.Default)
 | 
					 | 
				
			||||||
	for k, v := range rs.StatusCodeResponses {
 | 
					 | 
				
			||||||
		FixEmptyDesc(&v)
 | 
					 | 
				
			||||||
		rs.StatusCodeResponses[k] = v
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// FixEmptyDesc adds "(empty)" as the description to the given
 | 
					 | 
				
			||||||
// Response object if it doesn't already have one and isn't a
 | 
					 | 
				
			||||||
// ref. No-op on nil input.
 | 
					 | 
				
			||||||
func FixEmptyDesc(rs *spec.Response) {
 | 
					 | 
				
			||||||
	if rs == nil || rs.Description != "" || rs.Ref.Ref.GetURL() != nil {
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	rs.Description = "(empty)"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										1732
									
								
								vendor/github.com/go-openapi/analysis/flatten.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										1732
									
								
								vendor/github.com/go-openapi/analysis/flatten.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										13
									
								
								vendor/github.com/go-openapi/analysis/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/go-openapi/analysis/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,13 +0,0 @@
 | 
				
			|||||||
module github.com/go-openapi/analysis
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require (
 | 
					 | 
				
			||||||
	github.com/go-openapi/jsonpointer v0.19.3
 | 
					 | 
				
			||||||
	github.com/go-openapi/loads v0.19.0
 | 
					 | 
				
			||||||
	github.com/go-openapi/spec v0.19.3
 | 
					 | 
				
			||||||
	github.com/go-openapi/strfmt v0.19.3
 | 
					 | 
				
			||||||
	github.com/go-openapi/swag v0.19.5
 | 
					 | 
				
			||||||
	github.com/stretchr/testify v1.3.0
 | 
					 | 
				
			||||||
	go.mongodb.org/mongo-driver v1.1.1 // indirect
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
go 1.13
 | 
					 | 
				
			||||||
							
								
								
									
										97
									
								
								vendor/github.com/go-openapi/analysis/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										97
									
								
								vendor/github.com/go-openapi/analysis/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,97 +0,0 @@
 | 
				
			|||||||
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/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/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 | 
					 | 
				
			||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
 | 
					 | 
				
			||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 | 
					 | 
				
			||||||
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/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 | 
					 | 
				
			||||||
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
 | 
					 | 
				
			||||||
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
 | 
					 | 
				
			||||||
github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=
 | 
					 | 
				
			||||||
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.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.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
 | 
					 | 
				
			||||||
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/loads v0.19.0 h1:wCOBNscACI8L93tt5tvB2zOMkJ098XCw3fP0BY2ybDA=
 | 
					 | 
				
			||||||
github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
 | 
					 | 
				
			||||||
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
 | 
					 | 
				
			||||||
github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc=
 | 
					 | 
				
			||||||
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.19.2 h1:clPGfBnJohokno0e+d7hs6Yocrzjlgz6EsQSDncCRnE=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.19.3 h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
 | 
					 | 
				
			||||||
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
 | 
					 | 
				
			||||||
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/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
 | 
					 | 
				
			||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 | 
					 | 
				
			||||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
 | 
					 | 
				
			||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 | 
					 | 
				
			||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 | 
					 | 
				
			||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 | 
					 | 
				
			||||||
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-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 | 
					 | 
				
			||||||
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/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
 | 
					 | 
				
			||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 | 
					 | 
				
			||||||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
 | 
					 | 
				
			||||||
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/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
					 | 
				
			||||||
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
 | 
					 | 
				
			||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 | 
					 | 
				
			||||||
go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU=
 | 
					 | 
				
			||||||
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 | 
					 | 
				
			||||||
go.mongodb.org/mongo-driver v1.1.1 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs=
 | 
					 | 
				
			||||||
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
					 | 
				
			||||||
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/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
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=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 | 
					 | 
				
			||||||
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.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					 | 
				
			||||||
							
								
								
									
										29
									
								
								vendor/github.com/go-openapi/analysis/internal/post_go18.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/go-openapi/analysis/internal/post_go18.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,29 +0,0 @@
 | 
				
			|||||||
// +build go1.8
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 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 internal
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import "net/url"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// PathUnescape provides url.PathUnescape(), with seamless
 | 
					 | 
				
			||||||
// go version support for pre-go1.8
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// TODO: this function is currently defined in go-openapi/swag,
 | 
					 | 
				
			||||||
// but unexported. We might chose to export it, or simple phase
 | 
					 | 
				
			||||||
// out pre-go1.8 support.
 | 
					 | 
				
			||||||
func PathUnescape(path string) (string, error) {
 | 
					 | 
				
			||||||
	return url.PathUnescape(path)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										29
									
								
								vendor/github.com/go-openapi/analysis/internal/pre_go18.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/go-openapi/analysis/internal/pre_go18.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,29 +0,0 @@
 | 
				
			|||||||
// +build !go1.8
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// 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 internal
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import "net/url"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// PathUnescape provides url.PathUnescape(), with seamless
 | 
					 | 
				
			||||||
// go version support for pre-go1.8
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// TODO: this function is currently defined in go-openapi/swag,
 | 
					 | 
				
			||||||
// but unexported. We might chose to export it, or simple phase
 | 
					 | 
				
			||||||
// out pre-go1.8 support.
 | 
					 | 
				
			||||||
func PathUnescape(path string) (string, error) {
 | 
					 | 
				
			||||||
	return url.QueryUnescape(path)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										425
									
								
								vendor/github.com/go-openapi/analysis/mixin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										425
									
								
								vendor/github.com/go-openapi/analysis/mixin.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,425 +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 analysis
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"reflect"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/spec"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Mixin modifies the primary swagger spec by adding the paths and
 | 
					 | 
				
			||||||
// definitions from the mixin specs. Top level parameters and
 | 
					 | 
				
			||||||
// responses from the mixins are also carried over. Operation id
 | 
					 | 
				
			||||||
// collisions are avoided by appending "Mixin<N>" but only if
 | 
					 | 
				
			||||||
// needed.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// The following parts of primary are subject to merge, filling empty details
 | 
					 | 
				
			||||||
//   - Info
 | 
					 | 
				
			||||||
//   - BasePath
 | 
					 | 
				
			||||||
//   - Host
 | 
					 | 
				
			||||||
//   - ExternalDocs
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Consider calling FixEmptyResponseDescriptions() on the modified primary
 | 
					 | 
				
			||||||
// if you read them from storage and they are valid to start with.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Entries in "paths", "definitions", "parameters" and "responses" are
 | 
					 | 
				
			||||||
// added to the primary in the order of the given mixins. If the entry
 | 
					 | 
				
			||||||
// already exists in primary it is skipped with a warning message.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// The count of skipped entries (from collisions) is returned so any
 | 
					 | 
				
			||||||
// deviation from the number expected can flag a warning in your build
 | 
					 | 
				
			||||||
// scripts. Carefully review the collisions before accepting them;
 | 
					 | 
				
			||||||
// consider renaming things if possible.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// No key normalization takes place (paths, type defs,
 | 
					 | 
				
			||||||
// etc). Ensure they are canonical if your downstream tools do
 | 
					 | 
				
			||||||
// key normalization of any form.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Merging schemes (http, https), and consumers/producers do not account for
 | 
					 | 
				
			||||||
// collisions.
 | 
					 | 
				
			||||||
func Mixin(primary *spec.Swagger, mixins ...*spec.Swagger) []string {
 | 
					 | 
				
			||||||
	skipped := make([]string, 0, len(mixins))
 | 
					 | 
				
			||||||
	opIds := getOpIds(primary)
 | 
					 | 
				
			||||||
	initPrimary(primary)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for i, m := range mixins {
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergeSwaggerProps(primary, m)...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergeConsumes(primary, m)...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergeProduces(primary, m)...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergeTags(primary, m)...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergeSchemes(primary, m)...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergeSecurityDefinitions(primary, m)...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergeSecurityRequirements(primary, m)...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergeDefinitions(primary, m)...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		// merging paths requires a map of operationIDs to work with
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergePaths(primary, m, opIds, i)...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergeParameters(primary, m)...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		skipped = append(skipped, mergeResponses(primary, m)...)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return skipped
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// getOpIds extracts all the paths.<path>.operationIds from the given
 | 
					 | 
				
			||||||
// spec and returns them as the keys in a map with 'true' values.
 | 
					 | 
				
			||||||
func getOpIds(s *spec.Swagger) map[string]bool {
 | 
					 | 
				
			||||||
	rv := make(map[string]bool)
 | 
					 | 
				
			||||||
	if s.Paths == nil {
 | 
					 | 
				
			||||||
		return rv
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	for _, v := range s.Paths.Paths {
 | 
					 | 
				
			||||||
		piops := pathItemOps(v)
 | 
					 | 
				
			||||||
		for _, op := range piops {
 | 
					 | 
				
			||||||
			rv[op.ID] = true
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return rv
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func pathItemOps(p spec.PathItem) []*spec.Operation {
 | 
					 | 
				
			||||||
	var rv []*spec.Operation
 | 
					 | 
				
			||||||
	rv = appendOp(rv, p.Get)
 | 
					 | 
				
			||||||
	rv = appendOp(rv, p.Put)
 | 
					 | 
				
			||||||
	rv = appendOp(rv, p.Post)
 | 
					 | 
				
			||||||
	rv = appendOp(rv, p.Delete)
 | 
					 | 
				
			||||||
	rv = appendOp(rv, p.Head)
 | 
					 | 
				
			||||||
	rv = appendOp(rv, p.Patch)
 | 
					 | 
				
			||||||
	return rv
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func appendOp(ops []*spec.Operation, op *spec.Operation) []*spec.Operation {
 | 
					 | 
				
			||||||
	if op == nil {
 | 
					 | 
				
			||||||
		return ops
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return append(ops, op)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeSecurityDefinitions(primary *spec.Swagger, m *spec.Swagger) (skipped []string) {
 | 
					 | 
				
			||||||
	for k, v := range m.SecurityDefinitions {
 | 
					 | 
				
			||||||
		if _, exists := primary.SecurityDefinitions[k]; exists {
 | 
					 | 
				
			||||||
			warn := fmt.Sprintf(
 | 
					 | 
				
			||||||
				"SecurityDefinitions entry '%v' already exists in primary or higher priority mixin, skipping\n", k)
 | 
					 | 
				
			||||||
			skipped = append(skipped, warn)
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		primary.SecurityDefinitions[k] = v
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeSecurityRequirements(primary *spec.Swagger, m *spec.Swagger) (skipped []string) {
 | 
					 | 
				
			||||||
	for _, v := range m.Security {
 | 
					 | 
				
			||||||
		found := false
 | 
					 | 
				
			||||||
		for _, vv := range primary.Security {
 | 
					 | 
				
			||||||
			if reflect.DeepEqual(v, vv) {
 | 
					 | 
				
			||||||
				found = true
 | 
					 | 
				
			||||||
				break
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if found {
 | 
					 | 
				
			||||||
			warn := fmt.Sprintf(
 | 
					 | 
				
			||||||
				"Security requirement: '%v' already exists in primary or higher priority mixin, skipping\n", v)
 | 
					 | 
				
			||||||
			skipped = append(skipped, warn)
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		primary.Security = append(primary.Security, v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeDefinitions(primary *spec.Swagger, m *spec.Swagger) (skipped []string) {
 | 
					 | 
				
			||||||
	for k, v := range m.Definitions {
 | 
					 | 
				
			||||||
		// assume name collisions represent IDENTICAL type. careful.
 | 
					 | 
				
			||||||
		if _, exists := primary.Definitions[k]; exists {
 | 
					 | 
				
			||||||
			warn := fmt.Sprintf(
 | 
					 | 
				
			||||||
				"definitions entry '%v' already exists in primary or higher priority mixin, skipping\n", k)
 | 
					 | 
				
			||||||
			skipped = append(skipped, warn)
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		primary.Definitions[k] = v
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergePaths(primary *spec.Swagger, m *spec.Swagger, opIds map[string]bool, mixIndex int) (skipped []string) {
 | 
					 | 
				
			||||||
	if m.Paths != nil {
 | 
					 | 
				
			||||||
		for k, v := range m.Paths.Paths {
 | 
					 | 
				
			||||||
			if _, exists := primary.Paths.Paths[k]; exists {
 | 
					 | 
				
			||||||
				warn := fmt.Sprintf(
 | 
					 | 
				
			||||||
					"paths entry '%v' already exists in primary or higher priority mixin, skipping\n", k)
 | 
					 | 
				
			||||||
				skipped = append(skipped, warn)
 | 
					 | 
				
			||||||
				continue
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			// Swagger requires that operationIds be
 | 
					 | 
				
			||||||
			// unique within a spec. If we find a
 | 
					 | 
				
			||||||
			// collision we append "Mixin0" to the
 | 
					 | 
				
			||||||
			// operatoinId we are adding, where 0 is mixin
 | 
					 | 
				
			||||||
			// index.  We assume that operationIds with
 | 
					 | 
				
			||||||
			// all the proivded specs are already unique.
 | 
					 | 
				
			||||||
			piops := pathItemOps(v)
 | 
					 | 
				
			||||||
			for _, piop := range piops {
 | 
					 | 
				
			||||||
				if opIds[piop.ID] {
 | 
					 | 
				
			||||||
					piop.ID = fmt.Sprintf("%v%v%v", piop.ID, "Mixin", mixIndex)
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				opIds[piop.ID] = true
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			primary.Paths.Paths[k] = v
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeParameters(primary *spec.Swagger, m *spec.Swagger) (skipped []string) {
 | 
					 | 
				
			||||||
	for k, v := range m.Parameters {
 | 
					 | 
				
			||||||
		// could try to rename on conflict but would
 | 
					 | 
				
			||||||
		// have to fix $refs in the mixin. Complain
 | 
					 | 
				
			||||||
		// for now
 | 
					 | 
				
			||||||
		if _, exists := primary.Parameters[k]; exists {
 | 
					 | 
				
			||||||
			warn := fmt.Sprintf(
 | 
					 | 
				
			||||||
				"top level parameters entry '%v' already exists in primary or higher priority mixin, skipping\n", k)
 | 
					 | 
				
			||||||
			skipped = append(skipped, warn)
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		primary.Parameters[k] = v
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeResponses(primary *spec.Swagger, m *spec.Swagger) (skipped []string) {
 | 
					 | 
				
			||||||
	for k, v := range m.Responses {
 | 
					 | 
				
			||||||
		// could try to rename on conflict but would
 | 
					 | 
				
			||||||
		// have to fix $refs in the mixin. Complain
 | 
					 | 
				
			||||||
		// for now
 | 
					 | 
				
			||||||
		if _, exists := primary.Responses[k]; exists {
 | 
					 | 
				
			||||||
			warn := fmt.Sprintf(
 | 
					 | 
				
			||||||
				"top level responses entry '%v' already exists in primary or higher priority mixin, skipping\n", k)
 | 
					 | 
				
			||||||
			skipped = append(skipped, warn)
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		primary.Responses[k] = v
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return skipped
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeConsumes(primary *spec.Swagger, m *spec.Swagger) []string {
 | 
					 | 
				
			||||||
	for _, v := range m.Consumes {
 | 
					 | 
				
			||||||
		found := false
 | 
					 | 
				
			||||||
		for _, vv := range primary.Consumes {
 | 
					 | 
				
			||||||
			if v == vv {
 | 
					 | 
				
			||||||
				found = true
 | 
					 | 
				
			||||||
				break
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if found {
 | 
					 | 
				
			||||||
			// no warning here: we just skip it
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		primary.Consumes = append(primary.Consumes, v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return []string{}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeProduces(primary *spec.Swagger, m *spec.Swagger) []string {
 | 
					 | 
				
			||||||
	for _, v := range m.Produces {
 | 
					 | 
				
			||||||
		found := false
 | 
					 | 
				
			||||||
		for _, vv := range primary.Produces {
 | 
					 | 
				
			||||||
			if v == vv {
 | 
					 | 
				
			||||||
				found = true
 | 
					 | 
				
			||||||
				break
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if found {
 | 
					 | 
				
			||||||
			// no warning here: we just skip it
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		primary.Produces = append(primary.Produces, v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return []string{}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeTags(primary *spec.Swagger, m *spec.Swagger) (skipped []string) {
 | 
					 | 
				
			||||||
	for _, v := range m.Tags {
 | 
					 | 
				
			||||||
		found := false
 | 
					 | 
				
			||||||
		for _, vv := range primary.Tags {
 | 
					 | 
				
			||||||
			if v.Name == vv.Name {
 | 
					 | 
				
			||||||
				found = true
 | 
					 | 
				
			||||||
				break
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if found {
 | 
					 | 
				
			||||||
			warn := fmt.Sprintf(
 | 
					 | 
				
			||||||
				"top level tags entry with name '%v' already exists in primary or higher priority mixin, skipping\n", v.Name)
 | 
					 | 
				
			||||||
			skipped = append(skipped, warn)
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		primary.Tags = append(primary.Tags, v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeSchemes(primary *spec.Swagger, m *spec.Swagger) []string {
 | 
					 | 
				
			||||||
	for _, v := range m.Schemes {
 | 
					 | 
				
			||||||
		found := false
 | 
					 | 
				
			||||||
		for _, vv := range primary.Schemes {
 | 
					 | 
				
			||||||
			if v == vv {
 | 
					 | 
				
			||||||
				found = true
 | 
					 | 
				
			||||||
				break
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if found {
 | 
					 | 
				
			||||||
			// no warning here: we just skip it
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		primary.Schemes = append(primary.Schemes, v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return []string{}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeSwaggerProps(primary *spec.Swagger, m *spec.Swagger) []string {
 | 
					 | 
				
			||||||
	var skipped []string
 | 
					 | 
				
			||||||
	primary.Extensions, skipped = mergeExtensions(primary.Extensions, m.Extensions)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// merging details in swagger top properties
 | 
					 | 
				
			||||||
	if primary.Host == "" {
 | 
					 | 
				
			||||||
		primary.Host = m.Host
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.BasePath == "" {
 | 
					 | 
				
			||||||
		primary.BasePath = m.BasePath
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Info == nil {
 | 
					 | 
				
			||||||
		primary.Info = m.Info
 | 
					 | 
				
			||||||
	} else if m.Info != nil {
 | 
					 | 
				
			||||||
		var sk []string
 | 
					 | 
				
			||||||
		primary.Info.Extensions, sk = mergeExtensions(primary.Info.Extensions, m.Info.Extensions)
 | 
					 | 
				
			||||||
		skipped = append(skipped, sk...)
 | 
					 | 
				
			||||||
		if primary.Info.Description == "" {
 | 
					 | 
				
			||||||
			primary.Info.Description = m.Info.Description
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if primary.Info.Title == "" {
 | 
					 | 
				
			||||||
			primary.Info.Description = m.Info.Description
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if primary.Info.TermsOfService == "" {
 | 
					 | 
				
			||||||
			primary.Info.TermsOfService = m.Info.TermsOfService
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if primary.Info.Version == "" {
 | 
					 | 
				
			||||||
			primary.Info.Version = m.Info.Version
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if primary.Info.Contact == nil {
 | 
					 | 
				
			||||||
			primary.Info.Contact = m.Info.Contact
 | 
					 | 
				
			||||||
		} else if m.Info.Contact != nil {
 | 
					 | 
				
			||||||
			if primary.Info.Contact.Name == "" {
 | 
					 | 
				
			||||||
				primary.Info.Contact.Name = m.Info.Contact.Name
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if primary.Info.Contact.URL == "" {
 | 
					 | 
				
			||||||
				primary.Info.Contact.URL = m.Info.Contact.URL
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if primary.Info.Contact.Email == "" {
 | 
					 | 
				
			||||||
				primary.Info.Contact.Email = m.Info.Contact.Email
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if primary.Info.License == nil {
 | 
					 | 
				
			||||||
			primary.Info.License = m.Info.License
 | 
					 | 
				
			||||||
		} else if m.Info.License != nil {
 | 
					 | 
				
			||||||
			if primary.Info.License.Name == "" {
 | 
					 | 
				
			||||||
				primary.Info.License.Name = m.Info.License.Name
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if primary.Info.License.URL == "" {
 | 
					 | 
				
			||||||
				primary.Info.License.URL = m.Info.License.URL
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.ExternalDocs == nil {
 | 
					 | 
				
			||||||
		primary.ExternalDocs = m.ExternalDocs
 | 
					 | 
				
			||||||
	} else if m.ExternalDocs != nil {
 | 
					 | 
				
			||||||
		if primary.ExternalDocs.Description == "" {
 | 
					 | 
				
			||||||
			primary.ExternalDocs.Description = m.ExternalDocs.Description
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if primary.ExternalDocs.URL == "" {
 | 
					 | 
				
			||||||
			primary.ExternalDocs.URL = m.ExternalDocs.URL
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return skipped
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func mergeExtensions(primary spec.Extensions, m spec.Extensions) (result spec.Extensions, skipped []string) {
 | 
					 | 
				
			||||||
	if primary == nil {
 | 
					 | 
				
			||||||
		result = m
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if m == nil {
 | 
					 | 
				
			||||||
		result = primary
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	result = primary
 | 
					 | 
				
			||||||
	for k, v := range m {
 | 
					 | 
				
			||||||
		if _, found := primary[k]; found {
 | 
					 | 
				
			||||||
			skipped = append(skipped, k)
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		primary[k] = v
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func initPrimary(primary *spec.Swagger) {
 | 
					 | 
				
			||||||
	if primary.SecurityDefinitions == nil {
 | 
					 | 
				
			||||||
		primary.SecurityDefinitions = make(map[string]*spec.SecurityScheme)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Security == nil {
 | 
					 | 
				
			||||||
		primary.Security = make([]map[string][]string, 0, 10)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Produces == nil {
 | 
					 | 
				
			||||||
		primary.Produces = make([]string, 0, 10)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Consumes == nil {
 | 
					 | 
				
			||||||
		primary.Consumes = make([]string, 0, 10)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Tags == nil {
 | 
					 | 
				
			||||||
		primary.Tags = make([]spec.Tag, 0, 10)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Schemes == nil {
 | 
					 | 
				
			||||||
		primary.Schemes = make([]string, 0, 10)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Paths == nil {
 | 
					 | 
				
			||||||
		primary.Paths = &spec.Paths{Paths: make(map[string]spec.PathItem)}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Paths.Paths == nil {
 | 
					 | 
				
			||||||
		primary.Paths.Paths = make(map[string]spec.PathItem)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Definitions == nil {
 | 
					 | 
				
			||||||
		primary.Definitions = make(spec.Definitions)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Parameters == nil {
 | 
					 | 
				
			||||||
		primary.Parameters = make(map[string]spec.Parameter)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if primary.Responses == nil {
 | 
					 | 
				
			||||||
		primary.Responses = make(map[string]spec.Response)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										234
									
								
								vendor/github.com/go-openapi/analysis/schema.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										234
									
								
								vendor/github.com/go-openapi/analysis/schema.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,234 +0,0 @@
 | 
				
			|||||||
package analysis
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/spec"
 | 
					 | 
				
			||||||
	"github.com/go-openapi/strfmt"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SchemaOpts configures the schema analyzer
 | 
					 | 
				
			||||||
type SchemaOpts struct {
 | 
					 | 
				
			||||||
	Schema   *spec.Schema
 | 
					 | 
				
			||||||
	Root     interface{}
 | 
					 | 
				
			||||||
	BasePath string
 | 
					 | 
				
			||||||
	_        struct{}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Schema analysis, will classify the schema according to known
 | 
					 | 
				
			||||||
// patterns.
 | 
					 | 
				
			||||||
func Schema(opts SchemaOpts) (*AnalyzedSchema, error) {
 | 
					 | 
				
			||||||
	if opts.Schema == nil {
 | 
					 | 
				
			||||||
		return nil, fmt.Errorf("no schema to analyze")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	a := &AnalyzedSchema{
 | 
					 | 
				
			||||||
		schema:   opts.Schema,
 | 
					 | 
				
			||||||
		root:     opts.Root,
 | 
					 | 
				
			||||||
		basePath: opts.BasePath,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	a.initializeFlags()
 | 
					 | 
				
			||||||
	a.inferKnownType()
 | 
					 | 
				
			||||||
	a.inferEnum()
 | 
					 | 
				
			||||||
	a.inferBaseType()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if err := a.inferMap(); err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if err := a.inferArray(); err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	a.inferTuple()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if err := a.inferFromRef(); err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	a.inferSimpleSchema()
 | 
					 | 
				
			||||||
	return a, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AnalyzedSchema indicates what the schema represents
 | 
					 | 
				
			||||||
type AnalyzedSchema struct {
 | 
					 | 
				
			||||||
	schema   *spec.Schema
 | 
					 | 
				
			||||||
	root     interface{}
 | 
					 | 
				
			||||||
	basePath string
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	hasProps           bool
 | 
					 | 
				
			||||||
	hasAllOf           bool
 | 
					 | 
				
			||||||
	hasItems           bool
 | 
					 | 
				
			||||||
	hasAdditionalProps bool
 | 
					 | 
				
			||||||
	hasAdditionalItems bool
 | 
					 | 
				
			||||||
	hasRef             bool
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	IsKnownType      bool
 | 
					 | 
				
			||||||
	IsSimpleSchema   bool
 | 
					 | 
				
			||||||
	IsArray          bool
 | 
					 | 
				
			||||||
	IsSimpleArray    bool
 | 
					 | 
				
			||||||
	IsMap            bool
 | 
					 | 
				
			||||||
	IsSimpleMap      bool
 | 
					 | 
				
			||||||
	IsExtendedObject bool
 | 
					 | 
				
			||||||
	IsTuple          bool
 | 
					 | 
				
			||||||
	IsTupleWithExtra bool
 | 
					 | 
				
			||||||
	IsBaseType       bool
 | 
					 | 
				
			||||||
	IsEnum           bool
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Inherits copies value fields from other onto this schema
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) inherits(other *AnalyzedSchema) {
 | 
					 | 
				
			||||||
	if other == nil {
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	a.hasProps = other.hasProps
 | 
					 | 
				
			||||||
	a.hasAllOf = other.hasAllOf
 | 
					 | 
				
			||||||
	a.hasItems = other.hasItems
 | 
					 | 
				
			||||||
	a.hasAdditionalItems = other.hasAdditionalItems
 | 
					 | 
				
			||||||
	a.hasAdditionalProps = other.hasAdditionalProps
 | 
					 | 
				
			||||||
	a.hasRef = other.hasRef
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	a.IsKnownType = other.IsKnownType
 | 
					 | 
				
			||||||
	a.IsSimpleSchema = other.IsSimpleSchema
 | 
					 | 
				
			||||||
	a.IsArray = other.IsArray
 | 
					 | 
				
			||||||
	a.IsSimpleArray = other.IsSimpleArray
 | 
					 | 
				
			||||||
	a.IsMap = other.IsMap
 | 
					 | 
				
			||||||
	a.IsSimpleMap = other.IsSimpleMap
 | 
					 | 
				
			||||||
	a.IsExtendedObject = other.IsExtendedObject
 | 
					 | 
				
			||||||
	a.IsTuple = other.IsTuple
 | 
					 | 
				
			||||||
	a.IsTupleWithExtra = other.IsTupleWithExtra
 | 
					 | 
				
			||||||
	a.IsBaseType = other.IsBaseType
 | 
					 | 
				
			||||||
	a.IsEnum = other.IsEnum
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) inferFromRef() error {
 | 
					 | 
				
			||||||
	if a.hasRef {
 | 
					 | 
				
			||||||
		sch := new(spec.Schema)
 | 
					 | 
				
			||||||
		sch.Ref = a.schema.Ref
 | 
					 | 
				
			||||||
		err := spec.ExpandSchema(sch, a.root, nil)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		rsch, err := Schema(SchemaOpts{
 | 
					 | 
				
			||||||
			Schema:   sch,
 | 
					 | 
				
			||||||
			Root:     a.root,
 | 
					 | 
				
			||||||
			BasePath: a.basePath,
 | 
					 | 
				
			||||||
		})
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			// NOTE(fredbi): currently the only cause for errors is
 | 
					 | 
				
			||||||
			// unresolved ref. Since spec.ExpandSchema() expands the
 | 
					 | 
				
			||||||
			// schema recursively, there is no chance to get there,
 | 
					 | 
				
			||||||
			// until we add more causes for error in this schema analysis.
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		a.inherits(rsch)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) inferSimpleSchema() {
 | 
					 | 
				
			||||||
	a.IsSimpleSchema = a.IsKnownType || a.IsSimpleArray || a.IsSimpleMap
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) inferKnownType() {
 | 
					 | 
				
			||||||
	tpe := a.schema.Type
 | 
					 | 
				
			||||||
	format := a.schema.Format
 | 
					 | 
				
			||||||
	a.IsKnownType = tpe.Contains("boolean") ||
 | 
					 | 
				
			||||||
		tpe.Contains("integer") ||
 | 
					 | 
				
			||||||
		tpe.Contains("number") ||
 | 
					 | 
				
			||||||
		tpe.Contains("string") ||
 | 
					 | 
				
			||||||
		(format != "" && strfmt.Default.ContainsName(format)) ||
 | 
					 | 
				
			||||||
		(a.isObjectType() && !a.hasProps && !a.hasAllOf && !a.hasAdditionalProps && !a.hasAdditionalItems)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) inferMap() error {
 | 
					 | 
				
			||||||
	if a.isObjectType() {
 | 
					 | 
				
			||||||
		hasExtra := a.hasProps || a.hasAllOf
 | 
					 | 
				
			||||||
		a.IsMap = a.hasAdditionalProps && !hasExtra
 | 
					 | 
				
			||||||
		a.IsExtendedObject = a.hasAdditionalProps && hasExtra
 | 
					 | 
				
			||||||
		if a.IsMap {
 | 
					 | 
				
			||||||
			if a.schema.AdditionalProperties.Schema != nil {
 | 
					 | 
				
			||||||
				msch, err := Schema(SchemaOpts{
 | 
					 | 
				
			||||||
					Schema:   a.schema.AdditionalProperties.Schema,
 | 
					 | 
				
			||||||
					Root:     a.root,
 | 
					 | 
				
			||||||
					BasePath: a.basePath,
 | 
					 | 
				
			||||||
				})
 | 
					 | 
				
			||||||
				if err != nil {
 | 
					 | 
				
			||||||
					return err
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				a.IsSimpleMap = msch.IsSimpleSchema
 | 
					 | 
				
			||||||
			} else if a.schema.AdditionalProperties.Allows {
 | 
					 | 
				
			||||||
				a.IsSimpleMap = true
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) inferArray() error {
 | 
					 | 
				
			||||||
	// an array has Items defined as an object schema, otherwise we qualify this JSON array as a tuple
 | 
					 | 
				
			||||||
	// (yes, even if the Items array contains only one element).
 | 
					 | 
				
			||||||
	// arrays in JSON schema may be unrestricted (i.e no Items specified).
 | 
					 | 
				
			||||||
	// Note that arrays in Swagger MUST have Items. Nonetheless, we analyze unrestricted arrays.
 | 
					 | 
				
			||||||
	//
 | 
					 | 
				
			||||||
	// NOTE: the spec package misses the distinction between:
 | 
					 | 
				
			||||||
	// items: [] and items: {}, so we consider both arrays here.
 | 
					 | 
				
			||||||
	a.IsArray = a.isArrayType() && (a.schema.Items == nil || a.schema.Items.Schemas == nil)
 | 
					 | 
				
			||||||
	if a.IsArray && a.hasItems {
 | 
					 | 
				
			||||||
		if a.schema.Items.Schema != nil {
 | 
					 | 
				
			||||||
			itsch, err := Schema(SchemaOpts{
 | 
					 | 
				
			||||||
				Schema:   a.schema.Items.Schema,
 | 
					 | 
				
			||||||
				Root:     a.root,
 | 
					 | 
				
			||||||
				BasePath: a.basePath,
 | 
					 | 
				
			||||||
			})
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return err
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			a.IsSimpleArray = itsch.IsSimpleSchema
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if a.IsArray && !a.hasItems {
 | 
					 | 
				
			||||||
		a.IsSimpleArray = true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) inferTuple() {
 | 
					 | 
				
			||||||
	tuple := a.hasItems && a.schema.Items.Schemas != nil
 | 
					 | 
				
			||||||
	a.IsTuple = tuple && !a.hasAdditionalItems
 | 
					 | 
				
			||||||
	a.IsTupleWithExtra = tuple && a.hasAdditionalItems
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) inferBaseType() {
 | 
					 | 
				
			||||||
	if a.isObjectType() {
 | 
					 | 
				
			||||||
		a.IsBaseType = a.schema.Discriminator != ""
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) inferEnum() {
 | 
					 | 
				
			||||||
	a.IsEnum = len(a.schema.Enum) > 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) initializeFlags() {
 | 
					 | 
				
			||||||
	a.hasProps = len(a.schema.Properties) > 0
 | 
					 | 
				
			||||||
	a.hasAllOf = len(a.schema.AllOf) > 0
 | 
					 | 
				
			||||||
	a.hasRef = a.schema.Ref.String() != ""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	a.hasItems = a.schema.Items != nil &&
 | 
					 | 
				
			||||||
		(a.schema.Items.Schema != nil || len(a.schema.Items.Schemas) > 0)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	a.hasAdditionalProps = a.schema.AdditionalProperties != nil &&
 | 
					 | 
				
			||||||
		(a.schema.AdditionalProperties != nil || a.schema.AdditionalProperties.Allows)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	a.hasAdditionalItems = a.schema.AdditionalItems != nil &&
 | 
					 | 
				
			||||||
		(a.schema.AdditionalItems.Schema != nil || a.schema.AdditionalItems.Allows)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) isObjectType() bool {
 | 
					 | 
				
			||||||
	return !a.hasRef && (a.schema.Type == nil || a.schema.Type.Contains("") || a.schema.Type.Contains("object"))
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *AnalyzedSchema) isArrayType() bool {
 | 
					 | 
				
			||||||
	return !a.hasRef && (a.schema.Type != nil && a.schema.Type.Contains("array"))
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										2
									
								
								vendor/github.com/go-openapi/errors/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-openapi/errors/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,2 +0,0 @@
 | 
				
			|||||||
secrets.yml
 | 
					 | 
				
			||||||
coverage.out
 | 
					 | 
				
			||||||
							
								
								
									
										20
									
								
								vendor/github.com/go-openapi/errors/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								vendor/github.com/go-openapi/errors/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,20 +0,0 @@
 | 
				
			|||||||
linters-settings:
 | 
					 | 
				
			||||||
  govet:
 | 
					 | 
				
			||||||
    check-shadowing: true
 | 
					 | 
				
			||||||
  golint:
 | 
					 | 
				
			||||||
    min-confidence: 0
 | 
					 | 
				
			||||||
  gocyclo:
 | 
					 | 
				
			||||||
    min-complexity: 30
 | 
					 | 
				
			||||||
  maligned:
 | 
					 | 
				
			||||||
    suggest-new: true
 | 
					 | 
				
			||||||
  dupl:
 | 
					 | 
				
			||||||
    threshold: 100
 | 
					 | 
				
			||||||
  goconst:
 | 
					 | 
				
			||||||
    min-len: 2
 | 
					 | 
				
			||||||
    min-occurrences: 4
 | 
					 | 
				
			||||||
linters:
 | 
					 | 
				
			||||||
  enable-all: true
 | 
					 | 
				
			||||||
  disable:
 | 
					 | 
				
			||||||
    - maligned
 | 
					 | 
				
			||||||
    - lll
 | 
					 | 
				
			||||||
    - gochecknoglobals
 | 
					 | 
				
			||||||
							
								
								
									
										15
									
								
								vendor/github.com/go-openapi/errors/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/go-openapi/errors/.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: gZGp9NaHxi7zawlXJXKY92BGeDR1x0tbIcTyU5nMKLq0fhIaiEBJEeALwZ4VgqsSv3DytSSF5mLH8fevAM3ixE6hxjKQ+lQuf7V/w3btCN1CSWgoua5LOh1kTnqZQtJuRvO4pzoJcT3bJWBsVZ07VGNVzzJEy/zAKCHFqBUCXShw7QemlLBcYWFNqveTlvDIfCzvouoLnPoXwxEpkjxe9uz/ZKZgAnup/fXjC8RFctmgCnkCyvJTk0Y/fZCsufixJrJhshBWTnlrFCzRmgNkz2d+i1Ls3+MJ5EJJ2Tx/A5S63dL49J1f9Kr0AKHADmulSy8JNzIckKwbyFMYUecrsW+Lsu9DhnVMy1jj5pKsJDLRi2iIU3fXTMWbcyQbXjbbnBO2mPdP3Tzme75y4D9fc8hUPeyqVv2BU26NEbQ7EF2pKJ93OXvci7HlwRBgdJa8j6mP2LEDClcPQW00g7N/OZe0cTOMa8L5AwiBlbArwqt9wv6YLJoTG0wpDhzWsFvbCg5bJxe28Yn3fIDD0Lk1I7iSnBbp/5gzF19jmxqvcT8tHRkDL4xfjbENFTZjA5uB4Z4pj4WSyWQILLV/Jwhe3fi9uQwdviFHfj5pnVrmNUiGSOQL672K5wl2c3E9mGwejvsu2dfEz28n7Y/FUnOpY3/cBS0n27JJaerS0zMKNLE=
 | 
					 | 
				
			||||||
script:
 | 
					 | 
				
			||||||
- gotestsum -f short-verbose -- -race -coverprofile=coverage.txt -covermode=atomic ./...
 | 
					 | 
				
			||||||
							
								
								
									
										74
									
								
								vendor/github.com/go-openapi/errors/CODE_OF_CONDUCT.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										74
									
								
								vendor/github.com/go-openapi/errors/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/errors/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										202
									
								
								vendor/github.com/go-openapi/errors/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.
 | 
					 | 
				
			||||||
							
								
								
									
										8
									
								
								vendor/github.com/go-openapi/errors/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								vendor/github.com/go-openapi/errors/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,8 +0,0 @@
 | 
				
			|||||||
# OpenAPI errors [](https://travis-ci.org/go-openapi/errors) [](https://codecov.io/gh/go-openapi/errors) [](https://slackin.goswagger.io)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[](https://raw.githubusercontent.com/go-openapi/errors/master/LICENSE)
 | 
					 | 
				
			||||||
[](http://godoc.org/github.com/go-openapi/errors)
 | 
					 | 
				
			||||||
[](https://golangci.com)
 | 
					 | 
				
			||||||
[](https://goreportcard.com/report/github.com/go-openapi/errors)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Shared errors and error interface used throughout the various libraries found in the go-openapi toolkit.
 | 
					 | 
				
			||||||
							
								
								
									
										164
									
								
								vendor/github.com/go-openapi/errors/api.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										164
									
								
								vendor/github.com/go-openapi/errors/api.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,164 +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 errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"encoding/json"
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"net/http"
 | 
					 | 
				
			||||||
	"reflect"
 | 
					 | 
				
			||||||
	"strings"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DefaultHTTPCode is used when the error Code cannot be used as an HTTP code.
 | 
					 | 
				
			||||||
var DefaultHTTPCode = http.StatusUnprocessableEntity
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Error represents a error interface all swagger framework errors implement
 | 
					 | 
				
			||||||
type Error interface {
 | 
					 | 
				
			||||||
	error
 | 
					 | 
				
			||||||
	Code() int32
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type apiError struct {
 | 
					 | 
				
			||||||
	code    int32
 | 
					 | 
				
			||||||
	message string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *apiError) Error() string {
 | 
					 | 
				
			||||||
	return a.message
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *apiError) Code() int32 {
 | 
					 | 
				
			||||||
	return a.code
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// New creates a new API error with a code and a message
 | 
					 | 
				
			||||||
func New(code int32, message string, args ...interface{}) Error {
 | 
					 | 
				
			||||||
	if len(args) > 0 {
 | 
					 | 
				
			||||||
		return &apiError{code, fmt.Sprintf(message, args...)}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &apiError{code, message}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NotFound creates a new not found error
 | 
					 | 
				
			||||||
func NotFound(message string, args ...interface{}) Error {
 | 
					 | 
				
			||||||
	if message == "" {
 | 
					 | 
				
			||||||
		message = "Not found"
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return New(http.StatusNotFound, fmt.Sprintf(message, args...))
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NotImplemented creates a new not implemented error
 | 
					 | 
				
			||||||
func NotImplemented(message string) Error {
 | 
					 | 
				
			||||||
	return New(http.StatusNotImplemented, message)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MethodNotAllowedError represents an error for when the path matches but the method doesn't
 | 
					 | 
				
			||||||
type MethodNotAllowedError struct {
 | 
					 | 
				
			||||||
	code    int32
 | 
					 | 
				
			||||||
	Allowed []string
 | 
					 | 
				
			||||||
	message string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (m *MethodNotAllowedError) Error() string {
 | 
					 | 
				
			||||||
	return m.message
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Code the error code
 | 
					 | 
				
			||||||
func (m *MethodNotAllowedError) Code() int32 {
 | 
					 | 
				
			||||||
	return m.code
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func errorAsJSON(err Error) []byte {
 | 
					 | 
				
			||||||
	b, _ := json.Marshal(struct {
 | 
					 | 
				
			||||||
		Code    int32  `json:"code"`
 | 
					 | 
				
			||||||
		Message string `json:"message"`
 | 
					 | 
				
			||||||
	}{err.Code(), err.Error()})
 | 
					 | 
				
			||||||
	return b
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func flattenComposite(errs *CompositeError) *CompositeError {
 | 
					 | 
				
			||||||
	var res []error
 | 
					 | 
				
			||||||
	for _, er := range errs.Errors {
 | 
					 | 
				
			||||||
		switch e := er.(type) {
 | 
					 | 
				
			||||||
		case *CompositeError:
 | 
					 | 
				
			||||||
			if len(e.Errors) > 0 {
 | 
					 | 
				
			||||||
				flat := flattenComposite(e)
 | 
					 | 
				
			||||||
				if len(flat.Errors) > 0 {
 | 
					 | 
				
			||||||
					res = append(res, flat.Errors...)
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		default:
 | 
					 | 
				
			||||||
			if e != nil {
 | 
					 | 
				
			||||||
				res = append(res, e)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return CompositeValidationError(res...)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MethodNotAllowed creates a new method not allowed error
 | 
					 | 
				
			||||||
func MethodNotAllowed(requested string, allow []string) Error {
 | 
					 | 
				
			||||||
	msg := fmt.Sprintf("method %s is not allowed, but [%s] are", requested, strings.Join(allow, ","))
 | 
					 | 
				
			||||||
	return &MethodNotAllowedError{code: http.StatusMethodNotAllowed, Allowed: allow, message: msg}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ServeError the error handler interface implementation
 | 
					 | 
				
			||||||
func ServeError(rw http.ResponseWriter, r *http.Request, err error) {
 | 
					 | 
				
			||||||
	rw.Header().Set("Content-Type", "application/json")
 | 
					 | 
				
			||||||
	switch e := err.(type) {
 | 
					 | 
				
			||||||
	case *CompositeError:
 | 
					 | 
				
			||||||
		er := flattenComposite(e)
 | 
					 | 
				
			||||||
		// strips composite errors to first element only
 | 
					 | 
				
			||||||
		if len(er.Errors) > 0 {
 | 
					 | 
				
			||||||
			ServeError(rw, r, er.Errors[0])
 | 
					 | 
				
			||||||
		} else {
 | 
					 | 
				
			||||||
			// guard against empty CompositeError (invalid construct)
 | 
					 | 
				
			||||||
			ServeError(rw, r, nil)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	case *MethodNotAllowedError:
 | 
					 | 
				
			||||||
		rw.Header().Add("Allow", strings.Join(err.(*MethodNotAllowedError).Allowed, ","))
 | 
					 | 
				
			||||||
		rw.WriteHeader(asHTTPCode(int(e.Code())))
 | 
					 | 
				
			||||||
		if r == nil || r.Method != http.MethodHead {
 | 
					 | 
				
			||||||
			_, _ = rw.Write(errorAsJSON(e))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	case Error:
 | 
					 | 
				
			||||||
		value := reflect.ValueOf(e)
 | 
					 | 
				
			||||||
		if value.Kind() == reflect.Ptr && value.IsNil() {
 | 
					 | 
				
			||||||
			rw.WriteHeader(http.StatusInternalServerError)
 | 
					 | 
				
			||||||
			_, _ = rw.Write(errorAsJSON(New(http.StatusInternalServerError, "Unknown error")))
 | 
					 | 
				
			||||||
			return
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		rw.WriteHeader(asHTTPCode(int(e.Code())))
 | 
					 | 
				
			||||||
		if r == nil || r.Method != http.MethodHead {
 | 
					 | 
				
			||||||
			_, _ = rw.Write(errorAsJSON(e))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	case nil:
 | 
					 | 
				
			||||||
		rw.WriteHeader(http.StatusInternalServerError)
 | 
					 | 
				
			||||||
		_, _ = rw.Write(errorAsJSON(New(http.StatusInternalServerError, "Unknown error")))
 | 
					 | 
				
			||||||
	default:
 | 
					 | 
				
			||||||
		rw.WriteHeader(http.StatusInternalServerError)
 | 
					 | 
				
			||||||
		if r == nil || r.Method != http.MethodHead {
 | 
					 | 
				
			||||||
			_, _ = rw.Write(errorAsJSON(New(http.StatusInternalServerError, err.Error())))
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func asHTTPCode(input int) int {
 | 
					 | 
				
			||||||
	if input >= 600 {
 | 
					 | 
				
			||||||
		return DefaultHTTPCode
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return input
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										22
									
								
								vendor/github.com/go-openapi/errors/auth.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/go-openapi/errors/auth.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,22 +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 errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import "net/http"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Unauthenticated returns an unauthenticated error
 | 
					 | 
				
			||||||
func Unauthenticated(scheme string) Error {
 | 
					 | 
				
			||||||
	return New(http.StatusUnauthorized, "unauthenticated for %s", scheme)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										28
									
								
								vendor/github.com/go-openapi/errors/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/go-openapi/errors/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,28 +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 errors provides an Error interface and several concrete types
 | 
					 | 
				
			||||||
implementing this interface to manage API errors and JSON-schema validation
 | 
					 | 
				
			||||||
errors.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
A middleware handler ServeError() is provided to serve the errors types
 | 
					 | 
				
			||||||
it defines.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
It is used throughout the various go-openapi toolkit libraries
 | 
					 | 
				
			||||||
(https://github.com/go-openapi).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
package errors
 | 
					 | 
				
			||||||
							
								
								
									
										6
									
								
								vendor/github.com/go-openapi/errors/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								vendor/github.com/go-openapi/errors/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,6 +0,0 @@
 | 
				
			|||||||
module github.com/go-openapi/errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require (
 | 
					 | 
				
			||||||
	github.com/stretchr/objx v0.2.0 // indirect
 | 
					 | 
				
			||||||
	github.com/stretchr/testify v1.3.0
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
							
								
								
									
										9
									
								
								vendor/github.com/go-openapi/errors/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/go-openapi/errors/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,9 +0,0 @@
 | 
				
			|||||||
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/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/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
					 | 
				
			||||||
							
								
								
									
										85
									
								
								vendor/github.com/go-openapi/errors/headers.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										85
									
								
								vendor/github.com/go-openapi/errors/headers.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,85 +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 errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"net/http"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Validation represents a failure of a precondition
 | 
					 | 
				
			||||||
type Validation struct {
 | 
					 | 
				
			||||||
	code    int32
 | 
					 | 
				
			||||||
	Name    string
 | 
					 | 
				
			||||||
	In      string
 | 
					 | 
				
			||||||
	Value   interface{}
 | 
					 | 
				
			||||||
	message string
 | 
					 | 
				
			||||||
	Values  []interface{}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (e *Validation) Error() string {
 | 
					 | 
				
			||||||
	return e.message
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Code the error code
 | 
					 | 
				
			||||||
func (e *Validation) Code() int32 {
 | 
					 | 
				
			||||||
	return e.code
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ValidateName produces an error message name for an aliased property
 | 
					 | 
				
			||||||
func (e *Validation) ValidateName(name string) *Validation {
 | 
					 | 
				
			||||||
	if e.Name == "" && name != "" {
 | 
					 | 
				
			||||||
		e.Name = name
 | 
					 | 
				
			||||||
		e.message = name + e.message
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return e
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const (
 | 
					 | 
				
			||||||
	contentTypeFail    = `unsupported media type %q, only %v are allowed`
 | 
					 | 
				
			||||||
	responseFormatFail = `unsupported media type requested, only %v are available`
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// InvalidContentType error for an invalid content type
 | 
					 | 
				
			||||||
func InvalidContentType(value string, allowed []string) *Validation {
 | 
					 | 
				
			||||||
	values := make([]interface{}, 0, len(allowed))
 | 
					 | 
				
			||||||
	for _, v := range allowed {
 | 
					 | 
				
			||||||
		values = append(values, v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    http.StatusUnsupportedMediaType,
 | 
					 | 
				
			||||||
		Name:    "Content-Type",
 | 
					 | 
				
			||||||
		In:      "header",
 | 
					 | 
				
			||||||
		Value:   value,
 | 
					 | 
				
			||||||
		Values:  values,
 | 
					 | 
				
			||||||
		message: fmt.Sprintf(contentTypeFail, value, allowed),
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// InvalidResponseFormat error for an unacceptable response format request
 | 
					 | 
				
			||||||
func InvalidResponseFormat(value string, allowed []string) *Validation {
 | 
					 | 
				
			||||||
	values := make([]interface{}, 0, len(allowed))
 | 
					 | 
				
			||||||
	for _, v := range allowed {
 | 
					 | 
				
			||||||
		values = append(values, v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    http.StatusNotAcceptable,
 | 
					 | 
				
			||||||
		Name:    "Accept",
 | 
					 | 
				
			||||||
		In:      "header",
 | 
					 | 
				
			||||||
		Value:   value,
 | 
					 | 
				
			||||||
		Values:  values,
 | 
					 | 
				
			||||||
		message: fmt.Sprintf(responseFormatFail, allowed),
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										51
									
								
								vendor/github.com/go-openapi/errors/middleware.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										51
									
								
								vendor/github.com/go-openapi/errors/middleware.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,51 +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 errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"bytes"
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"strings"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// APIVerificationFailed is an error that contains all the missing info for a mismatched section
 | 
					 | 
				
			||||||
// between the api registrations and the api spec
 | 
					 | 
				
			||||||
type APIVerificationFailed struct {
 | 
					 | 
				
			||||||
	Section              string
 | 
					 | 
				
			||||||
	MissingSpecification []string
 | 
					 | 
				
			||||||
	MissingRegistration  []string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
func (v *APIVerificationFailed) Error() string {
 | 
					 | 
				
			||||||
	buf := bytes.NewBuffer(nil)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	hasRegMissing := len(v.MissingRegistration) > 0
 | 
					 | 
				
			||||||
	hasSpecMissing := len(v.MissingSpecification) > 0
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if hasRegMissing {
 | 
					 | 
				
			||||||
		buf.WriteString(fmt.Sprintf("missing [%s] %s registrations", strings.Join(v.MissingRegistration, ", "), v.Section))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if hasRegMissing && hasSpecMissing {
 | 
					 | 
				
			||||||
		buf.WriteString("\n")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if hasSpecMissing {
 | 
					 | 
				
			||||||
		buf.WriteString(fmt.Sprintf("missing from spec file [%s] %s", strings.Join(v.MissingSpecification, ", "), v.Section))
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return buf.String()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										59
									
								
								vendor/github.com/go-openapi/errors/parsing.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										59
									
								
								vendor/github.com/go-openapi/errors/parsing.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,59 +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 errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import "fmt"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ParseError respresents a parsing error
 | 
					 | 
				
			||||||
type ParseError struct {
 | 
					 | 
				
			||||||
	code    int32
 | 
					 | 
				
			||||||
	Name    string
 | 
					 | 
				
			||||||
	In      string
 | 
					 | 
				
			||||||
	Value   string
 | 
					 | 
				
			||||||
	Reason  error
 | 
					 | 
				
			||||||
	message string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (e *ParseError) Error() string {
 | 
					 | 
				
			||||||
	return e.message
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Code returns the http status code for this error
 | 
					 | 
				
			||||||
func (e *ParseError) Code() int32 {
 | 
					 | 
				
			||||||
	return e.code
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const (
 | 
					 | 
				
			||||||
	parseErrorTemplContent     = `parsing %s %s from %q failed, because %s`
 | 
					 | 
				
			||||||
	parseErrorTemplContentNoIn = `parsing %s from %q failed, because %s`
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NewParseError creates a new parse error
 | 
					 | 
				
			||||||
func NewParseError(name, in, value string, reason error) *ParseError {
 | 
					 | 
				
			||||||
	var msg string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(parseErrorTemplContentNoIn, name, value, reason)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(parseErrorTemplContent, name, in, value, reason)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &ParseError{
 | 
					 | 
				
			||||||
		code:    400,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   value,
 | 
					 | 
				
			||||||
		Reason:  reason,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										562
									
								
								vendor/github.com/go-openapi/errors/schema.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										562
									
								
								vendor/github.com/go-openapi/errors/schema.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,562 +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 errors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"strings"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const (
 | 
					 | 
				
			||||||
	invalidType               = "%s is an invalid type name"
 | 
					 | 
				
			||||||
	typeFail                  = "%s in %s must be of type %s"
 | 
					 | 
				
			||||||
	typeFailWithData          = "%s in %s must be of type %s: %q"
 | 
					 | 
				
			||||||
	typeFailWithError         = "%s in %s must be of type %s, because: %s"
 | 
					 | 
				
			||||||
	requiredFail              = "%s in %s is required"
 | 
					 | 
				
			||||||
	tooLongMessage            = "%s in %s should be at most %d chars long"
 | 
					 | 
				
			||||||
	tooShortMessage           = "%s in %s should be at least %d chars long"
 | 
					 | 
				
			||||||
	patternFail               = "%s in %s should match '%s'"
 | 
					 | 
				
			||||||
	enumFail                  = "%s in %s should be one of %v"
 | 
					 | 
				
			||||||
	multipleOfFail            = "%s in %s should be a multiple of %v"
 | 
					 | 
				
			||||||
	maxIncFail                = "%s in %s should be less than or equal to %v"
 | 
					 | 
				
			||||||
	maxExcFail                = "%s in %s should be less than %v"
 | 
					 | 
				
			||||||
	minIncFail                = "%s in %s should be greater than or equal to %v"
 | 
					 | 
				
			||||||
	minExcFail                = "%s in %s should be greater than %v"
 | 
					 | 
				
			||||||
	uniqueFail                = "%s in %s shouldn't contain duplicates"
 | 
					 | 
				
			||||||
	maxItemsFail              = "%s in %s should have at most %d items"
 | 
					 | 
				
			||||||
	minItemsFail              = "%s in %s should have at least %d items"
 | 
					 | 
				
			||||||
	typeFailNoIn              = "%s must be of type %s"
 | 
					 | 
				
			||||||
	typeFailWithDataNoIn      = "%s must be of type %s: %q"
 | 
					 | 
				
			||||||
	typeFailWithErrorNoIn     = "%s must be of type %s, because: %s"
 | 
					 | 
				
			||||||
	requiredFailNoIn          = "%s is required"
 | 
					 | 
				
			||||||
	tooLongMessageNoIn        = "%s should be at most %d chars long"
 | 
					 | 
				
			||||||
	tooShortMessageNoIn       = "%s should be at least %d chars long"
 | 
					 | 
				
			||||||
	patternFailNoIn           = "%s should match '%s'"
 | 
					 | 
				
			||||||
	enumFailNoIn              = "%s should be one of %v"
 | 
					 | 
				
			||||||
	multipleOfFailNoIn        = "%s should be a multiple of %v"
 | 
					 | 
				
			||||||
	maxIncFailNoIn            = "%s should be less than or equal to %v"
 | 
					 | 
				
			||||||
	maxExcFailNoIn            = "%s should be less than %v"
 | 
					 | 
				
			||||||
	minIncFailNoIn            = "%s should be greater than or equal to %v"
 | 
					 | 
				
			||||||
	minExcFailNoIn            = "%s should be greater than %v"
 | 
					 | 
				
			||||||
	uniqueFailNoIn            = "%s shouldn't contain duplicates"
 | 
					 | 
				
			||||||
	maxItemsFailNoIn          = "%s should have at most %d items"
 | 
					 | 
				
			||||||
	minItemsFailNoIn          = "%s should have at least %d items"
 | 
					 | 
				
			||||||
	noAdditionalItems         = "%s in %s can't have additional items"
 | 
					 | 
				
			||||||
	noAdditionalItemsNoIn     = "%s can't have additional items"
 | 
					 | 
				
			||||||
	tooFewProperties          = "%s in %s should have at least %d properties"
 | 
					 | 
				
			||||||
	tooFewPropertiesNoIn      = "%s should have at least %d properties"
 | 
					 | 
				
			||||||
	tooManyProperties         = "%s in %s should have at most %d properties"
 | 
					 | 
				
			||||||
	tooManyPropertiesNoIn     = "%s should have at most %d properties"
 | 
					 | 
				
			||||||
	unallowedProperty         = "%s.%s in %s is a forbidden property"
 | 
					 | 
				
			||||||
	unallowedPropertyNoIn     = "%s.%s is a forbidden property"
 | 
					 | 
				
			||||||
	failedAllPatternProps     = "%s.%s in %s failed all pattern properties"
 | 
					 | 
				
			||||||
	failedAllPatternPropsNoIn = "%s.%s failed all pattern properties"
 | 
					 | 
				
			||||||
	multipleOfMustBePositive  = "factor MultipleOf declared for %s must be positive: %v"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// All code responses can be used to differentiate errors for different handling
 | 
					 | 
				
			||||||
// by the consuming program
 | 
					 | 
				
			||||||
const (
 | 
					 | 
				
			||||||
	// CompositeErrorCode remains 422 for backwards-compatibility
 | 
					 | 
				
			||||||
	// and to separate it from validation errors with cause
 | 
					 | 
				
			||||||
	CompositeErrorCode = 422
 | 
					 | 
				
			||||||
	// InvalidTypeCode is used for any subclass of invalid types
 | 
					 | 
				
			||||||
	InvalidTypeCode = 600 + iota
 | 
					 | 
				
			||||||
	RequiredFailCode
 | 
					 | 
				
			||||||
	TooLongFailCode
 | 
					 | 
				
			||||||
	TooShortFailCode
 | 
					 | 
				
			||||||
	PatternFailCode
 | 
					 | 
				
			||||||
	EnumFailCode
 | 
					 | 
				
			||||||
	MultipleOfFailCode
 | 
					 | 
				
			||||||
	MaxFailCode
 | 
					 | 
				
			||||||
	MinFailCode
 | 
					 | 
				
			||||||
	UniqueFailCode
 | 
					 | 
				
			||||||
	MaxItemsFailCode
 | 
					 | 
				
			||||||
	MinItemsFailCode
 | 
					 | 
				
			||||||
	NoAdditionalItemsCode
 | 
					 | 
				
			||||||
	TooFewPropertiesCode
 | 
					 | 
				
			||||||
	TooManyPropertiesCode
 | 
					 | 
				
			||||||
	UnallowedPropertyCode
 | 
					 | 
				
			||||||
	FailedAllPatternPropsCode
 | 
					 | 
				
			||||||
	MultipleOfMustBePositiveCode
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// CompositeError is an error that groups several errors together
 | 
					 | 
				
			||||||
type CompositeError struct {
 | 
					 | 
				
			||||||
	Errors  []error
 | 
					 | 
				
			||||||
	code    int32
 | 
					 | 
				
			||||||
	message string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Code for this error
 | 
					 | 
				
			||||||
func (c *CompositeError) Code() int32 {
 | 
					 | 
				
			||||||
	return c.code
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (c *CompositeError) Error() string {
 | 
					 | 
				
			||||||
	if len(c.Errors) > 0 {
 | 
					 | 
				
			||||||
		msgs := []string{c.message + ":"}
 | 
					 | 
				
			||||||
		for _, e := range c.Errors {
 | 
					 | 
				
			||||||
			msgs = append(msgs, e.Error())
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return strings.Join(msgs, "\n")
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return c.message
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// CompositeValidationError an error to wrap a bunch of other errors
 | 
					 | 
				
			||||||
func CompositeValidationError(errors ...error) *CompositeError {
 | 
					 | 
				
			||||||
	return &CompositeError{
 | 
					 | 
				
			||||||
		code:    CompositeErrorCode,
 | 
					 | 
				
			||||||
		Errors:  append([]error{}, errors...),
 | 
					 | 
				
			||||||
		message: "validation failure list",
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// FailedAllPatternProperties an error for when the property doesn't match a pattern
 | 
					 | 
				
			||||||
func FailedAllPatternProperties(name, in, key string) *Validation {
 | 
					 | 
				
			||||||
	msg := fmt.Sprintf(failedAllPatternProps, name, key, in)
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(failedAllPatternPropsNoIn, name, key)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    FailedAllPatternPropsCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   key,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// PropertyNotAllowed an error for when the property doesn't match a pattern
 | 
					 | 
				
			||||||
func PropertyNotAllowed(name, in, key string) *Validation {
 | 
					 | 
				
			||||||
	msg := fmt.Sprintf(unallowedProperty, name, key, in)
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(unallowedPropertyNoIn, name, key)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    UnallowedPropertyCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   key,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// TooFewProperties an error for an object with too few properties
 | 
					 | 
				
			||||||
func TooFewProperties(name, in string, n int64) *Validation {
 | 
					 | 
				
			||||||
	msg := fmt.Sprintf(tooFewProperties, name, in, n)
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(tooFewPropertiesNoIn, name, n)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    TooFewPropertiesCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   n,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// TooManyProperties an error for an object with too many properties
 | 
					 | 
				
			||||||
func TooManyProperties(name, in string, n int64) *Validation {
 | 
					 | 
				
			||||||
	msg := fmt.Sprintf(tooManyProperties, name, in, n)
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(tooManyPropertiesNoIn, name, n)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    TooManyPropertiesCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   n,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AdditionalItemsNotAllowed an error for invalid additional items
 | 
					 | 
				
			||||||
func AdditionalItemsNotAllowed(name, in string) *Validation {
 | 
					 | 
				
			||||||
	msg := fmt.Sprintf(noAdditionalItems, name, in)
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(noAdditionalItemsNoIn, name)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    NoAdditionalItemsCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// InvalidCollectionFormat another flavor of invalid type error
 | 
					 | 
				
			||||||
func InvalidCollectionFormat(name, in, format string) *Validation {
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    InvalidTypeCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   format,
 | 
					 | 
				
			||||||
		message: fmt.Sprintf("the collection format %q is not supported for the %s param %q", format, in, name),
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// InvalidTypeName an error for when the type is invalid
 | 
					 | 
				
			||||||
func InvalidTypeName(typeName string) *Validation {
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    InvalidTypeCode,
 | 
					 | 
				
			||||||
		Value:   typeName,
 | 
					 | 
				
			||||||
		message: fmt.Sprintf(invalidType, typeName),
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// InvalidType creates an error for when the type is invalid
 | 
					 | 
				
			||||||
func InvalidType(name, in, typeName string, value interface{}) *Validation {
 | 
					 | 
				
			||||||
	var message string
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if in != "" {
 | 
					 | 
				
			||||||
		switch value.(type) {
 | 
					 | 
				
			||||||
		case string:
 | 
					 | 
				
			||||||
			message = fmt.Sprintf(typeFailWithData, name, in, typeName, value)
 | 
					 | 
				
			||||||
		case error:
 | 
					 | 
				
			||||||
			message = fmt.Sprintf(typeFailWithError, name, in, typeName, value)
 | 
					 | 
				
			||||||
		default:
 | 
					 | 
				
			||||||
			message = fmt.Sprintf(typeFail, name, in, typeName)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		switch value.(type) {
 | 
					 | 
				
			||||||
		case string:
 | 
					 | 
				
			||||||
			message = fmt.Sprintf(typeFailWithDataNoIn, name, typeName, value)
 | 
					 | 
				
			||||||
		case error:
 | 
					 | 
				
			||||||
			message = fmt.Sprintf(typeFailWithErrorNoIn, name, typeName, value)
 | 
					 | 
				
			||||||
		default:
 | 
					 | 
				
			||||||
			message = fmt.Sprintf(typeFailNoIn, name, typeName)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    InvalidTypeCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   value,
 | 
					 | 
				
			||||||
		message: message,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DuplicateItems error for when an array contains duplicates
 | 
					 | 
				
			||||||
func DuplicateItems(name, in string) *Validation {
 | 
					 | 
				
			||||||
	msg := fmt.Sprintf(uniqueFail, name, in)
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(uniqueFailNoIn, name)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    UniqueFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// TooManyItems error for when an array contains too many items
 | 
					 | 
				
			||||||
func TooManyItems(name, in string, max int64) *Validation {
 | 
					 | 
				
			||||||
	msg := fmt.Sprintf(maxItemsFail, name, in, max)
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(maxItemsFailNoIn, name, max)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    MaxItemsFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// TooFewItems error for when an array contains too few items
 | 
					 | 
				
			||||||
func TooFewItems(name, in string, min int64) *Validation {
 | 
					 | 
				
			||||||
	msg := fmt.Sprintf(minItemsFail, name, in, min)
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(minItemsFailNoIn, name, min)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    MinItemsFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ExceedsMaximumInt error for when maxinum validation fails
 | 
					 | 
				
			||||||
func ExceedsMaximumInt(name, in string, max int64, exclusive bool) *Validation {
 | 
					 | 
				
			||||||
	var message string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		m := maxIncFailNoIn
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = maxExcFailNoIn
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, max)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		m := maxIncFail
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = maxExcFail
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, in, max)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    MaxFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   max,
 | 
					 | 
				
			||||||
		message: message,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ExceedsMaximumUint error for when maxinum validation fails
 | 
					 | 
				
			||||||
func ExceedsMaximumUint(name, in string, max uint64, exclusive bool) *Validation {
 | 
					 | 
				
			||||||
	var message string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		m := maxIncFailNoIn
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = maxExcFailNoIn
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, max)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		m := maxIncFail
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = maxExcFail
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, in, max)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    MaxFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   max,
 | 
					 | 
				
			||||||
		message: message,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ExceedsMaximum error for when maxinum validation fails
 | 
					 | 
				
			||||||
func ExceedsMaximum(name, in string, max float64, exclusive bool) *Validation {
 | 
					 | 
				
			||||||
	var message string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		m := maxIncFailNoIn
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = maxExcFailNoIn
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, max)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		m := maxIncFail
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = maxExcFail
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, in, max)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    MaxFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   max,
 | 
					 | 
				
			||||||
		message: message,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ExceedsMinimumInt error for when maxinum validation fails
 | 
					 | 
				
			||||||
func ExceedsMinimumInt(name, in string, min int64, exclusive bool) *Validation {
 | 
					 | 
				
			||||||
	var message string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		m := minIncFailNoIn
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = minExcFailNoIn
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, min)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		m := minIncFail
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = minExcFail
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, in, min)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    MinFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   min,
 | 
					 | 
				
			||||||
		message: message,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ExceedsMinimumUint error for when maxinum validation fails
 | 
					 | 
				
			||||||
func ExceedsMinimumUint(name, in string, min uint64, exclusive bool) *Validation {
 | 
					 | 
				
			||||||
	var message string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		m := minIncFailNoIn
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = minExcFailNoIn
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, min)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		m := minIncFail
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = minExcFail
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, in, min)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    MinFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   min,
 | 
					 | 
				
			||||||
		message: message,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ExceedsMinimum error for when maxinum validation fails
 | 
					 | 
				
			||||||
func ExceedsMinimum(name, in string, min float64, exclusive bool) *Validation {
 | 
					 | 
				
			||||||
	var message string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		m := minIncFailNoIn
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = minExcFailNoIn
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, min)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		m := minIncFail
 | 
					 | 
				
			||||||
		if exclusive {
 | 
					 | 
				
			||||||
			m = minExcFail
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		message = fmt.Sprintf(m, name, in, min)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    MinFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   min,
 | 
					 | 
				
			||||||
		message: message,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NotMultipleOf error for when multiple of validation fails
 | 
					 | 
				
			||||||
func NotMultipleOf(name, in string, multiple interface{}) *Validation {
 | 
					 | 
				
			||||||
	var msg string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(multipleOfFailNoIn, name, multiple)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(multipleOfFail, name, in, multiple)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    MultipleOfFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   multiple,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// EnumFail error for when an enum validation fails
 | 
					 | 
				
			||||||
func EnumFail(name, in string, value interface{}, values []interface{}) *Validation {
 | 
					 | 
				
			||||||
	var msg string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(enumFailNoIn, name, values)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(enumFail, name, in, values)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    EnumFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   value,
 | 
					 | 
				
			||||||
		Values:  values,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Required error for when a value is missing
 | 
					 | 
				
			||||||
func Required(name, in string) *Validation {
 | 
					 | 
				
			||||||
	var msg string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(requiredFailNoIn, name)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(requiredFail, name, in)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    RequiredFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// TooLong error for when a string is too long
 | 
					 | 
				
			||||||
func TooLong(name, in string, max int64) *Validation {
 | 
					 | 
				
			||||||
	var msg string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(tooLongMessageNoIn, name, max)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(tooLongMessage, name, in, max)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    TooLongFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// TooShort error for when a string is too short
 | 
					 | 
				
			||||||
func TooShort(name, in string, min int64) *Validation {
 | 
					 | 
				
			||||||
	var msg string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(tooShortMessageNoIn, name, min)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(tooShortMessage, name, in, min)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    TooShortFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// FailedPattern error for when a string fails a regex pattern match
 | 
					 | 
				
			||||||
// the pattern that is returned is the ECMA syntax version of the pattern not the golang version.
 | 
					 | 
				
			||||||
func FailedPattern(name, in, pattern string) *Validation {
 | 
					 | 
				
			||||||
	var msg string
 | 
					 | 
				
			||||||
	if in == "" {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(patternFailNoIn, name, pattern)
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		msg = fmt.Sprintf(patternFail, name, in, pattern)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    PatternFailCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		message: msg,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MultipleOfMustBePositive error for when a
 | 
					 | 
				
			||||||
// multipleOf factor is negative
 | 
					 | 
				
			||||||
func MultipleOfMustBePositive(name, in string, factor interface{}) *Validation {
 | 
					 | 
				
			||||||
	return &Validation{
 | 
					 | 
				
			||||||
		code:    MultipleOfMustBePositiveCode,
 | 
					 | 
				
			||||||
		Name:    name,
 | 
					 | 
				
			||||||
		In:      in,
 | 
					 | 
				
			||||||
		Value:   factor,
 | 
					 | 
				
			||||||
		message: fmt.Sprintf(multipleOfMustBePositive, name, factor),
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										26
									
								
								vendor/github.com/go-openapi/loads/.editorconfig
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/go-openapi/loads/.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
 | 
					 | 
				
			||||||
							
								
								
									
										4
									
								
								vendor/github.com/go-openapi/loads/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								vendor/github.com/go-openapi/loads/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,4 +0,0 @@
 | 
				
			|||||||
secrets.yml
 | 
					 | 
				
			||||||
coverage.out
 | 
					 | 
				
			||||||
profile.cov
 | 
					 | 
				
			||||||
profile.out
 | 
					 | 
				
			||||||
							
								
								
									
										22
									
								
								vendor/github.com/go-openapi/loads/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								vendor/github.com/go-openapi/loads/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,22 +0,0 @@
 | 
				
			|||||||
linters-settings:
 | 
					 | 
				
			||||||
  govet:
 | 
					 | 
				
			||||||
    check-shadowing: true
 | 
					 | 
				
			||||||
  golint:
 | 
					 | 
				
			||||||
    min-confidence: 0
 | 
					 | 
				
			||||||
  gocyclo:
 | 
					 | 
				
			||||||
    min-complexity: 30
 | 
					 | 
				
			||||||
  maligned:
 | 
					 | 
				
			||||||
    suggest-new: true
 | 
					 | 
				
			||||||
  dupl:
 | 
					 | 
				
			||||||
    threshold: 100
 | 
					 | 
				
			||||||
  goconst:
 | 
					 | 
				
			||||||
    min-len: 2
 | 
					 | 
				
			||||||
    min-occurrences: 4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
linters:
 | 
					 | 
				
			||||||
  enable-all: true
 | 
					 | 
				
			||||||
  disable:
 | 
					 | 
				
			||||||
    - maligned
 | 
					 | 
				
			||||||
    - lll
 | 
					 | 
				
			||||||
    - gochecknoglobals
 | 
					 | 
				
			||||||
    - gochecknoinits
 | 
					 | 
				
			||||||
							
								
								
									
										15
									
								
								vendor/github.com/go-openapi/loads/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/go-openapi/loads/.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: OxkPwVp35qBTUilgWC8xykSj+sGMcj0h8IIOKD+Rflx2schZVlFfdYdyVBM+s9OqeOfvtuvnR9v1Ye2rPKAvcjWdC4LpRGUsgmItZaI6Um8Aj6+K9udCw5qrtZVfOVmRu8LieH//XznWWKdOultUuniW0MLqw5+II87Gd00RWbCGi0hk0PykHe7uK+PDA2BEbqyZ2WKKYCvfB3j+0nrFOHScXqnh0V05l2E83J4+Sgy1fsPy+1WdX58ZlNBG333ibaC1FS79XvKSmTgKRkx3+YBo97u6ZtUmJa5WZjf2OdLG3KIckGWAv6R5xgxeU31N0Ng8L332w/Edpp2O/M2bZwdnKJ8hJQikXIAQbICbr+lTDzsoNzMdEIYcHpJ5hjPbiUl3Bmd+Jnsjf5McgAZDiWIfpCKZ29tPCEkVwRsOCqkyPRMNMzHHmoja495P5jR+ODS7+J8RFg5xgcnOgpP9D4Wlhztlf5WyZMpkLxTUD+bZq2SRf50HfHFXTkfq22zPl3d1eq0yrLwh/Z/fWKkfb6SyysROL8y6s8u3dpFX1YHSg0BR6i913h4aoZw9B2BG27cafLLTwKYsp2dFo1PWl4O6u9giFJIeqwloZHLKKrwh0cBFhB7RH0I58asxkZpCH6uWjJierahmHe7iS+E6i+9oCHkOZ59hmCYNimIs3hM=
 | 
					 | 
				
			||||||
script:
 | 
					 | 
				
			||||||
- gotestsum -f short-verbose -- -race -timeout=20m -coverprofile=coverage.txt -covermode=atomic ./...
 | 
					 | 
				
			||||||
							
								
								
									
										74
									
								
								vendor/github.com/go-openapi/loads/CODE_OF_CONDUCT.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										74
									
								
								vendor/github.com/go-openapi/loads/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/loads/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										202
									
								
								vendor/github.com/go-openapi/loads/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.
 | 
					 | 
				
			||||||
							
								
								
									
										7
									
								
								vendor/github.com/go-openapi/loads/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/go-openapi/loads/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,7 +0,0 @@
 | 
				
			|||||||
# Loads OAI specs  [](https://travis-ci.org/go-openapi/loads) [](https://codecov.io/gh/go-openapi/loads) [](https://slackin.goswagger.io)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[](https://raw.githubusercontent.com/go-openapi/loads/master/LICENSE) [](http://godoc.org/github.com/go-openapi/loads)
 | 
					 | 
				
			||||||
[](https://golangci.com)
 | 
					 | 
				
			||||||
[](https://goreportcard.com/report/github.com/go-openapi/loads)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Loading of OAI specification documents from local or remote locations. Supports JSON and YAML documents.
 | 
					 | 
				
			||||||
							
								
								
									
										21
									
								
								vendor/github.com/go-openapi/loads/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								vendor/github.com/go-openapi/loads/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,21 +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 loads provides document loading methods for swagger (OAI) specifications.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
It is used by other go-openapi packages to load and run analysis on local or remote spec documents.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
package loads
 | 
					 | 
				
			||||||
							
								
								
									
										11
									
								
								vendor/github.com/go-openapi/loads/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								vendor/github.com/go-openapi/loads/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,11 +0,0 @@
 | 
				
			|||||||
module github.com/go-openapi/loads
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require (
 | 
					 | 
				
			||||||
	github.com/go-openapi/analysis v0.19.5
 | 
					 | 
				
			||||||
	github.com/go-openapi/spec v0.19.3
 | 
					 | 
				
			||||||
	github.com/go-openapi/swag v0.19.5
 | 
					 | 
				
			||||||
	github.com/stretchr/testify v1.3.0
 | 
					 | 
				
			||||||
	gopkg.in/yaml.v2 v2.2.4
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
go 1.13
 | 
					 | 
				
			||||||
							
								
								
									
										98
									
								
								vendor/github.com/go-openapi/loads/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										98
									
								
								vendor/github.com/go-openapi/loads/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,98 +0,0 @@
 | 
				
			|||||||
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/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/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 | 
					 | 
				
			||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
 | 
					 | 
				
			||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 | 
					 | 
				
			||||||
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/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 | 
					 | 
				
			||||||
github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI=
 | 
					 | 
				
			||||||
github.com/go-openapi/analysis v0.19.5 h1:8b2ZgKfKIUTVQpTb77MoRDIMEIwvDVw40o3aOXdfYzI=
 | 
					 | 
				
			||||||
github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU=
 | 
					 | 
				
			||||||
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
 | 
					 | 
				
			||||||
github.com/go-openapi/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=
 | 
					 | 
				
			||||||
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.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.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
 | 
					 | 
				
			||||||
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/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
 | 
					 | 
				
			||||||
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
 | 
					 | 
				
			||||||
github.com/go-openapi/spec v0.19.3 h1:0XRyw8kguri6Yw4SxhsQA/atC88yqrk0+G4YhI2wabc=
 | 
					 | 
				
			||||||
github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.19.3 h1:eRfyY5SkaNJCAwmmMcADjY31ow9+N7MCLW7oRkbsINA=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU=
 | 
					 | 
				
			||||||
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
 | 
					 | 
				
			||||||
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/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
 | 
					 | 
				
			||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 | 
					 | 
				
			||||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
 | 
					 | 
				
			||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 | 
					 | 
				
			||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 | 
					 | 
				
			||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 | 
					 | 
				
			||||||
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-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 | 
					 | 
				
			||||||
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/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
 | 
					 | 
				
			||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 | 
					 | 
				
			||||||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
 | 
					 | 
				
			||||||
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/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
					 | 
				
			||||||
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
 | 
					 | 
				
			||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 | 
					 | 
				
			||||||
go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU=
 | 
					 | 
				
			||||||
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 | 
					 | 
				
			||||||
go.mongodb.org/mongo-driver v1.1.1 h1:Sq1fR+0c58RME5EoqKdjkiQAmPjmfHlZOoRI6fTUOcs=
 | 
					 | 
				
			||||||
go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
					 | 
				
			||||||
golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
 | 
					 | 
				
			||||||
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/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
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=
 | 
					 | 
				
			||||||
golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
 | 
					 | 
				
			||||||
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.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					 | 
				
			||||||
							
								
								
									
										298
									
								
								vendor/github.com/go-openapi/loads/spec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										298
									
								
								vendor/github.com/go-openapi/loads/spec.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,298 +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 loads
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"bytes"
 | 
					 | 
				
			||||||
	"encoding/gob"
 | 
					 | 
				
			||||||
	"encoding/json"
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"net/url"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/analysis"
 | 
					 | 
				
			||||||
	"github.com/go-openapi/spec"
 | 
					 | 
				
			||||||
	"github.com/go-openapi/swag"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// JSONDoc loads a json document from either a file or a remote url
 | 
					 | 
				
			||||||
func JSONDoc(path string) (json.RawMessage, error) {
 | 
					 | 
				
			||||||
	data, err := swag.LoadFromFileOrHTTP(path)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return json.RawMessage(data), nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DocLoader represents a doc loader type
 | 
					 | 
				
			||||||
type DocLoader func(string) (json.RawMessage, error)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DocMatcher represents a predicate to check if a loader matches
 | 
					 | 
				
			||||||
type DocMatcher func(string) bool
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
var (
 | 
					 | 
				
			||||||
	loaders       *loader
 | 
					 | 
				
			||||||
	defaultLoader *loader
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func init() {
 | 
					 | 
				
			||||||
	defaultLoader = &loader{Match: func(_ string) bool { return true }, Fn: JSONDoc}
 | 
					 | 
				
			||||||
	loaders = defaultLoader
 | 
					 | 
				
			||||||
	spec.PathLoader = loaders.Fn
 | 
					 | 
				
			||||||
	AddLoader(swag.YAMLMatcher, swag.YAMLDoc)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	gob.Register(map[string]interface{}{})
 | 
					 | 
				
			||||||
	gob.Register([]interface{}{})
 | 
					 | 
				
			||||||
	//gob.Register(spec.Refable{})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AddLoader for a document
 | 
					 | 
				
			||||||
func AddLoader(predicate DocMatcher, load DocLoader) {
 | 
					 | 
				
			||||||
	prev := loaders
 | 
					 | 
				
			||||||
	loaders = &loader{
 | 
					 | 
				
			||||||
		Match: predicate,
 | 
					 | 
				
			||||||
		Fn:    load,
 | 
					 | 
				
			||||||
		Next:  prev,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	spec.PathLoader = loaders.Fn
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type loader struct {
 | 
					 | 
				
			||||||
	Fn    DocLoader
 | 
					 | 
				
			||||||
	Match DocMatcher
 | 
					 | 
				
			||||||
	Next  *loader
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// JSONSpec loads a spec from a json document
 | 
					 | 
				
			||||||
func JSONSpec(path string) (*Document, error) {
 | 
					 | 
				
			||||||
	data, err := JSONDoc(path)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	// convert to json
 | 
					 | 
				
			||||||
	return Analyzed(data, "")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Document represents a swagger spec document
 | 
					 | 
				
			||||||
type Document struct {
 | 
					 | 
				
			||||||
	// specAnalyzer
 | 
					 | 
				
			||||||
	Analyzer     *analysis.Spec
 | 
					 | 
				
			||||||
	spec         *spec.Swagger
 | 
					 | 
				
			||||||
	specFilePath string
 | 
					 | 
				
			||||||
	origSpec     *spec.Swagger
 | 
					 | 
				
			||||||
	schema       *spec.Schema
 | 
					 | 
				
			||||||
	raw          json.RawMessage
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Embedded returns a Document based on embedded specs. No analysis is required
 | 
					 | 
				
			||||||
func Embedded(orig, flat json.RawMessage) (*Document, error) {
 | 
					 | 
				
			||||||
	var origSpec, flatSpec spec.Swagger
 | 
					 | 
				
			||||||
	if err := json.Unmarshal(orig, &origSpec); err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if err := json.Unmarshal(flat, &flatSpec); err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &Document{
 | 
					 | 
				
			||||||
		raw:      orig,
 | 
					 | 
				
			||||||
		origSpec: &origSpec,
 | 
					 | 
				
			||||||
		spec:     &flatSpec,
 | 
					 | 
				
			||||||
	}, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Spec loads a new spec document
 | 
					 | 
				
			||||||
func Spec(path string) (*Document, error) {
 | 
					 | 
				
			||||||
	specURL, err := url.Parse(path)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	var lastErr error
 | 
					 | 
				
			||||||
	for l := loaders.Next; l != nil; l = l.Next {
 | 
					 | 
				
			||||||
		if loaders.Match(specURL.Path) {
 | 
					 | 
				
			||||||
			b, err2 := loaders.Fn(path)
 | 
					 | 
				
			||||||
			if err2 != nil {
 | 
					 | 
				
			||||||
				lastErr = err2
 | 
					 | 
				
			||||||
				continue
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			doc, err3 := Analyzed(b, "")
 | 
					 | 
				
			||||||
			if err3 != nil {
 | 
					 | 
				
			||||||
				return nil, err3
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if doc != nil {
 | 
					 | 
				
			||||||
				doc.specFilePath = path
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			return doc, nil
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if lastErr != nil {
 | 
					 | 
				
			||||||
		return nil, lastErr
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	b, err := defaultLoader.Fn(path)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	document, err := Analyzed(b, "")
 | 
					 | 
				
			||||||
	if document != nil {
 | 
					 | 
				
			||||||
		document.specFilePath = path
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return document, err
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Analyzed creates a new analyzed spec document
 | 
					 | 
				
			||||||
func Analyzed(data json.RawMessage, version string) (*Document, error) {
 | 
					 | 
				
			||||||
	if version == "" {
 | 
					 | 
				
			||||||
		version = "2.0"
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if version != "2.0" {
 | 
					 | 
				
			||||||
		return nil, fmt.Errorf("spec version %q is not supported", version)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	raw := data
 | 
					 | 
				
			||||||
	trimmed := bytes.TrimSpace(data)
 | 
					 | 
				
			||||||
	if len(trimmed) > 0 {
 | 
					 | 
				
			||||||
		if trimmed[0] != '{' && trimmed[0] != '[' {
 | 
					 | 
				
			||||||
			yml, err := swag.BytesToYAMLDoc(trimmed)
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return nil, fmt.Errorf("analyzed: %v", err)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			d, err := swag.YAMLToJSON(yml)
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return nil, fmt.Errorf("analyzed: %v", err)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			raw = d
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	swspec := new(spec.Swagger)
 | 
					 | 
				
			||||||
	if err := json.Unmarshal(raw, swspec); err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	origsqspec, err := cloneSpec(swspec)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	d := &Document{
 | 
					 | 
				
			||||||
		Analyzer: analysis.New(swspec),
 | 
					 | 
				
			||||||
		schema:   spec.MustLoadSwagger20Schema(),
 | 
					 | 
				
			||||||
		spec:     swspec,
 | 
					 | 
				
			||||||
		raw:      raw,
 | 
					 | 
				
			||||||
		origSpec: origsqspec,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return d, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Expanded expands the ref fields in the spec document and returns a new spec document
 | 
					 | 
				
			||||||
func (d *Document) Expanded(options ...*spec.ExpandOptions) (*Document, error) {
 | 
					 | 
				
			||||||
	swspec := new(spec.Swagger)
 | 
					 | 
				
			||||||
	if err := json.Unmarshal(d.raw, swspec); err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	var expandOptions *spec.ExpandOptions
 | 
					 | 
				
			||||||
	if len(options) > 0 {
 | 
					 | 
				
			||||||
		expandOptions = options[0]
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		expandOptions = &spec.ExpandOptions{
 | 
					 | 
				
			||||||
			RelativeBase: d.specFilePath,
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if err := spec.ExpandSpec(swspec, expandOptions); err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	dd := &Document{
 | 
					 | 
				
			||||||
		Analyzer:     analysis.New(swspec),
 | 
					 | 
				
			||||||
		spec:         swspec,
 | 
					 | 
				
			||||||
		specFilePath: d.specFilePath,
 | 
					 | 
				
			||||||
		schema:       spec.MustLoadSwagger20Schema(),
 | 
					 | 
				
			||||||
		raw:          d.raw,
 | 
					 | 
				
			||||||
		origSpec:     d.origSpec,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return dd, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// BasePath the base path for this spec
 | 
					 | 
				
			||||||
func (d *Document) BasePath() string {
 | 
					 | 
				
			||||||
	return d.spec.BasePath
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Version returns the version of this spec
 | 
					 | 
				
			||||||
func (d *Document) Version() string {
 | 
					 | 
				
			||||||
	return d.spec.Swagger
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Schema returns the swagger 2.0 schema
 | 
					 | 
				
			||||||
func (d *Document) Schema() *spec.Schema {
 | 
					 | 
				
			||||||
	return d.schema
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Spec returns the swagger spec object model
 | 
					 | 
				
			||||||
func (d *Document) Spec() *spec.Swagger {
 | 
					 | 
				
			||||||
	return d.spec
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Host returns the host for the API
 | 
					 | 
				
			||||||
func (d *Document) Host() string {
 | 
					 | 
				
			||||||
	return d.spec.Host
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Raw returns the raw swagger spec as json bytes
 | 
					 | 
				
			||||||
func (d *Document) Raw() json.RawMessage {
 | 
					 | 
				
			||||||
	return d.raw
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// OrigSpec yields the original spec
 | 
					 | 
				
			||||||
func (d *Document) OrigSpec() *spec.Swagger {
 | 
					 | 
				
			||||||
	return d.origSpec
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ResetDefinitions gives a shallow copy with the models reset
 | 
					 | 
				
			||||||
func (d *Document) ResetDefinitions() *Document {
 | 
					 | 
				
			||||||
	defs := make(map[string]spec.Schema, len(d.origSpec.Definitions))
 | 
					 | 
				
			||||||
	for k, v := range d.origSpec.Definitions {
 | 
					 | 
				
			||||||
		defs[k] = v
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	d.spec.Definitions = defs
 | 
					 | 
				
			||||||
	return d
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Pristine creates a new pristine document instance based on the input data
 | 
					 | 
				
			||||||
func (d *Document) Pristine() *Document {
 | 
					 | 
				
			||||||
	dd, _ := Analyzed(d.Raw(), d.Version())
 | 
					 | 
				
			||||||
	return dd
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// SpecFilePath returns the file path of the spec if one is defined
 | 
					 | 
				
			||||||
func (d *Document) SpecFilePath() string {
 | 
					 | 
				
			||||||
	return d.specFilePath
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func cloneSpec(src *spec.Swagger) (*spec.Swagger, error) {
 | 
					 | 
				
			||||||
	var b bytes.Buffer
 | 
					 | 
				
			||||||
	if err := gob.NewEncoder(&b).Encode(src); err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	var dst spec.Swagger
 | 
					 | 
				
			||||||
	if err := gob.NewDecoder(&b).Decode(&dst); err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &dst, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										26
									
								
								vendor/github.com/go-openapi/runtime/.editorconfig
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/go-openapi/runtime/.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
 | 
					 | 
				
			||||||
							
								
								
									
										5
									
								
								vendor/github.com/go-openapi/runtime/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/go-openapi/runtime/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +0,0 @@
 | 
				
			|||||||
secrets.yml
 | 
					 | 
				
			||||||
coverage.out
 | 
					 | 
				
			||||||
*.cov
 | 
					 | 
				
			||||||
*.out
 | 
					 | 
				
			||||||
playground
 | 
					 | 
				
			||||||
							
								
								
									
										15
									
								
								vendor/github.com/go-openapi/runtime/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/go-openapi/runtime/.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: EmObnQuM9Mw8J9vpFaKKHqSMN4Wsr/A9+v7ewAD5cEhA0T1P4m7MbJMiJOhxUhj/X+BFh2DamW+P2lT8mybj5wg8wnkQ2BteKA8Tawi6f9PRw2NRheO8tAi8o/npLnlmet0kc93mn+oLuqHw36w4+j5mkOl2FghkfGiUVhwrhkCP7KXQN+3TU87e+/HzQumlJ3nsE+6terVxkH3PmaUTsS5ONaODZfuxFpfb7RsoEl3skHf6d+tr+1nViLxxly7558Nc33C+W1mr0qiEvMLZ+kJ/CpGWBJ6CUJM3jm6hNe2eMuIPwEK2hxZob8c7n22VPap4K6a0bBRoydoDXaba+2sD7Ym6ivDO/DVyL44VeBBLyIiIBylDGQdZH+6SoWm90Qe/i7tnY/T5Ao5igT8f3cfQY1c3EsTfqmlDfrhmACBmwSlgkdVBLTprHL63JMY24LWmh4jhxsmMRZhCL4dze8su1w6pLN/pD1pGHtKYCEVbdTmaM3PblNRFf12XB7qosmQsgUndH4Vq3bTbU0s1pKjeDhRyLvFzvR0TBbo0pDLEoF1A/i5GVFWa7yLZNUDudQERRh7qv/xBl2excIaQ1sV4DSVm7bAE9l6Kp+yeHQJW2uN6Y3X8wu9gB9nv9l5HBze7wh8KE6PyWAOLYYqZg9/sAtsv/2GcQqXcKFF1zcA=
 | 
					 | 
				
			||||||
script:
 | 
					 | 
				
			||||||
- gotestsum -f short-verbose -- -race -timeout=20m -coverprofile=coverage.txt -covermode=atomic ./...
 | 
					 | 
				
			||||||
							
								
								
									
										74
									
								
								vendor/github.com/go-openapi/runtime/CODE_OF_CONDUCT.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										74
									
								
								vendor/github.com/go-openapi/runtime/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/runtime/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										202
									
								
								vendor/github.com/go-openapi/runtime/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.
 | 
					 | 
				
			||||||
							
								
								
									
										7
									
								
								vendor/github.com/go-openapi/runtime/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								vendor/github.com/go-openapi/runtime/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,7 +0,0 @@
 | 
				
			|||||||
# runtime [](https://travis-ci.org/go-openapi/runtime) [](https://codecov.io/gh/go-openapi/runtime) [](https://slackin.goswagger.io)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[](https://raw.githubusercontent.com/go-openapi/runtime/master/LICENSE) [](http://godoc.org/github.com/go-openapi/runtime)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# golang Open-API toolkit - runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The runtime component for use in codegeneration or as untyped usage.
 | 
					 | 
				
			||||||
							
								
								
									
										155
									
								
								vendor/github.com/go-openapi/runtime/bytestream.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										155
									
								
								vendor/github.com/go-openapi/runtime/bytestream.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,155 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"bytes"
 | 
					 | 
				
			||||||
	"encoding"
 | 
					 | 
				
			||||||
	"errors"
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"io"
 | 
					 | 
				
			||||||
	"reflect"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/swag"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func defaultCloser() error { return nil }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type byteStreamOpt func(opts *byteStreamOpts)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ClosesStream when the bytestream consumer or producer is finished
 | 
					 | 
				
			||||||
func ClosesStream(opts *byteStreamOpts) {
 | 
					 | 
				
			||||||
	opts.Close = true
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type byteStreamOpts struct {
 | 
					 | 
				
			||||||
	Close bool
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ByteStreamConsumer creates a consmer for byte streams,
 | 
					 | 
				
			||||||
// takes a Writer/BinaryUnmarshaler interface or binary slice by reference,
 | 
					 | 
				
			||||||
// and reads from the provided reader
 | 
					 | 
				
			||||||
func ByteStreamConsumer(opts ...byteStreamOpt) Consumer {
 | 
					 | 
				
			||||||
	var vals byteStreamOpts
 | 
					 | 
				
			||||||
	for _, opt := range opts {
 | 
					 | 
				
			||||||
		opt(&vals)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return ConsumerFunc(func(reader io.Reader, data interface{}) error {
 | 
					 | 
				
			||||||
		if reader == nil {
 | 
					 | 
				
			||||||
			return errors.New("ByteStreamConsumer requires a reader") // early exit
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		close := defaultCloser
 | 
					 | 
				
			||||||
		if vals.Close {
 | 
					 | 
				
			||||||
			if cl, ok := reader.(io.Closer); ok {
 | 
					 | 
				
			||||||
				close = cl.Close
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		defer close()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if wrtr, ok := data.(io.Writer); ok {
 | 
					 | 
				
			||||||
			_, err := io.Copy(wrtr, reader)
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		buf := new(bytes.Buffer)
 | 
					 | 
				
			||||||
		_, err := buf.ReadFrom(reader)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		b := buf.Bytes()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if bu, ok := data.(encoding.BinaryUnmarshaler); ok {
 | 
					 | 
				
			||||||
			return bu.UnmarshalBinary(b)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if t := reflect.TypeOf(data); data != nil && t.Kind() == reflect.Ptr {
 | 
					 | 
				
			||||||
			v := reflect.Indirect(reflect.ValueOf(data))
 | 
					 | 
				
			||||||
			if t = v.Type(); t.Kind() == reflect.Slice && t.Elem().Kind() == reflect.Uint8 {
 | 
					 | 
				
			||||||
				v.SetBytes(b)
 | 
					 | 
				
			||||||
				return nil
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		return fmt.Errorf("%v (%T) is not supported by the ByteStreamConsumer, %s",
 | 
					 | 
				
			||||||
			data, data, "can be resolved by supporting Writer/BinaryUnmarshaler interface")
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ByteStreamProducer creates a producer for byte streams,
 | 
					 | 
				
			||||||
// takes a Reader/BinaryMarshaler interface or binary slice,
 | 
					 | 
				
			||||||
// and writes to a writer (essentially a pipe)
 | 
					 | 
				
			||||||
func ByteStreamProducer(opts ...byteStreamOpt) Producer {
 | 
					 | 
				
			||||||
	var vals byteStreamOpts
 | 
					 | 
				
			||||||
	for _, opt := range opts {
 | 
					 | 
				
			||||||
		opt(&vals)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return ProducerFunc(func(writer io.Writer, data interface{}) error {
 | 
					 | 
				
			||||||
		if writer == nil {
 | 
					 | 
				
			||||||
			return errors.New("ByteStreamProducer requires a writer") // early exit
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		close := defaultCloser
 | 
					 | 
				
			||||||
		if vals.Close {
 | 
					 | 
				
			||||||
			if cl, ok := writer.(io.Closer); ok {
 | 
					 | 
				
			||||||
				close = cl.Close
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		defer close()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if rc, ok := data.(io.ReadCloser); ok {
 | 
					 | 
				
			||||||
			defer rc.Close()
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if rdr, ok := data.(io.Reader); ok {
 | 
					 | 
				
			||||||
			_, err := io.Copy(writer, rdr)
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if bm, ok := data.(encoding.BinaryMarshaler); ok {
 | 
					 | 
				
			||||||
			bytes, err := bm.MarshalBinary()
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return err
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			_, err = writer.Write(bytes)
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if data != nil {
 | 
					 | 
				
			||||||
			if e, ok := data.(error); ok {
 | 
					 | 
				
			||||||
				_, err := writer.Write([]byte(e.Error()))
 | 
					 | 
				
			||||||
				return err
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			v := reflect.Indirect(reflect.ValueOf(data))
 | 
					 | 
				
			||||||
			if t := v.Type(); t.Kind() == reflect.Slice && t.Elem().Kind() == reflect.Uint8 {
 | 
					 | 
				
			||||||
				_, err := writer.Write(v.Bytes())
 | 
					 | 
				
			||||||
				return err
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			if t := v.Type(); t.Kind() == reflect.Struct || t.Kind() == reflect.Slice {
 | 
					 | 
				
			||||||
				b, err := swag.WriteJSON(data)
 | 
					 | 
				
			||||||
				if err != nil {
 | 
					 | 
				
			||||||
					return err
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				_, err = writer.Write(b)
 | 
					 | 
				
			||||||
				return err
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		return fmt.Errorf("%v (%T) is not supported by the ByteStreamProducer, %s",
 | 
					 | 
				
			||||||
			data, data, "can be resolved by supporting Reader/BinaryMarshaler interface")
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										30
									
								
								vendor/github.com/go-openapi/runtime/client_auth_info.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/github.com/go-openapi/runtime/client_auth_info.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,30 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import "github.com/go-openapi/strfmt"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// A ClientAuthInfoWriterFunc converts a function to a request writer interface
 | 
					 | 
				
			||||||
type ClientAuthInfoWriterFunc func(ClientRequest, strfmt.Registry) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AuthenticateRequest adds authentication data to the request
 | 
					 | 
				
			||||||
func (fn ClientAuthInfoWriterFunc) AuthenticateRequest(req ClientRequest, reg strfmt.Registry) error {
 | 
					 | 
				
			||||||
	return fn(req, reg)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// A ClientAuthInfoWriter implementor knows how to write authentication info to a request
 | 
					 | 
				
			||||||
type ClientAuthInfoWriter interface {
 | 
					 | 
				
			||||||
	AuthenticateRequest(ClientRequest, strfmt.Registry) error
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										41
									
								
								vendor/github.com/go-openapi/runtime/client_operation.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										41
									
								
								vendor/github.com/go-openapi/runtime/client_operation.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,41 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"context"
 | 
					 | 
				
			||||||
	"net/http"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ClientOperation represents the context for a swagger operation to be submitted to the transport
 | 
					 | 
				
			||||||
type ClientOperation struct {
 | 
					 | 
				
			||||||
	ID                 string
 | 
					 | 
				
			||||||
	Method             string
 | 
					 | 
				
			||||||
	PathPattern        string
 | 
					 | 
				
			||||||
	ProducesMediaTypes []string
 | 
					 | 
				
			||||||
	ConsumesMediaTypes []string
 | 
					 | 
				
			||||||
	Schemes            []string
 | 
					 | 
				
			||||||
	AuthInfo           ClientAuthInfoWriter
 | 
					 | 
				
			||||||
	Params             ClientRequestWriter
 | 
					 | 
				
			||||||
	Reader             ClientResponseReader
 | 
					 | 
				
			||||||
	Context            context.Context
 | 
					 | 
				
			||||||
	Client             *http.Client
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// A ClientTransport implementor knows how to submit Request objects to some destination
 | 
					 | 
				
			||||||
type ClientTransport interface {
 | 
					 | 
				
			||||||
	//Submit(string, RequestWriter, ResponseReader, AuthInfoWriter) (interface{}, error)
 | 
					 | 
				
			||||||
	Submit(*ClientOperation) (interface{}, error)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										103
									
								
								vendor/github.com/go-openapi/runtime/client_request.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										103
									
								
								vendor/github.com/go-openapi/runtime/client_request.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,103 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"io"
 | 
					 | 
				
			||||||
	"io/ioutil"
 | 
					 | 
				
			||||||
	"net/http"
 | 
					 | 
				
			||||||
	"net/url"
 | 
					 | 
				
			||||||
	"time"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/strfmt"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ClientRequestWriterFunc converts a function to a request writer interface
 | 
					 | 
				
			||||||
type ClientRequestWriterFunc func(ClientRequest, strfmt.Registry) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// WriteToRequest adds data to the request
 | 
					 | 
				
			||||||
func (fn ClientRequestWriterFunc) WriteToRequest(req ClientRequest, reg strfmt.Registry) error {
 | 
					 | 
				
			||||||
	return fn(req, reg)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ClientRequestWriter is an interface for things that know how to write to a request
 | 
					 | 
				
			||||||
type ClientRequestWriter interface {
 | 
					 | 
				
			||||||
	WriteToRequest(ClientRequest, strfmt.Registry) error
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ClientRequest is an interface for things that know how to
 | 
					 | 
				
			||||||
// add information to a swagger client request
 | 
					 | 
				
			||||||
type ClientRequest interface {
 | 
					 | 
				
			||||||
	SetHeaderParam(string, ...string) error
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	GetHeaderParams() http.Header
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	SetQueryParam(string, ...string) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	SetFormParam(string, ...string) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	SetPathParam(string, string) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GetQueryParams() url.Values
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	SetFileParam(string, ...NamedReadCloser) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	SetBodyParam(interface{}) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	SetTimeout(time.Duration) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GetMethod() string
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GetPath() string
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GetBody() []byte
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GetBodyParam() interface{}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	GetFileParam() map[string][]NamedReadCloser
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NamedReadCloser represents a named ReadCloser interface
 | 
					 | 
				
			||||||
type NamedReadCloser interface {
 | 
					 | 
				
			||||||
	io.ReadCloser
 | 
					 | 
				
			||||||
	Name() string
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NamedReader creates a NamedReadCloser for use as file upload
 | 
					 | 
				
			||||||
func NamedReader(name string, rdr io.Reader) NamedReadCloser {
 | 
					 | 
				
			||||||
	rc, ok := rdr.(io.ReadCloser)
 | 
					 | 
				
			||||||
	if !ok {
 | 
					 | 
				
			||||||
		rc = ioutil.NopCloser(rdr)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &namedReadCloser{
 | 
					 | 
				
			||||||
		name: name,
 | 
					 | 
				
			||||||
		cr:   rc,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type namedReadCloser struct {
 | 
					 | 
				
			||||||
	name string
 | 
					 | 
				
			||||||
	cr   io.ReadCloser
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (n *namedReadCloser) Close() error {
 | 
					 | 
				
			||||||
	return n.cr.Close()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
func (n *namedReadCloser) Read(p []byte) (int, error) {
 | 
					 | 
				
			||||||
	return n.cr.Read(p)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
func (n *namedReadCloser) Name() string {
 | 
					 | 
				
			||||||
	return n.name
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										63
									
								
								vendor/github.com/go-openapi/runtime/client_response.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										63
									
								
								vendor/github.com/go-openapi/runtime/client_response.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,63 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"io"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// A ClientResponse represents a client response
 | 
					 | 
				
			||||||
// This bridges between responses obtained from different transports
 | 
					 | 
				
			||||||
type ClientResponse interface {
 | 
					 | 
				
			||||||
	Code() int
 | 
					 | 
				
			||||||
	Message() string
 | 
					 | 
				
			||||||
	GetHeader(string) string
 | 
					 | 
				
			||||||
	Body() io.ReadCloser
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// A ClientResponseReaderFunc turns a function into a ClientResponseReader interface implementation
 | 
					 | 
				
			||||||
type ClientResponseReaderFunc func(ClientResponse, Consumer) (interface{}, error)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ReadResponse reads the response
 | 
					 | 
				
			||||||
func (read ClientResponseReaderFunc) ReadResponse(resp ClientResponse, consumer Consumer) (interface{}, error) {
 | 
					 | 
				
			||||||
	return read(resp, consumer)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// A ClientResponseReader is an interface for things want to read a response.
 | 
					 | 
				
			||||||
// An application of this is to create structs from response values
 | 
					 | 
				
			||||||
type ClientResponseReader interface {
 | 
					 | 
				
			||||||
	ReadResponse(ClientResponse, Consumer) (interface{}, error)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NewAPIError creates a new API error
 | 
					 | 
				
			||||||
func NewAPIError(opName string, payload interface{}, code int) *APIError {
 | 
					 | 
				
			||||||
	return &APIError{
 | 
					 | 
				
			||||||
		OperationName: opName,
 | 
					 | 
				
			||||||
		Response:      payload,
 | 
					 | 
				
			||||||
		Code:          code,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// APIError wraps an error model and captures the status code
 | 
					 | 
				
			||||||
type APIError struct {
 | 
					 | 
				
			||||||
	OperationName string
 | 
					 | 
				
			||||||
	Response      interface{}
 | 
					 | 
				
			||||||
	Code          int
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (a *APIError) Error() string {
 | 
					 | 
				
			||||||
	return fmt.Sprintf("%s (status %d): %+v ", a.OperationName, a.Code, a.Response)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										47
									
								
								vendor/github.com/go-openapi/runtime/constants.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										47
									
								
								vendor/github.com/go-openapi/runtime/constants.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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const (
 | 
					 | 
				
			||||||
	// HeaderContentType represents a http content-type header, it's value is supposed to be a mime type
 | 
					 | 
				
			||||||
	HeaderContentType = "Content-Type"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// HeaderTransferEncoding represents a http transfer-encoding header.
 | 
					 | 
				
			||||||
	HeaderTransferEncoding = "Transfer-Encoding"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// HeaderAccept the Accept header
 | 
					 | 
				
			||||||
	HeaderAccept = "Accept"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	charsetKey = "charset"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// DefaultMime the default fallback mime type
 | 
					 | 
				
			||||||
	DefaultMime = "application/octet-stream"
 | 
					 | 
				
			||||||
	// JSONMime the json mime type
 | 
					 | 
				
			||||||
	JSONMime = "application/json"
 | 
					 | 
				
			||||||
	// YAMLMime the yaml mime type
 | 
					 | 
				
			||||||
	YAMLMime = "application/x-yaml"
 | 
					 | 
				
			||||||
	// XMLMime the xml mime type
 | 
					 | 
				
			||||||
	XMLMime = "application/xml"
 | 
					 | 
				
			||||||
	// TextMime the text mime type
 | 
					 | 
				
			||||||
	TextMime = "text/plain"
 | 
					 | 
				
			||||||
	// HTMLMime the html mime type
 | 
					 | 
				
			||||||
	HTMLMime = "text/html"
 | 
					 | 
				
			||||||
	// CSVMime the csv mime type
 | 
					 | 
				
			||||||
	CSVMime = "text/csv"
 | 
					 | 
				
			||||||
	// MultipartFormMime the multipart form mime type
 | 
					 | 
				
			||||||
	MultipartFormMime = "multipart/form-data"
 | 
					 | 
				
			||||||
	// URLencodedFormMime the url encoded form mime type
 | 
					 | 
				
			||||||
	URLencodedFormMime = "application/x-www-form-urlencoded"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
							
								
								
									
										77
									
								
								vendor/github.com/go-openapi/runtime/csv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										77
									
								
								vendor/github.com/go-openapi/runtime/csv.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,77 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"bytes"
 | 
					 | 
				
			||||||
	"encoding/csv"
 | 
					 | 
				
			||||||
	"errors"
 | 
					 | 
				
			||||||
	"io"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// CSVConsumer creates a new CSV consumer
 | 
					 | 
				
			||||||
func CSVConsumer() Consumer {
 | 
					 | 
				
			||||||
	return ConsumerFunc(func(reader io.Reader, data interface{}) error {
 | 
					 | 
				
			||||||
		if reader == nil {
 | 
					 | 
				
			||||||
			return errors.New("CSVConsumer requires a reader")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		csvReader := csv.NewReader(reader)
 | 
					 | 
				
			||||||
		writer, ok := data.(io.Writer)
 | 
					 | 
				
			||||||
		if !ok {
 | 
					 | 
				
			||||||
			return errors.New("data type must be io.Writer")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		csvWriter := csv.NewWriter(writer)
 | 
					 | 
				
			||||||
		records, err := csvReader.ReadAll()
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		for _, r := range records {
 | 
					 | 
				
			||||||
			if err := csvWriter.Write(r); err != nil {
 | 
					 | 
				
			||||||
				return err
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		csvWriter.Flush()
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// CSVProducer creates a new CSV producer
 | 
					 | 
				
			||||||
func CSVProducer() Producer {
 | 
					 | 
				
			||||||
	return ProducerFunc(func(writer io.Writer, data interface{}) error {
 | 
					 | 
				
			||||||
		if writer == nil {
 | 
					 | 
				
			||||||
			return errors.New("CSVProducer requires a writer")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		dataBytes, ok := data.([]byte)
 | 
					 | 
				
			||||||
		if !ok {
 | 
					 | 
				
			||||||
			return errors.New("data type must be byte array")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		csvReader := csv.NewReader(bytes.NewBuffer(dataBytes))
 | 
					 | 
				
			||||||
		records, err := csvReader.ReadAll()
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		csvWriter := csv.NewWriter(writer)
 | 
					 | 
				
			||||||
		for _, r := range records {
 | 
					 | 
				
			||||||
			if err := csvWriter.Write(r); err != nil {
 | 
					 | 
				
			||||||
				return err
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		csvWriter.Flush()
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										9
									
								
								vendor/github.com/go-openapi/runtime/discard.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/go-openapi/runtime/discard.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,9 +0,0 @@
 | 
				
			|||||||
package runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import "io"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DiscardConsumer does absolutely nothing, it's a black hole.
 | 
					 | 
				
			||||||
var DiscardConsumer = ConsumerFunc(func(_ io.Reader, _ interface{}) error { return nil })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DiscardProducer does absolutely nothing, it's a black hole.
 | 
					 | 
				
			||||||
var DiscardProducer = ProducerFunc(func(_ io.Writer, _ interface{}) error { return nil })
 | 
					 | 
				
			||||||
							
								
								
									
										33
									
								
								vendor/github.com/go-openapi/runtime/file.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										33
									
								
								vendor/github.com/go-openapi/runtime/file.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,33 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import "mime/multipart"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// File represents an uploaded file.
 | 
					 | 
				
			||||||
type File struct {
 | 
					 | 
				
			||||||
	Data   multipart.File
 | 
					 | 
				
			||||||
	Header *multipart.FileHeader
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Read bytes from the file
 | 
					 | 
				
			||||||
func (f *File) Read(p []byte) (n int, err error) {
 | 
					 | 
				
			||||||
	return f.Data.Read(p)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Close the file
 | 
					 | 
				
			||||||
func (f *File) Close() error {
 | 
					 | 
				
			||||||
	return f.Data.Close()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										16
									
								
								vendor/github.com/go-openapi/runtime/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/go-openapi/runtime/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,16 +0,0 @@
 | 
				
			|||||||
module github.com/go-openapi/runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require (
 | 
					 | 
				
			||||||
	github.com/docker/go-units v0.4.0
 | 
					 | 
				
			||||||
	github.com/go-openapi/analysis v0.19.2
 | 
					 | 
				
			||||||
	github.com/go-openapi/errors v0.19.2
 | 
					 | 
				
			||||||
	github.com/go-openapi/loads v0.19.2
 | 
					 | 
				
			||||||
	github.com/go-openapi/spec v0.19.2
 | 
					 | 
				
			||||||
	github.com/go-openapi/strfmt v0.19.0
 | 
					 | 
				
			||||||
	github.com/go-openapi/swag v0.19.2
 | 
					 | 
				
			||||||
	github.com/go-openapi/validate v0.19.2
 | 
					 | 
				
			||||||
	github.com/stretchr/testify v1.3.0
 | 
					 | 
				
			||||||
	golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56 // indirect
 | 
					 | 
				
			||||||
	golang.org/x/tools v0.0.0-20190617190820-da514acc4774 // indirect
 | 
					 | 
				
			||||||
	gopkg.in/yaml.v2 v2.2.2
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
							
								
								
									
										133
									
								
								vendor/github.com/go-openapi/runtime/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										133
									
								
								vendor/github.com/go-openapi/runtime/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,133 +0,0 @@
 | 
				
			|||||||
github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4=
 | 
					 | 
				
			||||||
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/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/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf h1:eg0MeVzsP1G42dRafH3vf+al2vQIJU0YHX+1Tw87oco=
 | 
					 | 
				
			||||||
github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 | 
					 | 
				
			||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
 | 
					 | 
				
			||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 | 
					 | 
				
			||||||
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/docker/go-units v0.3.3 h1:Xk8S3Xj5sLGlG5g67hJmYMmUgXv5N4PhkjJHHqrwnTk=
 | 
					 | 
				
			||||||
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 | 
					 | 
				
			||||||
github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw=
 | 
					 | 
				
			||||||
github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 | 
					 | 
				
			||||||
github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 | 
					 | 
				
			||||||
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8 h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is=
 | 
					 | 
				
			||||||
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q=
 | 
					 | 
				
			||||||
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.17.2 h1:eYp14J1o8TTSCzndHBtsNuckikV1PfZOSnx4BcBeu0c=
 | 
					 | 
				
			||||||
github.com/go-openapi/analysis v0.17.2/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 h1:ophLETFestFZHk3ji7niPEL4d466QjW+0Tdg5VyDq7E=
 | 
					 | 
				
			||||||
github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk=
 | 
					 | 
				
			||||||
github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
 | 
					 | 
				
			||||||
github.com/go-openapi/errors v0.17.2 h1:azEQ8Fnx0jmtFF2fxsnmd6I0x6rsweUF63qqSO1NmKk=
 | 
					 | 
				
			||||||
github.com/go-openapi/errors v0.17.2/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 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=
 | 
					 | 
				
			||||||
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.17.2 h1:3ekBy41gar/iJi2KSh/au/PrC2vpLr85upF/UZmm3W0=
 | 
					 | 
				
			||||||
github.com/go-openapi/jsonpointer v0.17.2/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 h1:A9+F4Dc/MCNB5jibxf6rRvOvR/iFgQdyNx9eIhnGqq0=
 | 
					 | 
				
			||||||
github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg=
 | 
					 | 
				
			||||||
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
 | 
					 | 
				
			||||||
github.com/go-openapi/jsonreference v0.17.2 h1:lF3z7AH8dd0IKXc1zEBi1dj0B4XgVb5cVjn39dCK3Ls=
 | 
					 | 
				
			||||||
github.com/go-openapi/jsonreference v0.17.2/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 h1:o20suLFB4Ri0tuzpWtyHlh7E7HnkqTNLq6aR6WVNS1w=
 | 
					 | 
				
			||||||
github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc=
 | 
					 | 
				
			||||||
github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
 | 
					 | 
				
			||||||
github.com/go-openapi/loads v0.17.2 h1:tEXYu6Xc0pevpzzQx5ghrMN9F7IVpN/+u4iD3rkYE5o=
 | 
					 | 
				
			||||||
github.com/go-openapi/loads v0.17.2/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 h1:rf5ArTHmIJxyV5Oiks+Su0mUens1+AjpkPoWr5xFRcI=
 | 
					 | 
				
			||||||
github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs=
 | 
					 | 
				
			||||||
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/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
 | 
					 | 
				
			||||||
github.com/go-openapi/spec v0.17.2 h1:eb2NbuCnoe8cWAxhtK6CfMWUYmiFEZJ9Hx3Z2WRwJ5M=
 | 
					 | 
				
			||||||
github.com/go-openapi/spec v0.17.2/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 h1:SStNd1jRcYtfKCN7R0laGNs80WYYvn5CbBjM2sOmCrE=
 | 
					 | 
				
			||||||
github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.17.2 h1:2KDns36DMHXG9/iYkOjiX+/8fKK9GCU5ELZ+J6qcRVA=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.17.2/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 h1:0Dn9qy1G9+UJfRU7TR8bmdGxb4uifB7HNrJjOnV0yPk=
 | 
					 | 
				
			||||||
github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY=
 | 
					 | 
				
			||||||
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
 | 
					 | 
				
			||||||
github.com/go-openapi/swag v0.17.2 h1:K/ycE/XTUDFltNHSO32cGRUhrVGJD64o8WgAIZNyc3k=
 | 
					 | 
				
			||||||
github.com/go-openapi/swag v0.17.2/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 h1:jvO6bCMBEilGwMfHhrd61zIID4oIFdwb76V17SM88dE=
 | 
					 | 
				
			||||||
github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk=
 | 
					 | 
				
			||||||
github.com/go-openapi/validate v0.17.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
 | 
					 | 
				
			||||||
github.com/go-openapi/validate v0.17.2 h1:lwFfiS4sv5DvOrsYDsYq4N7UU8ghXiYtPJ+VcQnC3Xg=
 | 
					 | 
				
			||||||
github.com/go-openapi/validate v0.17.2/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
 | 
					 | 
				
			||||||
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
 | 
					 | 
				
			||||||
github.com/go-openapi/validate v0.19.2 h1:ky5l57HjyVRrsJfd2+Ro5Z9PjGuKbsmftwyMtk8H7js=
 | 
					 | 
				
			||||||
github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.1.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 | 
					 | 
				
			||||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
 | 
					 | 
				
			||||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
 | 
					 | 
				
			||||||
github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA=
 | 
					 | 
				
			||||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 | 
					 | 
				
			||||||
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=
 | 
					 | 
				
			||||||
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 | 
					 | 
				
			||||||
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe h1:W/GaMY0y69G4cFlmsC6B9sbuo2fP8OFP1ABjt4kPz+w=
 | 
					 | 
				
			||||||
github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
 | 
					 | 
				
			||||||
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/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
 | 
					 | 
				
			||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 | 
					 | 
				
			||||||
github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
 | 
					 | 
				
			||||||
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/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
 | 
					 | 
				
			||||||
github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
 | 
					 | 
				
			||||||
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/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
 | 
					 | 
				
			||||||
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/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc h1:a3CU5tJYVj92DY2LaA1kUkrsqD5/3mLDhx2NcNqyW+0=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/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-20190320064053-1272bf9dcd53 h1:kcXqo9vE6fsZY5X5Rd7R1l7fTgnWaDCVmln65REefiE=
 | 
					 | 
				
			||||||
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-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU=
 | 
					 | 
				
			||||||
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
 | 
					 | 
				
			||||||
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 | 
					 | 
				
			||||||
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 | 
					 | 
				
			||||||
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-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 | 
					 | 
				
			||||||
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=
 | 
					 | 
				
			||||||
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=
 | 
					 | 
				
			||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
					 | 
				
			||||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
 | 
					 | 
				
			||||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
 | 
					 | 
				
			||||||
							
								
								
									
										45
									
								
								vendor/github.com/go-openapi/runtime/headers.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								vendor/github.com/go-openapi/runtime/headers.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,45 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"mime"
 | 
					 | 
				
			||||||
	"net/http"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/errors"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ContentType parses a content type header
 | 
					 | 
				
			||||||
func ContentType(headers http.Header) (string, string, error) {
 | 
					 | 
				
			||||||
	ct := headers.Get(HeaderContentType)
 | 
					 | 
				
			||||||
	orig := ct
 | 
					 | 
				
			||||||
	if ct == "" {
 | 
					 | 
				
			||||||
		ct = DefaultMime
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if ct == "" {
 | 
					 | 
				
			||||||
		return "", "", nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	mt, opts, err := mime.ParseMediaType(ct)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return "", "", errors.NewParseError(HeaderContentType, "header", orig, err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if cs, ok := opts[charsetKey]; ok {
 | 
					 | 
				
			||||||
		return mt, cs, nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return mt, "", nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										103
									
								
								vendor/github.com/go-openapi/runtime/interfaces.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										103
									
								
								vendor/github.com/go-openapi/runtime/interfaces.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,103 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"io"
 | 
					 | 
				
			||||||
	"net/http"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/strfmt"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// OperationHandlerFunc an adapter for a function to the OperationHandler interface
 | 
					 | 
				
			||||||
type OperationHandlerFunc func(interface{}) (interface{}, error)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Handle implements the operation handler interface
 | 
					 | 
				
			||||||
func (s OperationHandlerFunc) Handle(data interface{}) (interface{}, error) {
 | 
					 | 
				
			||||||
	return s(data)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// OperationHandler a handler for a swagger operation
 | 
					 | 
				
			||||||
type OperationHandler interface {
 | 
					 | 
				
			||||||
	Handle(interface{}) (interface{}, error)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ConsumerFunc represents a function that can be used as a consumer
 | 
					 | 
				
			||||||
type ConsumerFunc func(io.Reader, interface{}) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Consume consumes the reader into the data parameter
 | 
					 | 
				
			||||||
func (fn ConsumerFunc) Consume(reader io.Reader, data interface{}) error {
 | 
					 | 
				
			||||||
	return fn(reader, data)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Consumer implementations know how to bind the values on the provided interface to
 | 
					 | 
				
			||||||
// data provided by the request body
 | 
					 | 
				
			||||||
type Consumer interface {
 | 
					 | 
				
			||||||
	// Consume performs the binding of request values
 | 
					 | 
				
			||||||
	Consume(io.Reader, interface{}) error
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ProducerFunc represents a function that can be used as a producer
 | 
					 | 
				
			||||||
type ProducerFunc func(io.Writer, interface{}) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Produce produces the response for the provided data
 | 
					 | 
				
			||||||
func (f ProducerFunc) Produce(writer io.Writer, data interface{}) error {
 | 
					 | 
				
			||||||
	return f(writer, data)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Producer implementations know how to turn the provided interface into a valid
 | 
					 | 
				
			||||||
// HTTP response
 | 
					 | 
				
			||||||
type Producer interface {
 | 
					 | 
				
			||||||
	// Produce writes to the http response
 | 
					 | 
				
			||||||
	Produce(io.Writer, interface{}) error
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AuthenticatorFunc turns a function into an authenticator
 | 
					 | 
				
			||||||
type AuthenticatorFunc func(interface{}) (bool, interface{}, error)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Authenticate authenticates the request with the provided data
 | 
					 | 
				
			||||||
func (f AuthenticatorFunc) Authenticate(params interface{}) (bool, interface{}, error) {
 | 
					 | 
				
			||||||
	return f(params)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Authenticator represents an authentication strategy
 | 
					 | 
				
			||||||
// implementations of Authenticator know how to authenticate the
 | 
					 | 
				
			||||||
// request data and translate that into a valid principal object or an error
 | 
					 | 
				
			||||||
type Authenticator interface {
 | 
					 | 
				
			||||||
	Authenticate(interface{}) (bool, interface{}, error)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AuthorizerFunc turns a function into an authorizer
 | 
					 | 
				
			||||||
type AuthorizerFunc func(*http.Request, interface{}) error
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Authorize authorizes the processing of the request for the principal
 | 
					 | 
				
			||||||
func (f AuthorizerFunc) Authorize(r *http.Request, principal interface{}) error {
 | 
					 | 
				
			||||||
	return f(r, principal)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Authorizer represents an authorization strategy
 | 
					 | 
				
			||||||
// implementations of Authorizer know how to authorize the principal object
 | 
					 | 
				
			||||||
// using the request data and returns error if unauthorized
 | 
					 | 
				
			||||||
type Authorizer interface {
 | 
					 | 
				
			||||||
	Authorize(*http.Request, interface{}) error
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Validatable types implementing this interface allow customizing their validation
 | 
					 | 
				
			||||||
// this will be used instead of the reflective validation based on the spec document.
 | 
					 | 
				
			||||||
// the implementations are assumed to have been generated by the swagger tool so they should
 | 
					 | 
				
			||||||
// contain all the validations obtained from the spec
 | 
					 | 
				
			||||||
type Validatable interface {
 | 
					 | 
				
			||||||
	Validate(strfmt.Registry) error
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										38
									
								
								vendor/github.com/go-openapi/runtime/json.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								vendor/github.com/go-openapi/runtime/json.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,38 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"encoding/json"
 | 
					 | 
				
			||||||
	"io"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// JSONConsumer creates a new JSON consumer
 | 
					 | 
				
			||||||
func JSONConsumer() Consumer {
 | 
					 | 
				
			||||||
	return ConsumerFunc(func(reader io.Reader, data interface{}) error {
 | 
					 | 
				
			||||||
		dec := json.NewDecoder(reader)
 | 
					 | 
				
			||||||
		dec.UseNumber() // preserve number formats
 | 
					 | 
				
			||||||
		return dec.Decode(data)
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// JSONProducer creates a new JSON producer
 | 
					 | 
				
			||||||
func JSONProducer() Producer {
 | 
					 | 
				
			||||||
	return ProducerFunc(func(writer io.Writer, data interface{}) error {
 | 
					 | 
				
			||||||
		enc := json.NewEncoder(writer)
 | 
					 | 
				
			||||||
		enc.SetEscapeHTML(false)
 | 
					 | 
				
			||||||
		return enc.Encode(data)
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										139
									
								
								vendor/github.com/go-openapi/runtime/request.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										139
									
								
								vendor/github.com/go-openapi/runtime/request.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,139 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"bufio"
 | 
					 | 
				
			||||||
	"io"
 | 
					 | 
				
			||||||
	"net/http"
 | 
					 | 
				
			||||||
	"strings"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/swag"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// CanHaveBody returns true if this method can have a body
 | 
					 | 
				
			||||||
func CanHaveBody(method string) bool {
 | 
					 | 
				
			||||||
	mn := strings.ToUpper(method)
 | 
					 | 
				
			||||||
	return mn == "POST" || mn == "PUT" || mn == "PATCH" || mn == "DELETE"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// IsSafe returns true if this is a request with a safe method
 | 
					 | 
				
			||||||
func IsSafe(r *http.Request) bool {
 | 
					 | 
				
			||||||
	mn := strings.ToUpper(r.Method)
 | 
					 | 
				
			||||||
	return mn == "GET" || mn == "HEAD"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// AllowsBody returns true if the request allows for a body
 | 
					 | 
				
			||||||
func AllowsBody(r *http.Request) bool {
 | 
					 | 
				
			||||||
	mn := strings.ToUpper(r.Method)
 | 
					 | 
				
			||||||
	return mn != "HEAD"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// HasBody returns true if this method needs a content-type
 | 
					 | 
				
			||||||
func HasBody(r *http.Request) bool {
 | 
					 | 
				
			||||||
	// happy case: we have a content length set
 | 
					 | 
				
			||||||
	if r.ContentLength > 0 {
 | 
					 | 
				
			||||||
		return true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if r.Header.Get(http.CanonicalHeaderKey("content-length")) != "" {
 | 
					 | 
				
			||||||
		// in this case, no Transfer-Encoding should be present
 | 
					 | 
				
			||||||
		// we have a header set but it was explicitly set to 0, so we assume no body
 | 
					 | 
				
			||||||
		return false
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	rdr := newPeekingReader(r.Body)
 | 
					 | 
				
			||||||
	r.Body = rdr
 | 
					 | 
				
			||||||
	return rdr.HasContent()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func newPeekingReader(r io.ReadCloser) *peekingReader {
 | 
					 | 
				
			||||||
	if r == nil {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return &peekingReader{
 | 
					 | 
				
			||||||
		underlying: bufio.NewReader(r),
 | 
					 | 
				
			||||||
		orig:       r,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type peekingReader struct {
 | 
					 | 
				
			||||||
	underlying interface {
 | 
					 | 
				
			||||||
		Buffered() int
 | 
					 | 
				
			||||||
		Peek(int) ([]byte, error)
 | 
					 | 
				
			||||||
		Read([]byte) (int, error)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	orig io.ReadCloser
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *peekingReader) HasContent() bool {
 | 
					 | 
				
			||||||
	if p == nil {
 | 
					 | 
				
			||||||
		return false
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if p.underlying.Buffered() > 0 {
 | 
					 | 
				
			||||||
		return true
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	b, err := p.underlying.Peek(1)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return false
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return len(b) > 0
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *peekingReader) Read(d []byte) (int, error) {
 | 
					 | 
				
			||||||
	if p == nil {
 | 
					 | 
				
			||||||
		return 0, io.EOF
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return p.underlying.Read(d)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (p *peekingReader) Close() error {
 | 
					 | 
				
			||||||
	p.underlying = nil
 | 
					 | 
				
			||||||
	if p.orig != nil {
 | 
					 | 
				
			||||||
		return p.orig.Close()
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// JSONRequest creates a new http request with json headers set
 | 
					 | 
				
			||||||
func JSONRequest(method, urlStr string, body io.Reader) (*http.Request, error) {
 | 
					 | 
				
			||||||
	req, err := http.NewRequest(method, urlStr, body)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return nil, err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	req.Header.Add(HeaderContentType, JSONMime)
 | 
					 | 
				
			||||||
	req.Header.Add(HeaderAccept, JSONMime)
 | 
					 | 
				
			||||||
	return req, nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Gettable for things with a method GetOK(string) (data string, hasKey bool, hasValue bool)
 | 
					 | 
				
			||||||
type Gettable interface {
 | 
					 | 
				
			||||||
	GetOK(string) ([]string, bool, bool)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ReadSingleValue reads a single value from the source
 | 
					 | 
				
			||||||
func ReadSingleValue(values Gettable, name string) string {
 | 
					 | 
				
			||||||
	vv, _, hv := values.GetOK(name)
 | 
					 | 
				
			||||||
	if hv {
 | 
					 | 
				
			||||||
		return vv[len(vv)-1]
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return ""
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ReadCollectionValue reads a collection value from a string data source
 | 
					 | 
				
			||||||
func ReadCollectionValue(values Gettable, name, collectionFormat string) []string {
 | 
					 | 
				
			||||||
	v := ReadSingleValue(values, name)
 | 
					 | 
				
			||||||
	return swag.SplitByFormat(v, collectionFormat)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										90
									
								
								vendor/github.com/go-openapi/runtime/statuses.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										90
									
								
								vendor/github.com/go-openapi/runtime/statuses.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,90 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Statuses lists the most common HTTP status codes to default message
 | 
					 | 
				
			||||||
// taken from https://httpstatuses.com/
 | 
					 | 
				
			||||||
var Statuses = map[int]string{
 | 
					 | 
				
			||||||
	100: "Continue",
 | 
					 | 
				
			||||||
	101: "Switching Protocols",
 | 
					 | 
				
			||||||
	102: "Processing",
 | 
					 | 
				
			||||||
	103: "Checkpoint",
 | 
					 | 
				
			||||||
	122: "URI too long",
 | 
					 | 
				
			||||||
	200: "OK",
 | 
					 | 
				
			||||||
	201: "Created",
 | 
					 | 
				
			||||||
	202: "Accepted",
 | 
					 | 
				
			||||||
	203: "Request Processed",
 | 
					 | 
				
			||||||
	204: "No Content",
 | 
					 | 
				
			||||||
	205: "Reset Content",
 | 
					 | 
				
			||||||
	206: "Partial Content",
 | 
					 | 
				
			||||||
	207: "Multi-Status",
 | 
					 | 
				
			||||||
	208: "Already Reported",
 | 
					 | 
				
			||||||
	226: "IM Used",
 | 
					 | 
				
			||||||
	300: "Multiple Choices",
 | 
					 | 
				
			||||||
	301: "Moved Permanently",
 | 
					 | 
				
			||||||
	302: "Found",
 | 
					 | 
				
			||||||
	303: "See Other",
 | 
					 | 
				
			||||||
	304: "Not Modified",
 | 
					 | 
				
			||||||
	305: "Use Proxy",
 | 
					 | 
				
			||||||
	306: "Switch Proxy",
 | 
					 | 
				
			||||||
	307: "Temporary Redirect",
 | 
					 | 
				
			||||||
	308: "Permanent Redirect",
 | 
					 | 
				
			||||||
	400: "Bad Request",
 | 
					 | 
				
			||||||
	401: "Unauthorized",
 | 
					 | 
				
			||||||
	402: "Payment Required",
 | 
					 | 
				
			||||||
	403: "Forbidden",
 | 
					 | 
				
			||||||
	404: "Not Found",
 | 
					 | 
				
			||||||
	405: "Method Not Allowed",
 | 
					 | 
				
			||||||
	406: "Not Acceptable",
 | 
					 | 
				
			||||||
	407: "Proxy Authentication Required",
 | 
					 | 
				
			||||||
	408: "Request Timeout",
 | 
					 | 
				
			||||||
	409: "Conflict",
 | 
					 | 
				
			||||||
	410: "Gone",
 | 
					 | 
				
			||||||
	411: "Length Required",
 | 
					 | 
				
			||||||
	412: "Precondition Failed",
 | 
					 | 
				
			||||||
	413: "Request Entity Too Large",
 | 
					 | 
				
			||||||
	414: "Request-URI Too Long",
 | 
					 | 
				
			||||||
	415: "Unsupported Media Type",
 | 
					 | 
				
			||||||
	416: "Request Range Not Satisfiable",
 | 
					 | 
				
			||||||
	417: "Expectation Failed",
 | 
					 | 
				
			||||||
	418: "I'm a teapot",
 | 
					 | 
				
			||||||
	420: "Enhance Your Calm",
 | 
					 | 
				
			||||||
	422: "Unprocessable Entity",
 | 
					 | 
				
			||||||
	423: "Locked",
 | 
					 | 
				
			||||||
	424: "Failed Dependency",
 | 
					 | 
				
			||||||
	426: "Upgrade Required",
 | 
					 | 
				
			||||||
	428: "Precondition Required",
 | 
					 | 
				
			||||||
	429: "Too Many Requests",
 | 
					 | 
				
			||||||
	431: "Request Header Fields Too Large",
 | 
					 | 
				
			||||||
	444: "No Response",
 | 
					 | 
				
			||||||
	449: "Retry With",
 | 
					 | 
				
			||||||
	450: "Blocked by Windows Parental Controls",
 | 
					 | 
				
			||||||
	451: "Wrong Exchange Server",
 | 
					 | 
				
			||||||
	499: "Client Closed Request",
 | 
					 | 
				
			||||||
	500: "Internal Server Error",
 | 
					 | 
				
			||||||
	501: "Not Implemented",
 | 
					 | 
				
			||||||
	502: "Bad Gateway",
 | 
					 | 
				
			||||||
	503: "Service Unavailable",
 | 
					 | 
				
			||||||
	504: "Gateway Timeout",
 | 
					 | 
				
			||||||
	505: "HTTP Version Not Supported",
 | 
					 | 
				
			||||||
	506: "Variant Also Negotiates",
 | 
					 | 
				
			||||||
	507: "Insufficient Storage",
 | 
					 | 
				
			||||||
	508: "Loop Detected",
 | 
					 | 
				
			||||||
	509: "Bandwidth Limit Exceeded",
 | 
					 | 
				
			||||||
	510: "Not Extended",
 | 
					 | 
				
			||||||
	511: "Network Authentication Required",
 | 
					 | 
				
			||||||
	598: "Network read timeout error",
 | 
					 | 
				
			||||||
	599: "Network connect timeout error",
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										117
									
								
								vendor/github.com/go-openapi/runtime/text.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										117
									
								
								vendor/github.com/go-openapi/runtime/text.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,117 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"bytes"
 | 
					 | 
				
			||||||
	"encoding"
 | 
					 | 
				
			||||||
	"errors"
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"io"
 | 
					 | 
				
			||||||
	"reflect"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/swag"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// TextConsumer creates a new text consumer
 | 
					 | 
				
			||||||
func TextConsumer() Consumer {
 | 
					 | 
				
			||||||
	return ConsumerFunc(func(reader io.Reader, data interface{}) error {
 | 
					 | 
				
			||||||
		if reader == nil {
 | 
					 | 
				
			||||||
			return errors.New("TextConsumer requires a reader") // early exit
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		buf := new(bytes.Buffer)
 | 
					 | 
				
			||||||
		_, err := buf.ReadFrom(reader)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		b := buf.Bytes()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		// If the buffer is empty, no need to unmarshal it, which causes a panic.
 | 
					 | 
				
			||||||
		if len(b) == 0 {
 | 
					 | 
				
			||||||
			data = ""
 | 
					 | 
				
			||||||
			return nil
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if tu, ok := data.(encoding.TextUnmarshaler); ok {
 | 
					 | 
				
			||||||
			err := tu.UnmarshalText(b)
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return fmt.Errorf("text consumer: %v", err)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			return nil
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		t := reflect.TypeOf(data)
 | 
					 | 
				
			||||||
		if data != nil && t.Kind() == reflect.Ptr {
 | 
					 | 
				
			||||||
			v := reflect.Indirect(reflect.ValueOf(data))
 | 
					 | 
				
			||||||
			if t.Elem().Kind() == reflect.String {
 | 
					 | 
				
			||||||
				v.SetString(string(b))
 | 
					 | 
				
			||||||
				return nil
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		return fmt.Errorf("%v (%T) is not supported by the TextConsumer, %s",
 | 
					 | 
				
			||||||
			data, data, "can be resolved by supporting TextUnmarshaler interface")
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// TextProducer creates a new text producer
 | 
					 | 
				
			||||||
func TextProducer() Producer {
 | 
					 | 
				
			||||||
	return ProducerFunc(func(writer io.Writer, data interface{}) error {
 | 
					 | 
				
			||||||
		if writer == nil {
 | 
					 | 
				
			||||||
			return errors.New("TextProducer requires a writer") // early exit
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if data == nil {
 | 
					 | 
				
			||||||
			return errors.New("no data given to produce text from")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if tm, ok := data.(encoding.TextMarshaler); ok {
 | 
					 | 
				
			||||||
			txt, err := tm.MarshalText()
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return fmt.Errorf("text producer: %v", err)
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			_, err = writer.Write(txt)
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if str, ok := data.(error); ok {
 | 
					 | 
				
			||||||
			_, err := writer.Write([]byte(str.Error()))
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		if str, ok := data.(fmt.Stringer); ok {
 | 
					 | 
				
			||||||
			_, err := writer.Write([]byte(str.String()))
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		v := reflect.Indirect(reflect.ValueOf(data))
 | 
					 | 
				
			||||||
		if t := v.Type(); t.Kind() == reflect.Struct || t.Kind() == reflect.Slice {
 | 
					 | 
				
			||||||
			b, err := swag.WriteJSON(data)
 | 
					 | 
				
			||||||
			if err != nil {
 | 
					 | 
				
			||||||
				return err
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			_, err = writer.Write(b)
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if v.Kind() != reflect.String {
 | 
					 | 
				
			||||||
			return fmt.Errorf("%T is not a supported type by the TextProducer", data)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		_, err := writer.Write([]byte(v.String()))
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										19
									
								
								vendor/github.com/go-openapi/runtime/values.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/go-openapi/runtime/values.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,19 +0,0 @@
 | 
				
			|||||||
package runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Values typically represent parameters on a http request.
 | 
					 | 
				
			||||||
type Values map[string][]string
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// GetOK returns the values collection for the given key.
 | 
					 | 
				
			||||||
// When the key is present in the map it will return true for hasKey.
 | 
					 | 
				
			||||||
// When the value is not empty it will return true for hasValue.
 | 
					 | 
				
			||||||
func (v Values) GetOK(key string) (value []string, hasKey bool, hasValue bool) {
 | 
					 | 
				
			||||||
	value, hasKey = v[key]
 | 
					 | 
				
			||||||
	if !hasKey {
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if len(value) == 0 {
 | 
					 | 
				
			||||||
		return
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	hasValue = true
 | 
					 | 
				
			||||||
	return
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										36
									
								
								vendor/github.com/go-openapi/runtime/xml.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/go-openapi/runtime/xml.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,36 +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 runtime
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"encoding/xml"
 | 
					 | 
				
			||||||
	"io"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// XMLConsumer creates a new XML consumer
 | 
					 | 
				
			||||||
func XMLConsumer() Consumer {
 | 
					 | 
				
			||||||
	return ConsumerFunc(func(reader io.Reader, data interface{}) error {
 | 
					 | 
				
			||||||
		dec := xml.NewDecoder(reader)
 | 
					 | 
				
			||||||
		return dec.Decode(data)
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// XMLProducer creates a new XML producer
 | 
					 | 
				
			||||||
func XMLProducer() Producer {
 | 
					 | 
				
			||||||
	return ProducerFunc(func(writer io.Writer, data interface{}) error {
 | 
					 | 
				
			||||||
		enc := xml.NewEncoder(writer)
 | 
					 | 
				
			||||||
		return enc.Encode(data)
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										26
									
								
								vendor/github.com/go-openapi/strfmt/.editorconfig
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/go-openapi/strfmt/.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/strfmt/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/go-openapi/strfmt/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,2 +0,0 @@
 | 
				
			|||||||
secrets.yml
 | 
					 | 
				
			||||||
coverage.out
 | 
					 | 
				
			||||||
							
								
								
									
										30
									
								
								vendor/github.com/go-openapi/strfmt/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/github.com/go-openapi/strfmt/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,30 +0,0 @@
 | 
				
			|||||||
linters-settings:
 | 
					 | 
				
			||||||
  govet:
 | 
					 | 
				
			||||||
    check-shadowing: true
 | 
					 | 
				
			||||||
  golint:
 | 
					 | 
				
			||||||
    min-confidence: 0
 | 
					 | 
				
			||||||
  gocyclo:
 | 
					 | 
				
			||||||
    min-complexity: 31
 | 
					 | 
				
			||||||
  maligned:
 | 
					 | 
				
			||||||
    suggest-new: true
 | 
					 | 
				
			||||||
  dupl:
 | 
					 | 
				
			||||||
    threshold: 100
 | 
					 | 
				
			||||||
  goconst:
 | 
					 | 
				
			||||||
    min-len: 2
 | 
					 | 
				
			||||||
    min-occurrences: 4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
linters:
 | 
					 | 
				
			||||||
  enable-all: true
 | 
					 | 
				
			||||||
  disable:
 | 
					 | 
				
			||||||
    - maligned
 | 
					 | 
				
			||||||
    - lll
 | 
					 | 
				
			||||||
    - gochecknoinits
 | 
					 | 
				
			||||||
    - gochecknoglobals
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
issues:
 | 
					 | 
				
			||||||
  exclude-rules:
 | 
					 | 
				
			||||||
    - path: bson.go
 | 
					 | 
				
			||||||
      text: "should be .*ObjectID"
 | 
					 | 
				
			||||||
      linters:
 | 
					 | 
				
			||||||
        - golint
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										15
									
								
								vendor/github.com/go-openapi/strfmt/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								vendor/github.com/go-openapi/strfmt/.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
 | 
					 | 
				
			||||||
language: go
 | 
					 | 
				
			||||||
env:
 | 
					 | 
				
			||||||
- GO111MODULE=on
 | 
					 | 
				
			||||||
notifications:
 | 
					 | 
				
			||||||
  slack:
 | 
					 | 
				
			||||||
    secure: zE5AtIYTpYfQPnTzP+EaQPN7JKtfFAGv6PrJqoIZLOXa8B6zGb6+J1JRNNxWi7faWbyJOxa4FSSsuPsKZMycUK6wlLFIdhDxwqeo7Ew8r6rdZKdfUHQggfNS9wO79ARoNYUDHtmnaBUS+eWSM1YqSc4i99QxyyfuURLOeAaA/q14YbdlTlaw3lrZ0qT92ot1FnVGNOx064zuHtFeUf+jAVRMZ6Q3rvqllwIlPszE6rmHGXBt2VoJxRaBetdwd7FgkcYw9FPXKHhadwC7/75ZAdmxIukhxNMw4Tr5NuPcqNcnbYLenDP7B3lssGVIrP4BRSqekS1d/tqvdvnnFWHMwrNCkSnSc065G5+qWTlXKAemIclgiXXqE2furBNLm05MDdG8fn5epS0UNarkjD+zX336RiqwBlOX4KbF+vPyqcO98CsN0lnd+H6loc9reiTHs37orFFpQ+309av9be2GGsHUsRB9ssIyrewmhAccOmkRtr2dVTZJNFQwa5Kph5TNJuTjnZEwG/xUkEX2YSfwShOsb062JWiflV6PJdnl80pc9Tn7D5sO5Bf9DbijGRJwwP+YiiJtwtr+vsvS+n4sM0b5eqm4UoRo+JJO8ffoJtHS7ItuyRbVQCwEPJ4221WLcf5PquEEDdAPwR+K4Gj8qTXqTDdxOiES1xFUKVgmzhI=
 | 
					 | 
				
			||||||
script:
 | 
					 | 
				
			||||||
- gotestsum -f short-verbose -- -race -coverprofile=coverage.txt -covermode=atomic ./...
 | 
					 | 
				
			||||||
							
								
								
									
										74
									
								
								vendor/github.com/go-openapi/strfmt/CODE_OF_CONDUCT.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										74
									
								
								vendor/github.com/go-openapi/strfmt/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/strfmt/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										202
									
								
								vendor/github.com/go-openapi/strfmt/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.
 | 
					 | 
				
			||||||
							
								
								
									
										73
									
								
								vendor/github.com/go-openapi/strfmt/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										73
									
								
								vendor/github.com/go-openapi/strfmt/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,73 +0,0 @@
 | 
				
			|||||||
# Strfmt [](https://travis-ci.org/go-openapi/strfmt) [](https://codecov.io/gh/go-openapi/strfmt) [](https://slackin.goswagger.io)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
[](https://raw.githubusercontent.com/go-openapi/strfmt/master/LICENSE)
 | 
					 | 
				
			||||||
[](http://godoc.org/github.com/go-openapi/strfmt)
 | 
					 | 
				
			||||||
[](https://golangci.com)
 | 
					 | 
				
			||||||
[](https://goreportcard.com/report/github.com/go-openapi/strfmt)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This package exposes a registry of data types to support string formats in the go-openapi toolkit.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
strfmt represents a well known string format such as credit card or email. The go toolkit for OpenAPI specifications knows how to deal with those.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Supported data formats
 | 
					 | 
				
			||||||
go-openapi/strfmt follows the swagger 2.0 specification with the following formats
 | 
					 | 
				
			||||||
defined [here](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
It also provides convenient extensions to go-openapi users.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- [x] JSON-schema draft 4 formats
 | 
					 | 
				
			||||||
  - date-time
 | 
					 | 
				
			||||||
  - email
 | 
					 | 
				
			||||||
  - hostname
 | 
					 | 
				
			||||||
  - ipv4
 | 
					 | 
				
			||||||
  - ipv6
 | 
					 | 
				
			||||||
  - uri
 | 
					 | 
				
			||||||
- [x] swagger 2.0 format extensions
 | 
					 | 
				
			||||||
  - binary
 | 
					 | 
				
			||||||
  - byte (e.g. base64 encoded string)
 | 
					 | 
				
			||||||
  - date (e.g. "1970-01-01")
 | 
					 | 
				
			||||||
  - password
 | 
					 | 
				
			||||||
- [x] go-openapi custom format extensions
 | 
					 | 
				
			||||||
  - bsonobjectid (BSON objectID)
 | 
					 | 
				
			||||||
  - creditcard
 | 
					 | 
				
			||||||
  - duration (e.g. "3 weeks", "1ms")
 | 
					 | 
				
			||||||
  - hexcolor (e.g. "#FFFFFF")
 | 
					 | 
				
			||||||
  - isbn, isbn10, isbn13
 | 
					 | 
				
			||||||
  - mac (e.g "01:02:03:04:05:06")
 | 
					 | 
				
			||||||
  - rgbcolor (e.g. "rgb(100,100,100)")
 | 
					 | 
				
			||||||
  - ssn
 | 
					 | 
				
			||||||
  - uuid, uuid3, uuid4, uuid5
 | 
					 | 
				
			||||||
  - cidr (e.g. "192.0.2.1/24", "2001:db8:a0b:12f0::1/32")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
> NOTE: as the name stands for, this package is intended to support string formatting only.
 | 
					 | 
				
			||||||
> It does not provide validation for numerical values with swagger format extension for JSON types "number" or
 | 
					 | 
				
			||||||
> "integer" (e.g. float, double, int32...).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## Format types
 | 
					 | 
				
			||||||
Types defined in strfmt expose marshaling and validation capabilities.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
List of defined types:
 | 
					 | 
				
			||||||
- Base64
 | 
					 | 
				
			||||||
- CreditCard
 | 
					 | 
				
			||||||
- Date
 | 
					 | 
				
			||||||
- DateTime
 | 
					 | 
				
			||||||
- Duration
 | 
					 | 
				
			||||||
- Email
 | 
					 | 
				
			||||||
- HexColor
 | 
					 | 
				
			||||||
- Hostname
 | 
					 | 
				
			||||||
- IPv4
 | 
					 | 
				
			||||||
- IPv6
 | 
					 | 
				
			||||||
- CIDR
 | 
					 | 
				
			||||||
- ISBN
 | 
					 | 
				
			||||||
- ISBN10
 | 
					 | 
				
			||||||
- ISBN13
 | 
					 | 
				
			||||||
- MAC
 | 
					 | 
				
			||||||
- ObjectId
 | 
					 | 
				
			||||||
- Password
 | 
					 | 
				
			||||||
- RGBColor
 | 
					 | 
				
			||||||
- SSN
 | 
					 | 
				
			||||||
- URI
 | 
					 | 
				
			||||||
- UUID
 | 
					 | 
				
			||||||
- UUID3
 | 
					 | 
				
			||||||
- UUID4
 | 
					 | 
				
			||||||
- UUID5
 | 
					 | 
				
			||||||
							
								
								
									
										165
									
								
								vendor/github.com/go-openapi/strfmt/bson.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										165
									
								
								vendor/github.com/go-openapi/strfmt/bson.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 strfmt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"database/sql/driver"
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"go.mongodb.org/mongo-driver/bson"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"go.mongodb.org/mongo-driver/bson/bsontype"
 | 
					 | 
				
			||||||
	bsonprim "go.mongodb.org/mongo-driver/bson/primitive"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func init() {
 | 
					 | 
				
			||||||
	var id ObjectId
 | 
					 | 
				
			||||||
	// register this format in the default registry
 | 
					 | 
				
			||||||
	Default.Add("bsonobjectid", &id, IsBSONObjectID)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// IsBSONObjectID returns true when the string is a valid BSON.ObjectId
 | 
					 | 
				
			||||||
func IsBSONObjectID(str string) bool {
 | 
					 | 
				
			||||||
	_, err := bsonprim.ObjectIDFromHex(str)
 | 
					 | 
				
			||||||
	return err == nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ObjectId represents a BSON object ID (alias to go.mongodb.org/mongo-driver/bson/primitive.ObjectID)
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// swagger:strfmt bsonobjectid
 | 
					 | 
				
			||||||
type ObjectId bsonprim.ObjectID
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NewObjectId creates a ObjectId from a Hex String
 | 
					 | 
				
			||||||
func NewObjectId(hex string) ObjectId {
 | 
					 | 
				
			||||||
	oid, err := bsonprim.ObjectIDFromHex(hex)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		panic(err)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return ObjectId(oid)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MarshalText turns this instance into text
 | 
					 | 
				
			||||||
func (id ObjectId) MarshalText() ([]byte, error) {
 | 
					 | 
				
			||||||
	oid := bsonprim.ObjectID(id)
 | 
					 | 
				
			||||||
	if oid == bsonprim.NilObjectID {
 | 
					 | 
				
			||||||
		return nil, nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return []byte(oid.Hex()), nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// UnmarshalText hydrates this instance from text
 | 
					 | 
				
			||||||
func (id *ObjectId) UnmarshalText(data []byte) error { // validation is performed later on
 | 
					 | 
				
			||||||
	if len(data) == 0 {
 | 
					 | 
				
			||||||
		*id = ObjectId(bsonprim.NilObjectID)
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	oidstr := string(data)
 | 
					 | 
				
			||||||
	oid, err := bsonprim.ObjectIDFromHex(oidstr)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*id = ObjectId(oid)
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Scan read a value from a database driver
 | 
					 | 
				
			||||||
func (id *ObjectId) Scan(raw interface{}) error {
 | 
					 | 
				
			||||||
	var data []byte
 | 
					 | 
				
			||||||
	switch v := raw.(type) {
 | 
					 | 
				
			||||||
	case []byte:
 | 
					 | 
				
			||||||
		data = v
 | 
					 | 
				
			||||||
	case string:
 | 
					 | 
				
			||||||
		data = []byte(v)
 | 
					 | 
				
			||||||
	default:
 | 
					 | 
				
			||||||
		return fmt.Errorf("cannot sql.Scan() strfmt.URI from: %#v", v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return id.UnmarshalText(data)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Value converts a value to a database driver value
 | 
					 | 
				
			||||||
func (id ObjectId) Value() (driver.Value, error) {
 | 
					 | 
				
			||||||
	return driver.Value(bsonprim.ObjectID(id).Hex()), nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (id ObjectId) String() string {
 | 
					 | 
				
			||||||
	return bsonprim.ObjectID(id).String()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MarshalJSON returns the ObjectId as JSON
 | 
					 | 
				
			||||||
func (id ObjectId) MarshalJSON() ([]byte, error) {
 | 
					 | 
				
			||||||
	return bsonprim.ObjectID(id).MarshalJSON()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// UnmarshalJSON sets the ObjectId from JSON
 | 
					 | 
				
			||||||
func (id *ObjectId) UnmarshalJSON(data []byte) error {
 | 
					 | 
				
			||||||
	var obj bsonprim.ObjectID
 | 
					 | 
				
			||||||
	if err := obj.UnmarshalJSON(data); err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*id = ObjectId(obj)
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MarshalBSON renders the object id as a BSON document
 | 
					 | 
				
			||||||
func (id ObjectId) MarshalBSON() ([]byte, error) {
 | 
					 | 
				
			||||||
	return bson.Marshal(bson.M{"data": bsonprim.ObjectID(id)})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// UnmarshalBSON reads the objectId from a BSON document
 | 
					 | 
				
			||||||
func (id *ObjectId) UnmarshalBSON(data []byte) error {
 | 
					 | 
				
			||||||
	var obj struct {
 | 
					 | 
				
			||||||
		Data bsonprim.ObjectID
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	if err := bson.Unmarshal(data, &obj); err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*id = ObjectId(obj.Data)
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MarshalBSONValue is an interface implemented by types that can marshal themselves
 | 
					 | 
				
			||||||
// into a BSON document represented as bytes. The bytes returned must be a valid
 | 
					 | 
				
			||||||
// BSON document if the error is nil.
 | 
					 | 
				
			||||||
func (id ObjectId) MarshalBSONValue() (bsontype.Type, []byte, error) {
 | 
					 | 
				
			||||||
	oid := bsonprim.ObjectID(id)
 | 
					 | 
				
			||||||
	return bsontype.ObjectID, oid[:], nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// UnmarshalBSONValue is an interface implemented by types that can unmarshal a
 | 
					 | 
				
			||||||
// BSON value representation of themselves. The BSON bytes and type can be
 | 
					 | 
				
			||||||
// assumed to be valid. UnmarshalBSONValue must copy the BSON value bytes if it
 | 
					 | 
				
			||||||
// wishes to retain the data after returning.
 | 
					 | 
				
			||||||
func (id *ObjectId) UnmarshalBSONValue(tpe bsontype.Type, data []byte) error {
 | 
					 | 
				
			||||||
	var oid bsonprim.ObjectID
 | 
					 | 
				
			||||||
	copy(oid[:], data)
 | 
					 | 
				
			||||||
	*id = ObjectId(oid)
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DeepCopyInto copies the receiver and writes its value into out.
 | 
					 | 
				
			||||||
func (id *ObjectId) DeepCopyInto(out *ObjectId) {
 | 
					 | 
				
			||||||
	*out = *id
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DeepCopy copies the receiver into a new ObjectId.
 | 
					 | 
				
			||||||
func (id *ObjectId) DeepCopy() *ObjectId {
 | 
					 | 
				
			||||||
	if id == nil {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	out := new(ObjectId)
 | 
					 | 
				
			||||||
	id.DeepCopyInto(out)
 | 
					 | 
				
			||||||
	return out
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										153
									
								
								vendor/github.com/go-openapi/strfmt/date.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										153
									
								
								vendor/github.com/go-openapi/strfmt/date.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,153 +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 strfmt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"database/sql/driver"
 | 
					 | 
				
			||||||
	"encoding/json"
 | 
					 | 
				
			||||||
	"errors"
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"time"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"go.mongodb.org/mongo-driver/bson"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func init() {
 | 
					 | 
				
			||||||
	d := Date{}
 | 
					 | 
				
			||||||
	// register this format in the default registry
 | 
					 | 
				
			||||||
	Default.Add("date", &d, IsDate)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// IsDate returns true when the string is a valid date
 | 
					 | 
				
			||||||
func IsDate(str string) bool {
 | 
					 | 
				
			||||||
	_, err := time.Parse(RFC3339FullDate, str)
 | 
					 | 
				
			||||||
	return err == nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const (
 | 
					 | 
				
			||||||
	// RFC3339FullDate represents a full-date as specified by RFC3339
 | 
					 | 
				
			||||||
	// See: http://goo.gl/xXOvVd
 | 
					 | 
				
			||||||
	RFC3339FullDate = "2006-01-02"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Date represents a date from the API
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// swagger:strfmt date
 | 
					 | 
				
			||||||
type Date time.Time
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// String converts this date into a string
 | 
					 | 
				
			||||||
func (d Date) String() string {
 | 
					 | 
				
			||||||
	return time.Time(d).Format(RFC3339FullDate)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// UnmarshalText parses a text representation into a date type
 | 
					 | 
				
			||||||
func (d *Date) UnmarshalText(text []byte) error {
 | 
					 | 
				
			||||||
	if len(text) == 0 {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	dd, err := time.Parse(RFC3339FullDate, string(text))
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*d = Date(dd)
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MarshalText serializes this date type to string
 | 
					 | 
				
			||||||
func (d Date) MarshalText() ([]byte, error) {
 | 
					 | 
				
			||||||
	return []byte(d.String()), nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Scan scans a Date value from database driver type.
 | 
					 | 
				
			||||||
func (d *Date) Scan(raw interface{}) error {
 | 
					 | 
				
			||||||
	switch v := raw.(type) {
 | 
					 | 
				
			||||||
	case []byte:
 | 
					 | 
				
			||||||
		return d.UnmarshalText(v)
 | 
					 | 
				
			||||||
	case string:
 | 
					 | 
				
			||||||
		return d.UnmarshalText([]byte(v))
 | 
					 | 
				
			||||||
	case time.Time:
 | 
					 | 
				
			||||||
		*d = Date(v)
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	case nil:
 | 
					 | 
				
			||||||
		*d = Date{}
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	default:
 | 
					 | 
				
			||||||
		return fmt.Errorf("cannot sql.Scan() strfmt.Date from: %#v", v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Value converts Date to a primitive value ready to written to a database.
 | 
					 | 
				
			||||||
func (d Date) Value() (driver.Value, error) {
 | 
					 | 
				
			||||||
	return driver.Value(d.String()), nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MarshalJSON returns the Date as JSON
 | 
					 | 
				
			||||||
func (d Date) MarshalJSON() ([]byte, error) {
 | 
					 | 
				
			||||||
	return json.Marshal(time.Time(d).Format(RFC3339FullDate))
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// UnmarshalJSON sets the Date from JSON
 | 
					 | 
				
			||||||
func (d *Date) UnmarshalJSON(data []byte) error {
 | 
					 | 
				
			||||||
	if string(data) == jsonNull {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	var strdate string
 | 
					 | 
				
			||||||
	if err := json.Unmarshal(data, &strdate); err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	tt, err := time.Parse(RFC3339FullDate, strdate)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*d = Date(tt)
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (d Date) MarshalBSON() ([]byte, error) {
 | 
					 | 
				
			||||||
	return bson.Marshal(bson.M{"data": d.String()})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (d *Date) UnmarshalBSON(data []byte) error {
 | 
					 | 
				
			||||||
	var m bson.M
 | 
					 | 
				
			||||||
	if err := bson.Unmarshal(data, &m); err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if data, ok := m["data"].(string); ok {
 | 
					 | 
				
			||||||
		rd, err := time.Parse(RFC3339FullDate, data)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		*d = Date(rd)
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return errors.New("couldn't unmarshal bson bytes value as Date")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DeepCopyInto copies the receiver and writes its value into out.
 | 
					 | 
				
			||||||
func (d *Date) DeepCopyInto(out *Date) {
 | 
					 | 
				
			||||||
	*out = *d
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DeepCopy copies the receiver into a new Date.
 | 
					 | 
				
			||||||
func (d *Date) DeepCopy() *Date {
 | 
					 | 
				
			||||||
	if d == nil {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	out := new(Date)
 | 
					 | 
				
			||||||
	d.DeepCopyInto(out)
 | 
					 | 
				
			||||||
	return out
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										2035
									
								
								vendor/github.com/go-openapi/strfmt/default.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2035
									
								
								vendor/github.com/go-openapi/strfmt/default.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										18
									
								
								vendor/github.com/go-openapi/strfmt/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								vendor/github.com/go-openapi/strfmt/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,18 +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 strfmt contains custom string formats
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// TODO: add info on how to define and register a custom format
 | 
					 | 
				
			||||||
package strfmt
 | 
					 | 
				
			||||||
							
								
								
									
										211
									
								
								vendor/github.com/go-openapi/strfmt/duration.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										211
									
								
								vendor/github.com/go-openapi/strfmt/duration.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,211 +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 strfmt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"database/sql/driver"
 | 
					 | 
				
			||||||
	"encoding/json"
 | 
					 | 
				
			||||||
	"errors"
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"regexp"
 | 
					 | 
				
			||||||
	"strconv"
 | 
					 | 
				
			||||||
	"strings"
 | 
					 | 
				
			||||||
	"time"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"go.mongodb.org/mongo-driver/bson"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func init() {
 | 
					 | 
				
			||||||
	d := Duration(0)
 | 
					 | 
				
			||||||
	// register this format in the default registry
 | 
					 | 
				
			||||||
	Default.Add("duration", &d, IsDuration)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
var (
 | 
					 | 
				
			||||||
	timeUnits = [][]string{
 | 
					 | 
				
			||||||
		{"ns", "nano"},
 | 
					 | 
				
			||||||
		{"us", "µs", "micro"},
 | 
					 | 
				
			||||||
		{"ms", "milli"},
 | 
					 | 
				
			||||||
		{"s", "sec"},
 | 
					 | 
				
			||||||
		{"m", "min"},
 | 
					 | 
				
			||||||
		{"h", "hr", "hour"},
 | 
					 | 
				
			||||||
		{"d", "day"},
 | 
					 | 
				
			||||||
		{"w", "wk", "week"},
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	timeMultiplier = map[string]time.Duration{
 | 
					 | 
				
			||||||
		"ns": time.Nanosecond,
 | 
					 | 
				
			||||||
		"us": time.Microsecond,
 | 
					 | 
				
			||||||
		"ms": time.Millisecond,
 | 
					 | 
				
			||||||
		"s":  time.Second,
 | 
					 | 
				
			||||||
		"m":  time.Minute,
 | 
					 | 
				
			||||||
		"h":  time.Hour,
 | 
					 | 
				
			||||||
		"d":  24 * time.Hour,
 | 
					 | 
				
			||||||
		"w":  7 * 24 * time.Hour,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	durationMatcher = regexp.MustCompile(`((\d+)\s*([A-Za-zµ]+))`)
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// IsDuration returns true if the provided string is a valid duration
 | 
					 | 
				
			||||||
func IsDuration(str string) bool {
 | 
					 | 
				
			||||||
	_, err := ParseDuration(str)
 | 
					 | 
				
			||||||
	return err == nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Duration represents a duration
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Duration stores a period of time as a nanosecond count, with the largest
 | 
					 | 
				
			||||||
// repesentable duration being approximately 290 years.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// swagger:strfmt duration
 | 
					 | 
				
			||||||
type Duration time.Duration
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MarshalText turns this instance into text
 | 
					 | 
				
			||||||
func (d Duration) MarshalText() ([]byte, error) {
 | 
					 | 
				
			||||||
	return []byte(time.Duration(d).String()), nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// UnmarshalText hydrates this instance from text
 | 
					 | 
				
			||||||
func (d *Duration) UnmarshalText(data []byte) error { // validation is performed later on
 | 
					 | 
				
			||||||
	dd, err := ParseDuration(string(data))
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*d = Duration(dd)
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ParseDuration parses a duration from a string, compatible with scala duration syntax
 | 
					 | 
				
			||||||
func ParseDuration(cand string) (time.Duration, error) {
 | 
					 | 
				
			||||||
	if dur, err := time.ParseDuration(cand); err == nil {
 | 
					 | 
				
			||||||
		return dur, nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	var dur time.Duration
 | 
					 | 
				
			||||||
	ok := false
 | 
					 | 
				
			||||||
	for _, match := range durationMatcher.FindAllStringSubmatch(cand, -1) {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		factor, err := strconv.Atoi(match[2]) // converts string to int
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return 0, err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		unit := strings.ToLower(strings.TrimSpace(match[3]))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		for _, variants := range timeUnits {
 | 
					 | 
				
			||||||
			last := len(variants) - 1
 | 
					 | 
				
			||||||
			multiplier := timeMultiplier[variants[0]]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			for i, variant := range variants {
 | 
					 | 
				
			||||||
				if (last == i && strings.HasPrefix(unit, variant)) || strings.EqualFold(variant, unit) {
 | 
					 | 
				
			||||||
					ok = true
 | 
					 | 
				
			||||||
					dur += (time.Duration(factor) * multiplier)
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if ok {
 | 
					 | 
				
			||||||
		return dur, nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return 0, fmt.Errorf("unable to parse %s as duration", cand)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Scan reads a Duration value from database driver type.
 | 
					 | 
				
			||||||
func (d *Duration) Scan(raw interface{}) error {
 | 
					 | 
				
			||||||
	switch v := raw.(type) {
 | 
					 | 
				
			||||||
	// TODO: case []byte: // ?
 | 
					 | 
				
			||||||
	case int64:
 | 
					 | 
				
			||||||
		*d = Duration(v)
 | 
					 | 
				
			||||||
	case float64:
 | 
					 | 
				
			||||||
		*d = Duration(int64(v))
 | 
					 | 
				
			||||||
	case nil:
 | 
					 | 
				
			||||||
		*d = Duration(0)
 | 
					 | 
				
			||||||
	default:
 | 
					 | 
				
			||||||
		return fmt.Errorf("cannot sql.Scan() strfmt.Duration from: %#v", v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Value converts Duration to a primitive value ready to be written to a database.
 | 
					 | 
				
			||||||
func (d Duration) Value() (driver.Value, error) {
 | 
					 | 
				
			||||||
	return driver.Value(int64(d)), nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// String converts this duration to a string
 | 
					 | 
				
			||||||
func (d Duration) String() string {
 | 
					 | 
				
			||||||
	return time.Duration(d).String()
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MarshalJSON returns the Duration as JSON
 | 
					 | 
				
			||||||
func (d Duration) MarshalJSON() ([]byte, error) {
 | 
					 | 
				
			||||||
	return json.Marshal(time.Duration(d).String())
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// UnmarshalJSON sets the Duration from JSON
 | 
					 | 
				
			||||||
func (d *Duration) UnmarshalJSON(data []byte) error {
 | 
					 | 
				
			||||||
	if string(data) == jsonNull {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	var dstr string
 | 
					 | 
				
			||||||
	if err := json.Unmarshal(data, &dstr); err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	tt, err := ParseDuration(dstr)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*d = Duration(tt)
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (d Duration) MarshalBSON() ([]byte, error) {
 | 
					 | 
				
			||||||
	return bson.Marshal(bson.M{"data": d.String()})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (d *Duration) UnmarshalBSON(data []byte) error {
 | 
					 | 
				
			||||||
	var m bson.M
 | 
					 | 
				
			||||||
	if err := bson.Unmarshal(data, &m); err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if data, ok := m["data"].(string); ok {
 | 
					 | 
				
			||||||
		rd, err := ParseDuration(data)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		*d = Duration(rd)
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return errors.New("couldn't unmarshal bson bytes value as Date")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DeepCopyInto copies the receiver and writes its value into out.
 | 
					 | 
				
			||||||
func (d *Duration) DeepCopyInto(out *Duration) {
 | 
					 | 
				
			||||||
	*out = *d
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DeepCopy copies the receiver into a new Duration.
 | 
					 | 
				
			||||||
func (d *Duration) DeepCopy() *Duration {
 | 
					 | 
				
			||||||
	if d == nil {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	out := new(Duration)
 | 
					 | 
				
			||||||
	d.DeepCopyInto(out)
 | 
					 | 
				
			||||||
	return out
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										314
									
								
								vendor/github.com/go-openapi/strfmt/format.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										314
									
								
								vendor/github.com/go-openapi/strfmt/format.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,314 +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 strfmt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"encoding"
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"reflect"
 | 
					 | 
				
			||||||
	"strings"
 | 
					 | 
				
			||||||
	"sync"
 | 
					 | 
				
			||||||
	"time"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"github.com/go-openapi/errors"
 | 
					 | 
				
			||||||
	"github.com/mitchellh/mapstructure"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Default is the default formats registry
 | 
					 | 
				
			||||||
var Default = NewSeededFormats(nil, nil)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Validator represents a validator for a string format.
 | 
					 | 
				
			||||||
type Validator func(string) bool
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Format represents a string format.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// All implementations of Format provide a string representation and text
 | 
					 | 
				
			||||||
// marshaling/unmarshaling interface to be used by encoders (e.g. encoding/json).
 | 
					 | 
				
			||||||
type Format interface {
 | 
					 | 
				
			||||||
	String() string
 | 
					 | 
				
			||||||
	encoding.TextMarshaler
 | 
					 | 
				
			||||||
	encoding.TextUnmarshaler
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Registry is a registry of string formats, with a validation method.
 | 
					 | 
				
			||||||
type Registry interface {
 | 
					 | 
				
			||||||
	Add(string, Format, Validator) bool
 | 
					 | 
				
			||||||
	DelByName(string) bool
 | 
					 | 
				
			||||||
	GetType(string) (reflect.Type, bool)
 | 
					 | 
				
			||||||
	ContainsName(string) bool
 | 
					 | 
				
			||||||
	Validates(string, string) bool
 | 
					 | 
				
			||||||
	Parse(string, string) (interface{}, error)
 | 
					 | 
				
			||||||
	MapStructureHookFunc() mapstructure.DecodeHookFunc
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type knownFormat struct {
 | 
					 | 
				
			||||||
	Name      string
 | 
					 | 
				
			||||||
	OrigName  string
 | 
					 | 
				
			||||||
	Type      reflect.Type
 | 
					 | 
				
			||||||
	Validator Validator
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NameNormalizer is a function that normalizes a format name.
 | 
					 | 
				
			||||||
type NameNormalizer func(string) string
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DefaultNameNormalizer removes all dashes
 | 
					 | 
				
			||||||
func DefaultNameNormalizer(name string) string {
 | 
					 | 
				
			||||||
	return strings.Replace(name, "-", "", -1)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
type defaultFormats struct {
 | 
					 | 
				
			||||||
	sync.Mutex
 | 
					 | 
				
			||||||
	data          []knownFormat
 | 
					 | 
				
			||||||
	normalizeName NameNormalizer
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NewFormats creates a new formats registry seeded with the values from the default
 | 
					 | 
				
			||||||
func NewFormats() Registry {
 | 
					 | 
				
			||||||
	return NewSeededFormats(Default.(*defaultFormats).data, nil)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NewSeededFormats creates a new formats registry
 | 
					 | 
				
			||||||
func NewSeededFormats(seeds []knownFormat, normalizer NameNormalizer) Registry {
 | 
					 | 
				
			||||||
	if normalizer == nil {
 | 
					 | 
				
			||||||
		normalizer = DefaultNameNormalizer
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	// copy here, don't modify original
 | 
					 | 
				
			||||||
	d := append([]knownFormat(nil), seeds...)
 | 
					 | 
				
			||||||
	return &defaultFormats{
 | 
					 | 
				
			||||||
		data:          d,
 | 
					 | 
				
			||||||
		normalizeName: normalizer,
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MapStructureHookFunc is a decode hook function for mapstructure
 | 
					 | 
				
			||||||
func (f *defaultFormats) MapStructureHookFunc() mapstructure.DecodeHookFunc {
 | 
					 | 
				
			||||||
	return func(from reflect.Type, to reflect.Type, data interface{}) (interface{}, error) {
 | 
					 | 
				
			||||||
		if from.Kind() != reflect.String {
 | 
					 | 
				
			||||||
			return data, nil
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		for _, v := range f.data {
 | 
					 | 
				
			||||||
			tpe, _ := f.GetType(v.Name)
 | 
					 | 
				
			||||||
			if to == tpe {
 | 
					 | 
				
			||||||
				switch v.Name {
 | 
					 | 
				
			||||||
				case "date":
 | 
					 | 
				
			||||||
					d, err := time.Parse(RFC3339FullDate, data.(string))
 | 
					 | 
				
			||||||
					if err != nil {
 | 
					 | 
				
			||||||
						return nil, err
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
					return Date(d), nil
 | 
					 | 
				
			||||||
				case "datetime":
 | 
					 | 
				
			||||||
					input := data.(string)
 | 
					 | 
				
			||||||
					if len(input) == 0 {
 | 
					 | 
				
			||||||
						return nil, fmt.Errorf("empty string is an invalid datetime format")
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
					return ParseDateTime(input)
 | 
					 | 
				
			||||||
				case "duration":
 | 
					 | 
				
			||||||
					dur, err := ParseDuration(data.(string))
 | 
					 | 
				
			||||||
					if err != nil {
 | 
					 | 
				
			||||||
						return nil, err
 | 
					 | 
				
			||||||
					}
 | 
					 | 
				
			||||||
					return Duration(dur), nil
 | 
					 | 
				
			||||||
				case "uri":
 | 
					 | 
				
			||||||
					return URI(data.(string)), nil
 | 
					 | 
				
			||||||
				case "email":
 | 
					 | 
				
			||||||
					return Email(data.(string)), nil
 | 
					 | 
				
			||||||
				case "uuid":
 | 
					 | 
				
			||||||
					return UUID(data.(string)), nil
 | 
					 | 
				
			||||||
				case "uuid3":
 | 
					 | 
				
			||||||
					return UUID3(data.(string)), nil
 | 
					 | 
				
			||||||
				case "uuid4":
 | 
					 | 
				
			||||||
					return UUID4(data.(string)), nil
 | 
					 | 
				
			||||||
				case "uuid5":
 | 
					 | 
				
			||||||
					return UUID5(data.(string)), nil
 | 
					 | 
				
			||||||
				case "hostname":
 | 
					 | 
				
			||||||
					return Hostname(data.(string)), nil
 | 
					 | 
				
			||||||
				case "ipv4":
 | 
					 | 
				
			||||||
					return IPv4(data.(string)), nil
 | 
					 | 
				
			||||||
				case "ipv6":
 | 
					 | 
				
			||||||
					return IPv6(data.(string)), nil
 | 
					 | 
				
			||||||
				case "cidr":
 | 
					 | 
				
			||||||
					return CIDR(data.(string)), nil
 | 
					 | 
				
			||||||
				case "mac":
 | 
					 | 
				
			||||||
					return MAC(data.(string)), nil
 | 
					 | 
				
			||||||
				case "isbn":
 | 
					 | 
				
			||||||
					return ISBN(data.(string)), nil
 | 
					 | 
				
			||||||
				case "isbn10":
 | 
					 | 
				
			||||||
					return ISBN10(data.(string)), nil
 | 
					 | 
				
			||||||
				case "isbn13":
 | 
					 | 
				
			||||||
					return ISBN13(data.(string)), nil
 | 
					 | 
				
			||||||
				case "creditcard":
 | 
					 | 
				
			||||||
					return CreditCard(data.(string)), nil
 | 
					 | 
				
			||||||
				case "ssn":
 | 
					 | 
				
			||||||
					return SSN(data.(string)), nil
 | 
					 | 
				
			||||||
				case "hexcolor":
 | 
					 | 
				
			||||||
					return HexColor(data.(string)), nil
 | 
					 | 
				
			||||||
				case "rgbcolor":
 | 
					 | 
				
			||||||
					return RGBColor(data.(string)), nil
 | 
					 | 
				
			||||||
				case "byte":
 | 
					 | 
				
			||||||
					return Base64(data.(string)), nil
 | 
					 | 
				
			||||||
				case "password":
 | 
					 | 
				
			||||||
					return Password(data.(string)), nil
 | 
					 | 
				
			||||||
				default:
 | 
					 | 
				
			||||||
					return nil, errors.InvalidTypeName(v.Name)
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return data, nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Add adds a new format, return true if this was a new item instead of a replacement
 | 
					 | 
				
			||||||
func (f *defaultFormats) Add(name string, strfmt Format, validator Validator) bool {
 | 
					 | 
				
			||||||
	f.Lock()
 | 
					 | 
				
			||||||
	defer f.Unlock()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	nme := f.normalizeName(name)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	tpe := reflect.TypeOf(strfmt)
 | 
					 | 
				
			||||||
	if tpe.Kind() == reflect.Ptr {
 | 
					 | 
				
			||||||
		tpe = tpe.Elem()
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for i := range f.data {
 | 
					 | 
				
			||||||
		v := &f.data[i]
 | 
					 | 
				
			||||||
		if v.Name == nme {
 | 
					 | 
				
			||||||
			v.Type = tpe
 | 
					 | 
				
			||||||
			v.Validator = validator
 | 
					 | 
				
			||||||
			return false
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	// turns out it's new after all
 | 
					 | 
				
			||||||
	f.data = append(f.data, knownFormat{Name: nme, OrigName: name, Type: tpe, Validator: validator})
 | 
					 | 
				
			||||||
	return true
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// GetType gets the type for the specified name
 | 
					 | 
				
			||||||
func (f *defaultFormats) GetType(name string) (reflect.Type, bool) {
 | 
					 | 
				
			||||||
	f.Lock()
 | 
					 | 
				
			||||||
	defer f.Unlock()
 | 
					 | 
				
			||||||
	nme := f.normalizeName(name)
 | 
					 | 
				
			||||||
	for _, v := range f.data {
 | 
					 | 
				
			||||||
		if v.Name == nme {
 | 
					 | 
				
			||||||
			return v.Type, true
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil, false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DelByName removes the format by the specified name, returns true when an item was actually removed
 | 
					 | 
				
			||||||
func (f *defaultFormats) DelByName(name string) bool {
 | 
					 | 
				
			||||||
	f.Lock()
 | 
					 | 
				
			||||||
	defer f.Unlock()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	nme := f.normalizeName(name)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for i, v := range f.data {
 | 
					 | 
				
			||||||
		if v.Name == nme {
 | 
					 | 
				
			||||||
			f.data[i] = knownFormat{} // release
 | 
					 | 
				
			||||||
			f.data = append(f.data[:i], f.data[i+1:]...)
 | 
					 | 
				
			||||||
			return true
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DelByFormat removes the specified format, returns true when an item was actually removed
 | 
					 | 
				
			||||||
func (f *defaultFormats) DelByFormat(strfmt Format) bool {
 | 
					 | 
				
			||||||
	f.Lock()
 | 
					 | 
				
			||||||
	defer f.Unlock()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	tpe := reflect.TypeOf(strfmt)
 | 
					 | 
				
			||||||
	if tpe.Kind() == reflect.Ptr {
 | 
					 | 
				
			||||||
		tpe = tpe.Elem()
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for i, v := range f.data {
 | 
					 | 
				
			||||||
		if v.Type == tpe {
 | 
					 | 
				
			||||||
			f.data[i] = knownFormat{} // release
 | 
					 | 
				
			||||||
			f.data = append(f.data[:i], f.data[i+1:]...)
 | 
					 | 
				
			||||||
			return true
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ContainsName returns true if this registry contains the specified name
 | 
					 | 
				
			||||||
func (f *defaultFormats) ContainsName(name string) bool {
 | 
					 | 
				
			||||||
	f.Lock()
 | 
					 | 
				
			||||||
	defer f.Unlock()
 | 
					 | 
				
			||||||
	nme := f.normalizeName(name)
 | 
					 | 
				
			||||||
	for _, v := range f.data {
 | 
					 | 
				
			||||||
		if v.Name == nme {
 | 
					 | 
				
			||||||
			return true
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ContainsFormat returns true if this registry contains the specified format
 | 
					 | 
				
			||||||
func (f *defaultFormats) ContainsFormat(strfmt Format) bool {
 | 
					 | 
				
			||||||
	f.Lock()
 | 
					 | 
				
			||||||
	defer f.Unlock()
 | 
					 | 
				
			||||||
	tpe := reflect.TypeOf(strfmt)
 | 
					 | 
				
			||||||
	if tpe.Kind() == reflect.Ptr {
 | 
					 | 
				
			||||||
		tpe = tpe.Elem()
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for _, v := range f.data {
 | 
					 | 
				
			||||||
		if v.Type == tpe {
 | 
					 | 
				
			||||||
			return true
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Validates passed data against format.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// Note that the format name is automatically normalized, e.g. one may
 | 
					 | 
				
			||||||
// use "date-time" to use the "datetime" format validator.
 | 
					 | 
				
			||||||
func (f *defaultFormats) Validates(name, data string) bool {
 | 
					 | 
				
			||||||
	f.Lock()
 | 
					 | 
				
			||||||
	defer f.Unlock()
 | 
					 | 
				
			||||||
	nme := f.normalizeName(name)
 | 
					 | 
				
			||||||
	for _, v := range f.data {
 | 
					 | 
				
			||||||
		if v.Name == nme {
 | 
					 | 
				
			||||||
			return v.Validator(data)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return false
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Parse a string into the appropriate format representation type.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// E.g. parsing a string a "date" will return a Date type.
 | 
					 | 
				
			||||||
func (f *defaultFormats) Parse(name, data string) (interface{}, error) {
 | 
					 | 
				
			||||||
	f.Lock()
 | 
					 | 
				
			||||||
	defer f.Unlock()
 | 
					 | 
				
			||||||
	nme := f.normalizeName(name)
 | 
					 | 
				
			||||||
	for _, v := range f.data {
 | 
					 | 
				
			||||||
		if v.Name == nme {
 | 
					 | 
				
			||||||
			nw := reflect.New(v.Type).Interface()
 | 
					 | 
				
			||||||
			if dec, ok := nw.(encoding.TextUnmarshaler); ok {
 | 
					 | 
				
			||||||
				if err := dec.UnmarshalText([]byte(data)); err != nil {
 | 
					 | 
				
			||||||
					return nil, err
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
				return nw, nil
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			return nil, errors.InvalidTypeName(name)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return nil, errors.InvalidTypeName(name)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										13
									
								
								vendor/github.com/go-openapi/strfmt/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								vendor/github.com/go-openapi/strfmt/go.mod
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,13 +0,0 @@
 | 
				
			|||||||
module github.com/go-openapi/strfmt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require (
 | 
					 | 
				
			||||||
	github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a
 | 
					 | 
				
			||||||
	github.com/go-openapi/errors v0.19.2
 | 
					 | 
				
			||||||
	github.com/go-stack/stack v1.8.0 // indirect
 | 
					 | 
				
			||||||
	github.com/google/go-cmp v0.3.0 // indirect
 | 
					 | 
				
			||||||
	github.com/google/uuid v1.1.1
 | 
					 | 
				
			||||||
	github.com/mitchellh/mapstructure v1.1.2
 | 
					 | 
				
			||||||
	github.com/stretchr/testify v1.3.0
 | 
					 | 
				
			||||||
	github.com/tidwall/pretty v1.0.0 // indirect
 | 
					 | 
				
			||||||
	go.mongodb.org/mongo-driver v1.0.3
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
							
								
								
									
										25
									
								
								vendor/github.com/go-openapi/strfmt/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								vendor/github.com/go-openapi/strfmt/go.sum
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,25 +0,0 @@
 | 
				
			|||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA=
 | 
					 | 
				
			||||||
github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY=
 | 
					 | 
				
			||||||
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/errors v0.19.2 h1:a2kIyV3w+OS3S97zxUndRVD46+FhGOUBDFY7nmu4CsY=
 | 
					 | 
				
			||||||
github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94=
 | 
					 | 
				
			||||||
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
 | 
					 | 
				
			||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY=
 | 
					 | 
				
			||||||
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY=
 | 
					 | 
				
			||||||
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 | 
					 | 
				
			||||||
github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
 | 
					 | 
				
			||||||
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 | 
					 | 
				
			||||||
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/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
 | 
					 | 
				
			||||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
 | 
					 | 
				
			||||||
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
 | 
					 | 
				
			||||||
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
 | 
					 | 
				
			||||||
go.mongodb.org/mongo-driver v1.0.3 h1:GKoji1ld3tw2aC+GX1wbr/J2fX13yNacEYoJ8Nhr0yU=
 | 
					 | 
				
			||||||
go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM=
 | 
					 | 
				
			||||||
							
								
								
									
										203
									
								
								vendor/github.com/go-openapi/strfmt/time.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										203
									
								
								vendor/github.com/go-openapi/strfmt/time.go
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,203 +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 strfmt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import (
 | 
					 | 
				
			||||||
	"database/sql/driver"
 | 
					 | 
				
			||||||
	"encoding/json"
 | 
					 | 
				
			||||||
	"errors"
 | 
					 | 
				
			||||||
	"fmt"
 | 
					 | 
				
			||||||
	"regexp"
 | 
					 | 
				
			||||||
	"strings"
 | 
					 | 
				
			||||||
	"time"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	"go.mongodb.org/mongo-driver/bson"
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func init() {
 | 
					 | 
				
			||||||
	dt := DateTime{}
 | 
					 | 
				
			||||||
	Default.Add("datetime", &dt, IsDateTime)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// IsDateTime returns true when the string is a valid date-time
 | 
					 | 
				
			||||||
func IsDateTime(str string) bool {
 | 
					 | 
				
			||||||
	if len(str) < 4 {
 | 
					 | 
				
			||||||
		return false
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	s := strings.Split(strings.ToLower(str), "t")
 | 
					 | 
				
			||||||
	if len(s) < 2 || !IsDate(s[0]) {
 | 
					 | 
				
			||||||
		return false
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	matches := rxDateTime.FindAllStringSubmatch(s[1], -1)
 | 
					 | 
				
			||||||
	if len(matches) == 0 || len(matches[0]) == 0 {
 | 
					 | 
				
			||||||
		return false
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	m := matches[0]
 | 
					 | 
				
			||||||
	res := m[1] <= "23" && m[2] <= "59" && m[3] <= "59"
 | 
					 | 
				
			||||||
	return res
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
const (
 | 
					 | 
				
			||||||
	// RFC3339Millis represents a ISO8601 format to millis instead of to nanos
 | 
					 | 
				
			||||||
	RFC3339Millis = "2006-01-02T15:04:05.000Z07:00"
 | 
					 | 
				
			||||||
	// RFC3339Micro represents a ISO8601 format to micro instead of to nano
 | 
					 | 
				
			||||||
	RFC3339Micro = "2006-01-02T15:04:05.000000Z07:00"
 | 
					 | 
				
			||||||
	// ISO8601LocalTime represents a ISO8601 format to ISO8601 in local time (no timezone)
 | 
					 | 
				
			||||||
	ISO8601LocalTime = "2006-01-02T15:04:05"
 | 
					 | 
				
			||||||
	// DateTimePattern pattern to match for the date-time format from http://tools.ietf.org/html/rfc3339#section-5.6
 | 
					 | 
				
			||||||
	DateTimePattern = `^([0-9]{2}):([0-9]{2}):([0-9]{2})(.[0-9]+)?(z|([+-][0-9]{2}:[0-9]{2}))$`
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
var (
 | 
					 | 
				
			||||||
	dateTimeFormats = []string{RFC3339Micro, RFC3339Millis, time.RFC3339, time.RFC3339Nano, ISO8601LocalTime}
 | 
					 | 
				
			||||||
	rxDateTime      = regexp.MustCompile(DateTimePattern)
 | 
					 | 
				
			||||||
	// MarshalFormat sets the time resolution format used for marshaling time (set to milliseconds)
 | 
					 | 
				
			||||||
	MarshalFormat = RFC3339Millis
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ParseDateTime parses a string that represents an ISO8601 time or a unix epoch
 | 
					 | 
				
			||||||
func ParseDateTime(data string) (DateTime, error) {
 | 
					 | 
				
			||||||
	if data == "" {
 | 
					 | 
				
			||||||
		return NewDateTime(), nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	var lastError error
 | 
					 | 
				
			||||||
	for _, layout := range dateTimeFormats {
 | 
					 | 
				
			||||||
		dd, err := time.Parse(layout, data)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			lastError = err
 | 
					 | 
				
			||||||
			continue
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		return DateTime(dd), nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	return DateTime{}, lastError
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DateTime is a time but it serializes to ISO8601 format with millis
 | 
					 | 
				
			||||||
// It knows how to read 3 different variations of a RFC3339 date time.
 | 
					 | 
				
			||||||
// Most APIs we encounter want either millisecond or second precision times.
 | 
					 | 
				
			||||||
// This just tries to make it worry-free.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// swagger:strfmt date-time
 | 
					 | 
				
			||||||
type DateTime time.Time
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// NewDateTime is a representation of zero value for DateTime type
 | 
					 | 
				
			||||||
func NewDateTime() DateTime {
 | 
					 | 
				
			||||||
	return DateTime(time.Unix(0, 0).UTC())
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// String converts this time to a string
 | 
					 | 
				
			||||||
func (t DateTime) String() string {
 | 
					 | 
				
			||||||
	return time.Time(t).Format(MarshalFormat)
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MarshalText implements the text marshaller interface
 | 
					 | 
				
			||||||
func (t DateTime) MarshalText() ([]byte, error) {
 | 
					 | 
				
			||||||
	return []byte(t.String()), nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// UnmarshalText implements the text unmarshaller interface
 | 
					 | 
				
			||||||
func (t *DateTime) UnmarshalText(text []byte) error {
 | 
					 | 
				
			||||||
	tt, err := ParseDateTime(string(text))
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*t = tt
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Scan scans a DateTime value from database driver type.
 | 
					 | 
				
			||||||
func (t *DateTime) Scan(raw interface{}) error {
 | 
					 | 
				
			||||||
	// TODO: case int64: and case float64: ?
 | 
					 | 
				
			||||||
	switch v := raw.(type) {
 | 
					 | 
				
			||||||
	case []byte:
 | 
					 | 
				
			||||||
		return t.UnmarshalText(v)
 | 
					 | 
				
			||||||
	case string:
 | 
					 | 
				
			||||||
		return t.UnmarshalText([]byte(v))
 | 
					 | 
				
			||||||
	case time.Time:
 | 
					 | 
				
			||||||
		*t = DateTime(v)
 | 
					 | 
				
			||||||
	case nil:
 | 
					 | 
				
			||||||
		*t = DateTime{}
 | 
					 | 
				
			||||||
	default:
 | 
					 | 
				
			||||||
		return fmt.Errorf("cannot sql.Scan() strfmt.DateTime from: %#v", v)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Value converts DateTime to a primitive value ready to written to a database.
 | 
					 | 
				
			||||||
func (t DateTime) Value() (driver.Value, error) {
 | 
					 | 
				
			||||||
	return driver.Value(t.String()), nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// MarshalJSON returns the DateTime as JSON
 | 
					 | 
				
			||||||
func (t DateTime) MarshalJSON() ([]byte, error) {
 | 
					 | 
				
			||||||
	return json.Marshal(time.Time(t).Format(MarshalFormat))
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// UnmarshalJSON sets the DateTime from JSON
 | 
					 | 
				
			||||||
func (t *DateTime) UnmarshalJSON(data []byte) error {
 | 
					 | 
				
			||||||
	if string(data) == jsonNull {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	var tstr string
 | 
					 | 
				
			||||||
	if err := json.Unmarshal(data, &tstr); err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	tt, err := ParseDateTime(tstr)
 | 
					 | 
				
			||||||
	if err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	*t = tt
 | 
					 | 
				
			||||||
	return nil
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (t DateTime) MarshalBSON() ([]byte, error) {
 | 
					 | 
				
			||||||
	return bson.Marshal(bson.M{"data": t.String()})
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
func (t *DateTime) UnmarshalBSON(data []byte) error {
 | 
					 | 
				
			||||||
	var m bson.M
 | 
					 | 
				
			||||||
	if err := bson.Unmarshal(data, &m); err != nil {
 | 
					 | 
				
			||||||
		return err
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if data, ok := m["data"].(string); ok {
 | 
					 | 
				
			||||||
		rd, err := ParseDateTime(data)
 | 
					 | 
				
			||||||
		if err != nil {
 | 
					 | 
				
			||||||
			return err
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		*t = rd
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	return errors.New("couldn't unmarshal bson bytes value as Date")
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DeepCopyInto copies the receiver and writes its value into out.
 | 
					 | 
				
			||||||
func (t *DateTime) DeepCopyInto(out *DateTime) {
 | 
					 | 
				
			||||||
	*out = *t
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// DeepCopy copies the receiver into a new DateTime.
 | 
					 | 
				
			||||||
func (t *DateTime) DeepCopy() *DateTime {
 | 
					 | 
				
			||||||
	if t == nil {
 | 
					 | 
				
			||||||
		return nil
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	out := new(DateTime)
 | 
					 | 
				
			||||||
	t.DeepCopyInto(out)
 | 
					 | 
				
			||||||
	return out
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										26
									
								
								vendor/github.com/go-openapi/validate/.editorconfig
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								vendor/github.com/go-openapi/validate/.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
 | 
					 | 
				
			||||||
							
								
								
									
										5
									
								
								vendor/github.com/go-openapi/validate/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								vendor/github.com/go-openapi/validate/.gitignore
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,5 +0,0 @@
 | 
				
			|||||||
secrets.yml
 | 
					 | 
				
			||||||
coverage.out
 | 
					 | 
				
			||||||
*.cov
 | 
					 | 
				
			||||||
*.out
 | 
					 | 
				
			||||||
playground
 | 
					 | 
				
			||||||
							
								
								
									
										28
									
								
								vendor/github.com/go-openapi/validate/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/go-openapi/validate/.golangci.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,28 +0,0 @@
 | 
				
			|||||||
linters-settings:
 | 
					 | 
				
			||||||
  govet:
 | 
					 | 
				
			||||||
    check-shadowing: true
 | 
					 | 
				
			||||||
  golint:
 | 
					 | 
				
			||||||
    min-confidence: 0
 | 
					 | 
				
			||||||
  gocyclo:
 | 
					 | 
				
			||||||
    min-complexity: 50
 | 
					 | 
				
			||||||
  maligned:
 | 
					 | 
				
			||||||
    suggest-new: true
 | 
					 | 
				
			||||||
  dupl:
 | 
					 | 
				
			||||||
    threshold: 100
 | 
					 | 
				
			||||||
  goconst:
 | 
					 | 
				
			||||||
    min-len: 2
 | 
					 | 
				
			||||||
    min-occurrences: 3
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
linters:
 | 
					 | 
				
			||||||
  enable-all: true
 | 
					 | 
				
			||||||
  disable:
 | 
					 | 
				
			||||||
    - maligned
 | 
					 | 
				
			||||||
    - lll
 | 
					 | 
				
			||||||
    - godox
 | 
					 | 
				
			||||||
    - gocognit
 | 
					 | 
				
			||||||
    - whitespace
 | 
					 | 
				
			||||||
    - wsl
 | 
					 | 
				
			||||||
    - funlen
 | 
					 | 
				
			||||||
    - gochecknoglobals
 | 
					 | 
				
			||||||
    - gochecknoinits
 | 
					 | 
				
			||||||
    - scopelint
 | 
					 | 
				
			||||||
							
								
								
									
										19
									
								
								vendor/github.com/go-openapi/validate/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								vendor/github.com/go-openapi/validate/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							@@ -1,19 +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: EmObnQuM9Mw8J9vpFaKKHqSMN4Wsr/A9+v7ewAD5cEhA0T1P4m7MbJMiJOhxUhj/X+BFh2DamW+P2lT8mybj5wg8wnkQ2BteKA8Tawi6f9PRw2NRheO8tAi8o/npLnlmet0kc93mn+oLuqHw36w4+j5mkOl2FghkfGiUVhwrhkCP7KXQN+3TU87e+/HzQumlJ3nsE+6terVxkH3PmaUTsS5ONaODZfuxFpfb7RsoEl3skHf6d+tr+1nViLxxly7558Nc33C+W1mr0qiEvMLZ+kJ/CpGWBJ6CUJM3jm6hNe2eMuIPwEK2hxZob8c7n22VPap4K6a0bBRoydoDXaba+2sD7Ym6ivDO/DVyL44VeBBLyIiIBylDGQdZH+6SoWm90Qe/i7tnY/T5Ao5igT8f3cfQY1c3EsTfqmlDfrhmACBmwSlgkdVBLTprHL63JMY24LWmh4jhxsmMRZhCL4dze8su1w6pLN/pD1pGHtKYCEVbdTmaM3PblNRFf12XB7qosmQsgUndH4Vq3bTbU0s1pKjeDhRyLvFzvR0TBbo0pDLEoF1A/i5GVFWa7yLZNUDudQERRh7qv/xBl2excIaQ1sV4DSVm7bAE9l6Kp+yeHQJW2uN6Y3X8wu9gB9nv9l5HBze7wh8KE6PyWAOLYYqZg9/sAtsv/2GcQqXcKFF1zcA=
 | 
					 | 
				
			||||||
script:
 | 
					 | 
				
			||||||
- gotestsum -f short-verbose -- -race ./...
 | 
					 | 
				
			||||||
- gotestsum -f short-verbose -- -timeout=20m -coverprofile=coverage.txt -covermode=atomic -args -enable-long ./...
 | 
					 | 
				
			||||||
- gotestsum -f short-verbose -- -timeout=30m -args -enable-go-swagger ./...
 | 
					 | 
				
			||||||
- go get -u github.com/go-openapi/runtime@master
 | 
					 | 
				
			||||||
- gotestsum -f short-verbose -- -timeout=30m github.com/go-openapi/runtime/...
 | 
					 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user