Documentation ¶
Index ¶
- func BoolValidator() survey.Validator
- func DateTimeValidator() survey.Validator
- func DateValidator() survey.Validator
- func EmailValidator() survey.Validator
- func EnumValidator(enum []interface{}) survey.Validator
- func FloatValidator() survey.Validator
- func HostnameValidator() survey.Validator
- func IntegerValidator() survey.Validator
- func Ipv4Validator() survey.Validator
- func Ipv6Validator() survey.Validator
- func JSONPointerValidator() survey.Validator
- func MaxItemsValidator(maxItems *int, value []interface{}) survey.Validator
- func MaxLengthValidator(maxLength *int) survey.Validator
- func MaxPropertiesValidator(maxItems *int, value *orderedmap.OrderedMap, key string) survey.Validator
- func MaxValidator(max *float64, exclusive bool) survey.Validator
- func MinItemsValidator(minItems *int, value []interface{}) survey.Validator
- func MinLengthValidator(minLength *int) survey.Validator
- func MinPropertiesValidator(minItems *int, value *orderedmap.OrderedMap, key string) survey.Validator
- func MinValidator(min *float64, exclusive bool) survey.Validator
- func MultipleOfValidator(multipleOf *float64) survey.Validator
- func NoWhiteSpaceValidator() survey.Validator
- func NoopValidator() survey.Validator
- func OverrideAnswerValidator(ans interface{}, validator survey.Validator) survey.Validator
- func PatternValidator(pattern *string) survey.Validator
- func ReadSchemaTemplate(templateFile string, requirements *config.RequirementsConfig) ([]byte, error)
- func RequiredValidator(required bool) survey.Validator
- func TemplateSchemaFile(schemaFileName string, requirements *config.RequirementsConfig) error
- func TimeValidator() survey.Validator
- func URIReferenceValidator() survey.Validator
- func URIValidator() survey.Validator
- func UniqueItemsValidator(value []interface{}) survey.Validator
- type Definitions
- type Dependency
- type Items
- type JSONSchemaOptions
- type Properties
- type Type
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BoolValidator ¶
func BoolValidator() survey.Validator
BoolValidator validates that val is a bool
func DateTimeValidator ¶
func DateTimeValidator() survey.Validator
DateTimeValidator validates that a string is a RFC 3339 date-time format
func DateValidator ¶
func DateValidator() survey.Validator
DateValidator validates that a string is a RFC 3339 full-date format
func EmailValidator ¶
func EmailValidator() survey.Validator
EmailValidator validates that a string is a RFC 5322 email
func EnumValidator ¶
func EnumValidator(enum []interface{}) survey.Validator
EnumValidator validates that val appears in the enum
func FloatValidator ¶
func FloatValidator() survey.Validator
FloatValidator validates that val is a float
func HostnameValidator ¶
func HostnameValidator() survey.Validator
HostnameValidator validates that a string is a RFC 1034 hostname
func IntegerValidator ¶
func IntegerValidator() survey.Validator
IntegerValidator validates that val is an int
func Ipv4Validator ¶
func Ipv4Validator() survey.Validator
Ipv4Validator validates that a string is a RFC 2673 IPv4 address
func Ipv6Validator ¶
func Ipv6Validator() survey.Validator
Ipv6Validator validates that a string is a RFC 4291 IPv6 address
func JSONPointerValidator ¶
func JSONPointerValidator() survey.Validator
JSONPointerValidator validates that a string is a JSON Pointer
func MaxItemsValidator ¶
func MaxItemsValidator(maxItems *int, value []interface{}) survey.Validator
MaxItemsValidator validates that at most the maxItems number of items exist in a slice
func MaxLengthValidator ¶
func MaxLengthValidator(maxLength *int) survey.Validator
MaxLengthValidator validates that val is shorter in length than maxLength
func MaxPropertiesValidator ¶
func MaxPropertiesValidator(maxItems *int, value *orderedmap.OrderedMap, key string) survey.Validator
MaxPropertiesValidator validates that at most the maxItems number of key-value pairs exist in a map
func MaxValidator ¶
MaxValidator validates that the val is less than the max, if exclusive, then less than or equal to
func MinItemsValidator ¶
func MinItemsValidator(minItems *int, value []interface{}) survey.Validator
MinItemsValidator validates that at least the minItems number of items exist in a slice
func MinLengthValidator ¶
func MinLengthValidator(minLength *int) survey.Validator
MinLengthValidator validates that val is longer in length than minLength
func MinPropertiesValidator ¶
func MinPropertiesValidator(minItems *int, value *orderedmap.OrderedMap, key string) survey.Validator
MinPropertiesValidator validates that at least the minItems number of key-value pairs exist in a map
func MinValidator ¶
MinValidator validates that the val is more than the min, if exclusive then more than or equal to
func MultipleOfValidator ¶
func MultipleOfValidator(multipleOf *float64) survey.Validator
MultipleOfValidator validates that the val is a multiple of multipleOf
func NoWhiteSpaceValidator ¶
func NoWhiteSpaceValidator() survey.Validator
NoWhiteSpaceValidator is an input validator for the survey package that disallows any whitespace in the val
func NoopValidator ¶
func NoopValidator() survey.Validator
NoopValidator always passes (use instead of nil in a slice of validators)
func OverrideAnswerValidator ¶
func OverrideAnswerValidator(ans interface{}, validator survey.Validator) survey.Validator
OverrideAnswerValidator will validate the answer supplied as an argument, rather the answer the user provides this is useful when you want to validate the value a confirm dialog is confirming, rather than the Y/n
func PatternValidator ¶
func PatternValidator(pattern *string) survey.Validator
PatternValidator validates that the val matches the regex pattern
func ReadSchemaTemplate ¶
func ReadSchemaTemplate(templateFile string, requirements *config.RequirementsConfig) ([]byte, error)
readSchemaTemplate evaluates the given go template file and returns the output data
func RequiredValidator ¶
func RequiredValidator(required bool) survey.Validator
RequiredValidator applies the RequiredValidator if required is true
func TemplateSchemaFile ¶
func TemplateSchemaFile(schemaFileName string, requirements *config.RequirementsConfig) error
TemplateSchemaFile if there is a template for the schema file then evaluate it and write the schema file
func TimeValidator ¶
func TimeValidator() survey.Validator
TimeValidator validates that a string is a RFC3339 full-time format
func URIReferenceValidator ¶
func URIReferenceValidator() survey.Validator
URIReferenceValidator validates that a string is a valid RFC 3986 URI Reference
func URIValidator ¶
func URIValidator() survey.Validator
URIValidator validates that a string is a valid RFC 3986 URI
func UniqueItemsValidator ¶
func UniqueItemsValidator(value []interface{}) survey.Validator
UniqueItemsValidator validates that the val is unique in a slice
Types ¶
type Dependency ¶
Dependency is either a Type or an array of strings, and so requires special unmarshaling from JSON
func (*Dependency) UnmarshalJSON ¶
func (d *Dependency) UnmarshalJSON(b []byte) error
UnmarshalJSON performs unmarshals Dependency from JSON, required as the json field can be one of two types
type Items ¶
Items is a either a Type or a array of types, and so requires special unmarshaling from JSON
func (*Items) UnmarshalJSON ¶
UnmarshalJSON performs unmarshals Items from JSON, required as the json field can be one of two types
type JSONSchemaOptions ¶
type JSONSchemaOptions struct { VaultClient secreturl.Client VaultBasePath string VaultScheme string AskExisting bool AutoAcceptDefaults bool NoAsk bool IgnoreMissingValues bool In terminal.FileReader Out terminal.FileWriter OutErr io.Writer }
JSONSchemaOptions are options for generating values from a schema
func (*JSONSchemaOptions) GenerateValues ¶
func (o *JSONSchemaOptions) GenerateValues(schemaBytes []byte, existingValues map[string]interface{}) ([]byte, error)
GenerateValues examines the schema in schemaBytes, asks a series of questions using in, out and outErr, applying validators, returning a generated json file. If there are existingValues then those questions will be ignored and the existing value used unless askExisting is true. If autoAcceptDefaults is true, then default values will be used automatically. If ignoreMissingValues is false then any values which don't have an existing value ( or a default value if autoAcceptDefaults is true) will cause an error
type Properties ¶
type Properties struct {
*orderedmap.OrderedMap
}
Properties is a set of ordered key-value pairs, as it is ordered it requires special marshaling to/from JSON
func (*Properties) UnmarshalJSON ¶
func (p *Properties) UnmarshalJSON(b []byte) error
UnmarshalJSON performs custom Unmarshaling for Properties allowing us to preserve order, which is not a standard JSON feature
type Type ¶
type Type struct { Version string `json:"$schema,omitempty"` Ref string `json:"$ref,omitempty"` MultipleOf *float64 `json:"multipleOf,omitempty"` Maximum *float64 `json:"maximum,omitempty"` ExclusiveMaximum *float64 `json:"exclusiveMaximum,omitempty"` Minimum *float64 `json:"minimum,omitempty"` ExclusiveMinimum *float64 `json:"exclusiveMinimum,omitempty"` MaxLength *int `json:"maxLength,omitempty"` MinLength *int `json:"minLength,omitempty"` Pattern *string `json:"pattern,omitempty"` AdditionalItems *Type `json:"additionalItems,omitempty"` Items Items `json:"items,omitempty"` MaxItems *int `json:"maxItems,omitempty"` MinItems *int `json:"minItems,omitempty"` UniqueItems bool `json:"uniqueItems,omitempty"` MaxProperties *int `json:"maxProperties,omitempty"` MinProperties *int `json:"minProperties,omitempty"` Required []string `json:"required,omitempty"` Properties *Properties `json:"properties,omitempty"` // TODO Implement support & tests for PatternProperties PatternProperties map[string]*Type `json:"patternProperties,omitempty"` // TODO Implement support & tests for AdditionalProperties AdditionalProperties *Type `json:"additionalProperties,omitempty"` // TODO Implement support & tests for Dependencies Dependencies map[string]Dependency `json:"dependencies,omitempty"` // TODO Implement support & tests for PropertyNames PropertyNames *Type `json:"propertyNames,omitempty"` Enum []interface{} `json:"enum,omitempty"` Type string `json:"type,omitempty"` If *Type `json:"if,omitempty"` Then *Type `json:"then,omitempty"` Else *Type `json:"else,omitempty"` // TODO Implement support & tests for All AllOf []*Type `json:"allOf,omitempty"` AnyOf []*Type `json:"anyOf,omitempty"` // TODO Implement support & tests for OneOf OneOf []*Type `json:"oneOf,omitempty"` // TODO Implement support & tests for Not Not *Type `json:"not,omitempty"` // TODO Implement support & tests for Definitions Definitions Definitions `json:"definitions,omitempty"` // TODO Implement support & tests for Contains Contains *Type `json:"contains,omitempty"` Const *interface{} `json:"const,omitempty"` Title string `json:"title,omitempty"` Description string `json:"description,omitempty"` Default interface{} `json:"default,omitempty"` Format *string `json:"format,omitempty"` ContentMediaType *string `json:"contentMediaType,omitempty"` ContentEncoding *string `json:"contentEncoding,omitempty"` }
Type represents a JSON Schema object type current to https://www.ietf.org/archive/id/draft-handrews-json-schema-validation-01.txt