Committing vendored dependencies and generated protos
Change-Id: I349c149b513d9de7d9f60bde2c954a939da2fc54
diff --git a/vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/genswagger/types.go b/vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/genswagger/types.go
new file mode 100644
index 0000000..77db96d
--- /dev/null
+++ b/vendor/github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger/genswagger/types.go
@@ -0,0 +1,254 @@
+package genswagger
+
+import (
+ "bytes"
+ "encoding/json"
+
+ "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway/descriptor"
+)
+
+type param struct {
+ *descriptor.File
+ reg *descriptor.Registry
+}
+
+type binding struct {
+ *descriptor.Binding
+}
+
+// http://swagger.io/specification/#infoObject
+type swaggerInfoObject struct {
+ Title string `json:"title"`
+ Description string `json:"description,omitempty"`
+ TermsOfService string `json:"termsOfService,omitempty"`
+ Version string `json:"version"`
+
+ Contact *swaggerContactObject `json:"contact,omitempty"`
+ License *swaggerLicenseObject `json:"license,omitempty"`
+
+ extensions []extension
+}
+
+// http://swagger.io/specification/#contactObject
+type swaggerContactObject struct {
+ Name string `json:"name,omitempty"`
+ URL string `json:"url,omitempty"`
+ Email string `json:"email,omitempty"`
+}
+
+// http://swagger.io/specification/#licenseObject
+type swaggerLicenseObject struct {
+ Name string `json:"name,omitempty"`
+ URL string `json:"url,omitempty"`
+}
+
+// http://swagger.io/specification/#externalDocumentationObject
+type swaggerExternalDocumentationObject struct {
+ Description string `json:"description,omitempty"`
+ URL string `json:"url,omitempty"`
+}
+
+type extension struct {
+ key string
+ value json.RawMessage
+}
+
+// http://swagger.io/specification/#swaggerObject
+type swaggerObject struct {
+ Swagger string `json:"swagger"`
+ Info swaggerInfoObject `json:"info"`
+ Host string `json:"host,omitempty"`
+ BasePath string `json:"basePath,omitempty"`
+ Schemes []string `json:"schemes"`
+ Consumes []string `json:"consumes"`
+ Produces []string `json:"produces"`
+ Paths swaggerPathsObject `json:"paths"`
+ Definitions swaggerDefinitionsObject `json:"definitions"`
+ StreamDefinitions swaggerDefinitionsObject `json:"x-stream-definitions,omitempty"`
+ SecurityDefinitions swaggerSecurityDefinitionsObject `json:"securityDefinitions,omitempty"`
+ Security []swaggerSecurityRequirementObject `json:"security,omitempty"`
+ ExternalDocs *swaggerExternalDocumentationObject `json:"externalDocs,omitempty"`
+
+ extensions []extension
+}
+
+// http://swagger.io/specification/#securityDefinitionsObject
+type swaggerSecurityDefinitionsObject map[string]swaggerSecuritySchemeObject
+
+// http://swagger.io/specification/#securitySchemeObject
+type swaggerSecuritySchemeObject struct {
+ Type string `json:"type"`
+ Description string `json:"description,omitempty"`
+ Name string `json:"name,omitempty"`
+ In string `json:"in,omitempty"`
+ Flow string `json:"flow,omitempty"`
+ AuthorizationURL string `json:"authorizationUrl,omitempty"`
+ TokenURL string `json:"tokenUrl,omitempty"`
+ Scopes swaggerScopesObject `json:"scopes,omitempty"`
+
+ extensions []extension
+}
+
+// http://swagger.io/specification/#scopesObject
+type swaggerScopesObject map[string]string
+
+// http://swagger.io/specification/#securityRequirementObject
+type swaggerSecurityRequirementObject map[string][]string
+
+// http://swagger.io/specification/#pathsObject
+type swaggerPathsObject map[string]swaggerPathItemObject
+
+// http://swagger.io/specification/#pathItemObject
+type swaggerPathItemObject struct {
+ Get *swaggerOperationObject `json:"get,omitempty"`
+ Delete *swaggerOperationObject `json:"delete,omitempty"`
+ Post *swaggerOperationObject `json:"post,omitempty"`
+ Put *swaggerOperationObject `json:"put,omitempty"`
+ Patch *swaggerOperationObject `json:"patch,omitempty"`
+}
+
+// http://swagger.io/specification/#operationObject
+type swaggerOperationObject struct {
+ Summary string `json:"summary,omitempty"`
+ Description string `json:"description,omitempty"`
+ OperationID string `json:"operationId"`
+ Responses swaggerResponsesObject `json:"responses"`
+ Parameters swaggerParametersObject `json:"parameters,omitempty"`
+ Tags []string `json:"tags,omitempty"`
+ Deprecated bool `json:"deprecated,omitempty"`
+
+ Security *[]swaggerSecurityRequirementObject `json:"security,omitempty"`
+ ExternalDocs *swaggerExternalDocumentationObject `json:"externalDocs,omitempty"`
+
+ extensions []extension
+}
+
+type swaggerParametersObject []swaggerParameterObject
+
+// http://swagger.io/specification/#parameterObject
+type swaggerParameterObject struct {
+ Name string `json:"name"`
+ Description string `json:"description,omitempty"`
+ In string `json:"in,omitempty"`
+ Required bool `json:"required"`
+ Type string `json:"type,omitempty"`
+ Format string `json:"format,omitempty"`
+ Items *swaggerItemsObject `json:"items,omitempty"`
+ Enum []string `json:"enum,omitempty"`
+ CollectionFormat string `json:"collectionFormat,omitempty"`
+ Default string `json:"default,omitempty"`
+ MinItems *int `json:"minItems,omitempty"`
+
+ // Or you can explicitly refer to another type. If this is defined all
+ // other fields should be empty
+ Schema *swaggerSchemaObject `json:"schema,omitempty"`
+}
+
+// core part of schema, which is common to itemsObject and schemaObject.
+// http://swagger.io/specification/#itemsObject
+type schemaCore struct {
+ Type string `json:"type,omitempty"`
+ Format string `json:"format,omitempty"`
+ Ref string `json:"$ref,omitempty"`
+ Example json.RawMessage `json:"example,omitempty"`
+
+ Items *swaggerItemsObject `json:"items,omitempty"`
+
+ // If the item is an enumeration include a list of all the *NAMES* of the
+ // enum values. I'm not sure how well this will work but assuming all enums
+ // start from 0 index it will be great. I don't think that is a good assumption.
+ Enum []string `json:"enum,omitempty"`
+ Default string `json:"default,omitempty"`
+}
+
+type swaggerItemsObject schemaCore
+
+// http://swagger.io/specification/#responsesObject
+type swaggerResponsesObject map[string]swaggerResponseObject
+
+// http://swagger.io/specification/#responseObject
+type swaggerResponseObject struct {
+ Description string `json:"description"`
+ Schema swaggerSchemaObject `json:"schema"`
+
+ extensions []extension
+}
+
+type keyVal struct {
+ Key string
+ Value interface{}
+}
+
+type swaggerSchemaObjectProperties []keyVal
+
+func (op swaggerSchemaObjectProperties) MarshalJSON() ([]byte, error) {
+ var buf bytes.Buffer
+ buf.WriteString("{")
+ for i, kv := range op {
+ if i != 0 {
+ buf.WriteString(",")
+ }
+ key, err := json.Marshal(kv.Key)
+ if err != nil {
+ return nil, err
+ }
+ buf.Write(key)
+ buf.WriteString(":")
+ val, err := json.Marshal(kv.Value)
+ if err != nil {
+ return nil, err
+ }
+ buf.Write(val)
+ }
+
+ buf.WriteString("}")
+ return buf.Bytes(), nil
+}
+
+// http://swagger.io/specification/#schemaObject
+type swaggerSchemaObject struct {
+ schemaCore
+ // Properties can be recursively defined
+ Properties *swaggerSchemaObjectProperties `json:"properties,omitempty"`
+ AdditionalProperties *swaggerSchemaObject `json:"additionalProperties,omitempty"`
+
+ Description string `json:"description,omitempty"`
+ Title string `json:"title,omitempty"`
+
+ ExternalDocs *swaggerExternalDocumentationObject `json:"externalDocs,omitempty"`
+
+ ReadOnly bool `json:"readOnly,omitempty"`
+ MultipleOf float64 `json:"multipleOf,omitempty"`
+ Maximum float64 `json:"maximum,omitempty"`
+ ExclusiveMaximum bool `json:"exclusiveMaximum,omitempty"`
+ Minimum float64 `json:"minimum,omitempty"`
+ ExclusiveMinimum bool `json:"exclusiveMinimum,omitempty"`
+ MaxLength uint64 `json:"maxLength,omitempty"`
+ MinLength uint64 `json:"minLength,omitempty"`
+ Pattern string `json:"pattern,omitempty"`
+ MaxItems uint64 `json:"maxItems,omitempty"`
+ MinItems uint64 `json:"minItems,omitempty"`
+ UniqueItems bool `json:"uniqueItems,omitempty"`
+ MaxProperties uint64 `json:"maxProperties,omitempty"`
+ MinProperties uint64 `json:"minProperties,omitempty"`
+ Required []string `json:"required,omitempty"`
+}
+
+// http://swagger.io/specification/#referenceObject
+type swaggerReferenceObject struct {
+ Ref string `json:"$ref"`
+}
+
+// http://swagger.io/specification/#definitionsObject
+type swaggerDefinitionsObject map[string]swaggerSchemaObject
+
+// Internal type mapping from FQMN to descriptor.Message. Used as a set by the
+// findServiceMessages function.
+type messageMap map[string]*descriptor.Message
+
+// Internal type mapping from FQEN to descriptor.Enum. Used as a set by the
+// findServiceMessages function.
+type enumMap map[string]*descriptor.Enum
+
+// Internal type to store used references.
+type refMap map[string]struct{}