mirror of
https://github.com/kubernetes-sigs/prometheus-adapter.git
synced 2026-04-06 17:57:51 +00:00
Travis seems to be having issues pulling deps, so we'll have to check in the vendor directory and prevent the makefile from trying to regenerate it normally.
143 lines
4.1 KiB
Go
143 lines
4.1 KiB
Go
package restful
|
|
|
|
// Copyright 2013 Ernest Micklei. All rights reserved.
|
|
// Use of this source code is governed by a license
|
|
// that can be found in the LICENSE file.
|
|
|
|
const (
|
|
// PathParameterKind = indicator of Request parameter type "path"
|
|
PathParameterKind = iota
|
|
|
|
// QueryParameterKind = indicator of Request parameter type "query"
|
|
QueryParameterKind
|
|
|
|
// BodyParameterKind = indicator of Request parameter type "body"
|
|
BodyParameterKind
|
|
|
|
// HeaderParameterKind = indicator of Request parameter type "header"
|
|
HeaderParameterKind
|
|
|
|
// FormParameterKind = indicator of Request parameter type "form"
|
|
FormParameterKind
|
|
|
|
// CollectionFormatCSV comma separated values `foo,bar`
|
|
CollectionFormatCSV = CollectionFormat("csv")
|
|
|
|
// CollectionFormatSSV space separated values `foo bar`
|
|
CollectionFormatSSV = CollectionFormat("ssv")
|
|
|
|
// CollectionFormatTSV tab separated values `foo\tbar`
|
|
CollectionFormatTSV = CollectionFormat("tsv")
|
|
|
|
// CollectionFormatPipes pipe separated values `foo|bar`
|
|
CollectionFormatPipes = CollectionFormat("pipes")
|
|
|
|
// CollectionFormatMulti corresponds to multiple parameter instances instead of multiple values for a single
|
|
// instance `foo=bar&foo=baz`. This is valid only for QueryParameters and FormParameters
|
|
CollectionFormatMulti = CollectionFormat("multi")
|
|
)
|
|
|
|
type CollectionFormat string
|
|
|
|
func (cf CollectionFormat) String() string {
|
|
return string(cf)
|
|
}
|
|
|
|
// Parameter is for documententing the parameter used in a Http Request
|
|
// ParameterData kinds are Path,Query and Body
|
|
type Parameter struct {
|
|
data *ParameterData
|
|
}
|
|
|
|
// ParameterData represents the state of a Parameter.
|
|
// It is made public to make it accessible to e.g. the Swagger package.
|
|
type ParameterData struct {
|
|
Name, Description, DataType, DataFormat string
|
|
Kind int
|
|
Required bool
|
|
AllowableValues map[string]string
|
|
AllowMultiple bool
|
|
DefaultValue string
|
|
CollectionFormat string
|
|
}
|
|
|
|
// Data returns the state of the Parameter
|
|
func (p *Parameter) Data() ParameterData {
|
|
return *p.data
|
|
}
|
|
|
|
// Kind returns the parameter type indicator (see const for valid values)
|
|
func (p *Parameter) Kind() int {
|
|
return p.data.Kind
|
|
}
|
|
|
|
func (p *Parameter) bePath() *Parameter {
|
|
p.data.Kind = PathParameterKind
|
|
return p
|
|
}
|
|
func (p *Parameter) beQuery() *Parameter {
|
|
p.data.Kind = QueryParameterKind
|
|
return p
|
|
}
|
|
func (p *Parameter) beBody() *Parameter {
|
|
p.data.Kind = BodyParameterKind
|
|
return p
|
|
}
|
|
|
|
func (p *Parameter) beHeader() *Parameter {
|
|
p.data.Kind = HeaderParameterKind
|
|
return p
|
|
}
|
|
|
|
func (p *Parameter) beForm() *Parameter {
|
|
p.data.Kind = FormParameterKind
|
|
return p
|
|
}
|
|
|
|
// Required sets the required field and returns the receiver
|
|
func (p *Parameter) Required(required bool) *Parameter {
|
|
p.data.Required = required
|
|
return p
|
|
}
|
|
|
|
// AllowMultiple sets the allowMultiple field and returns the receiver
|
|
func (p *Parameter) AllowMultiple(multiple bool) *Parameter {
|
|
p.data.AllowMultiple = multiple
|
|
return p
|
|
}
|
|
|
|
// AllowableValues sets the allowableValues field and returns the receiver
|
|
func (p *Parameter) AllowableValues(values map[string]string) *Parameter {
|
|
p.data.AllowableValues = values
|
|
return p
|
|
}
|
|
|
|
// DataType sets the dataType field and returns the receiver
|
|
func (p *Parameter) DataType(typeName string) *Parameter {
|
|
p.data.DataType = typeName
|
|
return p
|
|
}
|
|
|
|
// DataFormat sets the dataFormat field for Swagger UI
|
|
func (p *Parameter) DataFormat(formatName string) *Parameter {
|
|
p.data.DataFormat = formatName
|
|
return p
|
|
}
|
|
|
|
// DefaultValue sets the default value field and returns the receiver
|
|
func (p *Parameter) DefaultValue(stringRepresentation string) *Parameter {
|
|
p.data.DefaultValue = stringRepresentation
|
|
return p
|
|
}
|
|
|
|
// Description sets the description value field and returns the receiver
|
|
func (p *Parameter) Description(doc string) *Parameter {
|
|
p.data.Description = doc
|
|
return p
|
|
}
|
|
|
|
// CollectionFormat sets the collection format for an array type
|
|
func (p *Parameter) CollectionFormat(format CollectionFormat) *Parameter {
|
|
p.data.CollectionFormat = format.String()
|
|
return p
|
|
}
|