Documentation ¶
Index ¶
- Variables
- func UsageValidator(values map[string]interface{}, addError forms.ErrorAdder) error
- type AreValidDatabaseSettings
- type AreValidMeterSettings
- type IsAnything
- type IsValidAnonTimeWindow
- type IsValidAppointmentDuration
- type IsValidDatabaseType
- type IsValidMeterType
- type IsValidProviderTimeWindow
- type IsValidRegexp
- type IsValidVaccine
- type JSON
Constants ¶
This section is empty.
Variables ¶
View Source
var ActorKeyForm = forms.Form{ Name: "actorKey", Fields: SignedDataFields(nil), }
View Source
var AddCodesForm = forms.Form{ Name: "addCodes", Fields: SignedDataFields(&CodesDataForm), }
View Source
var AddMediatorPublicKeysDataForm = forms.Form{ Name: "addMediatorPublicKeysData", Fields: []forms.Field{ { Name: "signedKeyData", Description: "Signed mediator key data.", Validators: []forms.Validator{ forms.IsStringMap{ Form: SignedKeyDataForm(&MediatorKeyDataForm, "mediatorSignedKeyData"), }, }, }, TimestampField, }, }
View Source
var AddMediatorPublicKeysForm = forms.Form{ Name: "addMediatorPublicKeys", Fields: SignedDataFields(&AddMediatorPublicKeysDataForm), }
View Source
var AdminForm = forms.Form{ Name: "admin", Fields: []forms.Field{ { Name: "signing", Validators: []forms.Validator{ forms.IsStringMap{ Form: &SigningForm, }, }, }, { Name: "client", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ClientForm, }, }, }, }, }
View Source
var AggregatedProviderAppointmentsForm = forms.Form{ Name: "providerAppointments", Fields: []forms.Field{ { Name: "provider", Description: "Signed public provider data.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ProviderDataForm, }, }, }, { Name: "appointments", Description: "Appointments offered by the provider.", Validators: []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &AppointmentDataForm, }, }, }, }, }, }, }
View Source
var AppointmentDataForm = forms.Form{ Name: "appointmentData", Fields: []forms.Field{ IDField, { Name: "duration", Description: "Duration of the appointment.", Validators: []forms.Validator{ forms.IsInteger{}, IsValidAppointmentDuration{}, }, }, { Name: "properties", Description: "Properties of the appointment.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &AppointmentPropertiesForm, }, }, }, { Name: "slotData", Description: "Appointment slots.", Validators: []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &SlotForm, }, }, }, }, }, TimestampField, { Name: "vaccine", Description: "The vaccine type used.", Validators: []forms.Validator{ forms.IsString{}, IsValidVaccine{}, }, }, PublicKeyField, }, }
View Source
var AppointmentPropertiesForm = forms.Form{ Name: "appointmentProperties", Fields: []forms.Field{ { Name: "*", Description: "all other properties", Validators: []forms.Validator{ forms.IsString{}, }, }, }, }
View Source
var AppointmentsForm = forms.Form{ Name: "appointments", Fields: []forms.Field{ { Name: "keys", Validators: []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &KeyForm, }, }, }, }, }, { Name: "validate", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ValidateForm, }, }, }, { Name: "data_ttl_days", Validators: []forms.Validator{ forms.IsOptional{Default: 30}, forms.IsInteger{ HasMin: true, Min: 1, HasMax: true, Max: 60, }, }, }, { Name: "provider_codes_enabled", Validators: []forms.Validator{ forms.IsOptional{Default: true}, forms.IsBoolean{}, }, }, { Name: "user_codes_enabled", Validators: []forms.Validator{ forms.IsOptional{Default: true}, forms.IsBoolean{}, }, }, { Name: "user_codes_reuse_limit", Validators: []forms.Validator{ forms.IsOptional{Default: 0}, forms.IsInteger{ HasMin: true, Min: 0, HasMax: true, Max: 1000, }, }, }, { Name: "provider_codes_reuse_limit", Validators: []forms.Validator{ forms.IsOptional{Default: 0}, forms.IsInteger{ HasMin: true, Min: 0, HasMax: true, Max: 1000, }, }, }, { Name: "response_max_provider", Validators: []forms.Validator{ forms.IsOptional{Default: 10}, forms.IsInteger{ HasMin: true, Min: 1, }, }, }, { Name: "response_max_appointment", Validators: []forms.Validator{ forms.IsOptional{Default: 10}, forms.IsInteger{ HasMin: true, Min: 1, }, }, }, { Name: "response_min_n_aggregated", Validators: []forms.Validator{ forms.IsOptional{Default: 1000}, forms.IsInteger{ HasMin: true, Min: 1, }, }, }, { Name: "response_max_days_aggregated", Validators: []forms.Validator{ forms.IsOptional{Default: 7}, forms.IsInteger{ HasMin: true, Min: 1, }, }, }, { Name: "max_tokens_per_user", Validators: []forms.Validator{ forms.IsOptional{Default: 1}, forms.IsInteger{ HasMin: true, Min: 1, }, }, }, { Name: "secret", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsBytes{ Encoding: "base64", MinLength: 16, MaxLength: 64, }, }, }, { Name: "rest", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &RESTServerSettingsForm, }, }, }, { Name: "jsonrpc", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &JSONRPCServerSettingsForm, }, }, }, { Name: "http", Validators: []forms.Validator{ forms.IsStringMap{ Form: &HTTPServerSettingsForm, }, }, }, }, }
View Source
var BookAppointmentDataForm = forms.Form{ Name: "bookAppointmentData", Fields: []forms.Field{ ProviderIDField, IDField, TimestampField, { Name: "signedTokenData", Description: "Signed token data of the user.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &SignedTokenDataForm, }, }, }, { Name: "encryptedData", Description: "Encrypted data for the provider.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ECDHEncryptedDataForm, }, }, }, }, }
View Source
var BookAppointmentForm = forms.Form{ Name: "bookAppointment", Fields: SignedDataFields(&BookAppointmentDataForm), }
View Source
var BookAppointmentRVV = []forms.Validator{ forms.IsStringMap{ Form: &BookingForm, }, }
View Source
var BookingForm = forms.Form{ Name: "booking", Fields: []forms.Field{ IDField, PublicKeyField, { Name: "token", Description: "The token used for this booking.", Validators: []forms.Validator{ ID, }, }, { Name: "encryptedData", Description: "Encrypted data for the provider.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ECDHEncryptedDataForm, }, }, }, }, }
View Source
var CancelAppointmentDataForm = forms.Form{ Name: "cancelAppointmentData", Fields: []forms.Field{ IDField, ProviderIDField, TimestampField, { Name: "signedTokenData", Description: "Signed token data of the user.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &SignedTokenDataForm, }, }, }, }, }
View Source
var CancelAppointmentForm = forms.Form{ Name: "cancelAppointment", Fields: SignedDataFields(&CancelAppointmentDataForm), }
View Source
var CheckProviderDataRVV = []forms.Validator{ forms.IsStringMap{ Form: &ConfirmedProviderDataForm, }, }
View Source
var ClientForm = forms.Form{ Name: "client", Fields: []forms.Field{ { Name: "storage_endpoint", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "appointments_endpoint", Validators: []forms.Validator{ forms.IsString{}, }, }, }, }
View Source
var CodesDataForm = forms.Form{ Name: "codesData", Fields: []forms.Field{ TimestampField, { Name: "actor", Description: "The actor for which to store signup codes.", Validators: []forms.Validator{ forms.IsString{}, forms.IsIn{Choices: []interface{}{"provider", "user"}}, }, }, { Name: "codes", Description: "The signup codes to store.", Validators: []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsBytes{ Encoding: "hex", MaxLength: 32, MinLength: 16, }, }, }, }, }, }, }
View Source
var ConfirmProviderDataForm = forms.Form{ Name: "confirmProviderData", Fields: []forms.Field{ TimestampField, { Name: "confirmedProviderData", Description: "Confirmed provider data for review by the provider.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ConfirmedProviderDataForm, }, }, }, { Name: "publicProviderData", Description: "Publicly visible provider data.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &SignedProviderDataForm, }, }, }, { Name: "signedKeyData", Description: "Publicly visible signed key data.", Validators: []forms.Validator{ forms.IsStringMap{ Form: SignedKeyDataForm(&ProviderKeyDataForm, "providerSignedKeyData"), }, }, }, }, }
View Source
var ConfirmProviderForm = forms.Form{ Name: "confirmProvider", Fields: SignedDataFields(&ConfirmProviderDataForm), }
View Source
var ConfirmedProviderDataForm = forms.Form{ Name: "confirmedProviderData", Fields: SignedDataFields(&ECDHEncryptedDataForm), }
View Source
var CorsSettingsForm = forms.Form{ Name: "corsSettings", ErrorMsg: "invalid data encountered in the CORS settings form", Fields: []forms.Field{ { Name: "allowed_hosts", Validators: []forms.Validator{ forms.IsOptional{Default: []string{}}, forms.IsStringList{ Validators: []forms.Validator{ IsValidRegexp{}, }, }, }, }, { Name: "allowed_headers", Validators: []forms.Validator{ forms.IsOptional{Default: []string{}}, forms.IsStringList{}, }, }, { Name: "allowed_methods", Validators: []forms.Validator{ forms.IsOptional{Default: []string{"GET", "POST", "PATCH", "PUT", "DELETE", "OPTIONS"}}, forms.IsList{ Validators: []forms.Validator{ forms.IsIn{ Choices: []interface{}{"GET", "POST", "PATCH", "PUT", "DELETE", "OPTIONS"}, }, }, }, forms.IsStringList{}, }, }, }, }
View Source
var DatabaseForm = forms.Form{ Name: "database", Fields: []forms.Field{ { Name: "name", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "type", Validators: []forms.Validator{ forms.IsString{}, IsValidDatabaseType{}, }, }, { Name: "settings", Validators: []forms.Validator{ forms.IsStringMap{}, AreValidDatabaseSettings{}, }, }, }, }
View Source
var DeleteSettingsForm = forms.Form{ Name: "deleteSettings", Fields: []forms.Field{ { Name: "id", Description: "ID for which to delete settings.", Validators: []forms.Validator{ ID, }, }, }, }
View Source
var DistanceForm = forms.Form{ Name: "distance", Fields: []forms.Field{ { Name: "from", Description: "The origin.", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "to", Description: "The destination.", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "distance", Description: "The distance between origin and destination.", Validators: []forms.Validator{ forms.IsFloat{ HasMin: true, Min: 0.0, HasMax: true, Max: 200.0, }, }, }, }, }
View Source
var DistancesDataForm = forms.Form{ Name: "distancesData", Fields: []forms.Field{ TimestampField, { Name: "type", Description: "The type of distance information to store.", Validators: []forms.Validator{ forms.IsIn{Choices: []interface{}{"zipCode", "zipArea"}}, }, }, { Name: "distances", Description: "The distances to store.", Validators: []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &DistanceForm, }, }, }, }, }, }, }
View Source
var ECDHEncryptedDataForm = forms.Form{ Name: "ecdhEncryptedData", Fields: []forms.Field{ { Name: "iv", Description: "IV value associated with the encrypted data.", Validators: []forms.Validator{ forms.IsBytes{ Encoding: "base64", MinLength: 10, MaxLength: 20, }, }, }, { Name: "data", Description: "The encrypted data.", Validators: []forms.Validator{ forms.IsBytes{ Encoding: "base64", MinLength: 1, MaxLength: 200000, }, }, }, PublicKeyField, }, }
View Source
var ECDSAParamsForm = forms.Form{ Name: "ecdsaParams", Fields: []forms.Field{ { Name: "curve", Validators: []forms.Validator{ forms.IsIn{Choices: []interface{}{"p-256", "P-256"}}, }, }, }, }
View Source
var GetAppointmentForm = forms.Form{ Name: "getAppointment", Fields: []forms.Field{ IDField, ProviderIDField, }, }
View Source
var GetAppointmentRVV = []forms.Validator{ forms.IsStringMap{ Form: &SignedAppointmentForm, }, }
View Source
var GetAppointmentsAggregatedForm = forms.Form{ Name: "getAppointmentsAggregated", Fields: []forms.Field{ { Name: "zipFrom", Description: "The zip code to use as the user location.", Validators: []forms.Validator{ forms.IsString{ MaxLength: 5, MinLength: 5, }, }, }, { Name: "zipTo", Description: "The zip code to use as the user location.", Validators: []forms.Validator{ forms.IsString{ MaxLength: 5, MinLength: 5, }, }, }, { Name: "date", Description: "The earliest date of appointments to return.", Validators: []forms.Validator{ forms.IsTime{Format: "rfc3339-date"}, }, }, }, }
View Source
var GetAppointmentsAggregatedRVV = []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &AggregatedProviderAppointmentsForm, }, }, }, }
View Source
var GetAppointmentsByZipCodeForm = forms.Form{ Name: "getAppointmentsByZipCode", Fields: []forms.Field{ { Name: "radius", Description: "The radius around the given zip code for which to show appointments.", Validators: []forms.Validator{ forms.IsOptional{Default: 50}, forms.IsInteger{ HasMin: true, HasMax: true, Min: 5, Max: 80, Convert: true, }, }, }, { Name: "zipCode", Description: "The zip code to use as the user location.", Validators: []forms.Validator{ forms.IsString{ MaxLength: 5, MinLength: 5, }, }, }, { Name: "from", Description: "The earliest date of appointments to return.", Validators: []forms.Validator{ forms.IsTime{Format: "rfc3339"}, }, }, { Name: "to", Description: "The latest date of appointments to return.", Validators: []forms.Validator{ forms.IsTime{Format: "rfc3339"}, IsValidAnonTimeWindow{}, }, }, }, }
View Source
var GetAppointmentsByZipCodeRVV = []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &ProviderAppointmentsForm, }, }, }, }
View Source
var GetBookedAppointmentsDataForm = forms.Form{ Name: "getBookedAppointmentsData", Fields: []forms.Field{ TimestampField, }, }
View Source
var GetBookedAppointmentsForm = forms.Form{ Name: "getBookedAppointments", Fields: SignedDataFields(&GetBookedAppointmentsDataForm), }
View Source
var GetConfigurablesForm = forms.Form{ Name: "getConfigurables", Fields: []forms.Field{}, }
View Source
var GetConfigurablesRVV = []forms.Validator{ forms.IsStringMap{ Form: &ValidateForm, }, }
View Source
var GetKeysForm = forms.Form{ Name: "getKeys", Fields: []forms.Field{}, }
View Source
var GetKeysRVV = []forms.Validator{ forms.IsStringMap{ Form: &KeysForm, }, }
View Source
var GetProviderAppointmentsByPropertyDataForm = forms.Form{ Name: "getProviderAppointmentsByPropertyData", Fields: []forms.Field{ TimestampField, { Name: "key", Description: "The earliest date of appointments to return.", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "value", Description: "The latest date of appointments to return.", Validators: []forms.Validator{ forms.IsString{}, }, }, }, }
View Source
var GetProviderAppointmentsByPropertyForm = forms.Form{ Name: "getProviderAppointmentsByProperty", Fields: SignedDataFields(&GetProviderAppointmentsByPropertyDataForm), }
View Source
var GetProviderAppointmentsByPropertyRVV = []forms.Validator{ forms.IsStringMap{ Form: &ProviderAppointmentsForm, }, }
View Source
var GetProviderAppointmentsDataForm = forms.Form{ Name: "getProviderAppointmentsData", Fields: []forms.Field{ TimestampField, { Name: "from", Description: "The earliest date of appointments to return.", Validators: []forms.Validator{ forms.IsTime{Format: "rfc3339"}, }, }, { Name: "to", Description: "The latest date of appointments to return.", Validators: []forms.Validator{ forms.IsTime{Format: "rfc3339"}, IsValidProviderTimeWindow{}, }, }, { Name: "updatedSince", Description: "The minimum 'updatedAt' value of appointments to return.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsTime{Format: "rfc3339"}, }, }, }, }
View Source
var GetProviderAppointmentsForm = forms.Form{ Name: "getProviderAppointments", Fields: SignedDataFields(&GetProviderAppointmentsDataForm), }
View Source
var GetProviderAppointmentsRVV = []forms.Validator{ forms.IsStringMap{ Form: &ProviderAppointmentsForm, }, }
View Source
var GetProviderDataDataForm = forms.Form{ Name: "getProviderDataData", Fields: []forms.Field{ TimestampField, ProviderIDField, }, }
View Source
var GetProviderDataForm = forms.Form{ Name: "getProviderData", Fields: SignedDataFields(&GetProviderDataDataForm), }
View Source
var GetProviderDataRVV = []forms.Validator{ forms.IsList{ Validators: GetSingleProviderDataRVV, }, }
View Source
var GetProvidersByZipCodeForm = forms.Form{ Name: "getProvidersByZipCode", Fields: []forms.Field{ { Name: "zipFrom", Description: "provider zip code min", Validators: []forms.Validator{ forms.IsString{ MaxLength: 5, MinLength: 5, }, }, }, { Name: "zipTo", Description: "provider zip code max", Validators: []forms.Validator{ forms.IsString{ MaxLength: 5, MinLength: 5, }, }, }, }, }
View Source
var GetProvidersByZipCodeRVV = []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &SignedProviderDataForm, }, }, }, }
View Source
var GetProvidersDataDataForm = forms.Form{ Name: "getProvidersDataData", Fields: []forms.Field{ TimestampField, { Name: "limit", Description: "Number of entries to return at most.", Validators: []forms.Validator{ forms.IsOptional{Default: 1000}, forms.IsInteger{ HasMin: true, HasMax: true, Min: 1, Max: 10000, }, }, }, }, }
View Source
var GetProvidersDataForm = forms.Form{ Name: "getProvidersData", Fields: SignedDataFields(&GetProvidersDataDataForm), }
View Source
var GetSettingsForm = forms.Form{ Name: "getSettings", Fields: []forms.Field{ { Name: "id", Description: "ID for which to retrieve settings.", Validators: []forms.Validator{ ID, }, }, }, }
View Source
var GetSingleProviderDataRVV = []forms.Validator{ forms.IsStringMap{ Form: &forms.Form{ Name: "getSingleProviderData", Fields: []forms.Field{ { Name: "unverifiedData", Description: "the unverified provider data", Validators: []forms.Validator{ forms.IsStringMap{ Form: &RawProviderDataForm, }, }, }, { Name: "verifiedData", Description: "the verified provider data", Validators: []forms.Validator{ forms.IsStringMap{ Form: &RawProviderDataForm, }, }, }, }, }, }, }
View Source
var GetStatsForm = forms.Form{ Name: "getStats", Fields: []forms.Field{ { Name: "id", Description: "ID of the statistics to return.", Validators: []forms.Validator{ forms.IsIn{Choices: []interface{}{"queues", "tokens"}}, }, }, { Name: "type", Description: "Time window type of the statistics to return.", Validators: []forms.Validator{ forms.IsIn{Choices: []interface{}{"minute", "hour", "day", "quarterHour", "week", "month"}}, }, }, { Name: "name", Description: "Optional name of the statistics to return.", Validators: []forms.Validator{ forms.IsOptional{Default: ""}, forms.MatchesRegex{Regexp: regexp.MustCompile(`^[\w\d\-]{0,50}$`)}, }, }, { Name: "metric", Description: "Optional sub-metric to return.", Validators: []forms.Validator{ forms.IsOptional{Default: ""}, forms.MatchesRegex{Regexp: regexp.MustCompile(`^[\w\d\-]{0,50}$`)}, }, }, { Name: "filter", Description: "Optional additional filter criteria to apply.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{}, }, }, { Name: "from", Description: "Earliest date for which to return statistics. Only applicable if 'n' is not set.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsTime{Format: "rfc3339", ToUTC: true}, }, }, { Name: "to", Description: "Latest date for which to return statistics. Only applicable if 'n' is not set.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsTime{Format: "rfc3339", ToUTC: true}, }, }, { Name: "n", Description: "Maximum number of statistics values to return.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsInteger{HasMin: true, Min: 1, HasMax: true, Max: 500, Convert: true}, }, }, }, Transforms: []forms.Transform{}, Validator: UsageValidator, }
View Source
var GetStatsRVV = []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &StatsValueForm, }, }, }, }
View Source
var GetTokenForm = forms.Form{ Name: "getToken", Fields: []forms.Field{ { Name: "hash", Description: "The user-generated hash to store with the token.", Validators: []forms.Validator{ ID, }, }, { Name: "code", Description: "The optional signup code to use.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsBytes{ Encoding: "hex", MinLength: 16, MaxLength: 32, }, }, }, PublicKeyField, }, }
View Source
var GetTokenRVV = []forms.Validator{ forms.IsStringMap{ Form: &SignedTokenDataForm, }, }
View Source
var HTTPServerSettingsForm = forms.Form{ Name: "httpServerSettings", Fields: []forms.Field{ { Name: "bind_address", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "tls", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &tls.TLSSettingsForm, }, }, }, }, }
View Source
var ID = forms.IsBytes{
Encoding: "base64",
MinLength: 32,
MaxLength: 32,
}
An ID must be between 8 and 32 bytes long
View Source
var IDField = forms.Field{ Name: "id", Global: true, Description: "An ID.", Validators: []forms.Validator{ ID, }, }
View Source
var IsAcknowledgeRVV = []forms.Validator{ forms.IsIn{Choices: []interface{}{"ok"}}, }
View Source
var IsBooleanRVV = []forms.Validator{ forms.IsBoolean{}, }
View Source
var IsStringRVV = []forms.Validator{ forms.IsString{}, }
View Source
var JSONRPCClientSettingsForm = forms.Form{ Fields: []forms.Field{ { Name: "endpoint", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "local", Validators: []forms.Validator{ forms.IsOptional{Default: true}, forms.IsBoolean{}, }, }, { Name: "tls", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &tls.TLSSettingsForm, }, }, }, }, }
View Source
var JSONRPCServerSettingsForm = forms.Form{ Fields: []forms.Field{ { Name: "cors", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &CorsSettingsForm, }, }, }, }, }
View Source
var KeyChainForm = forms.Form{ Name: "keyChain", Fields: []forms.Field{ { Name: "provider", Description: "Public provider key data.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ActorKeyForm, }, }, }, { Name: "mediator", Description: "Public mediator key data.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ActorKeyForm, }, }, }, }, }
View Source
var KeyForm = forms.Form{ Name: "key", Fields: []forms.Field{ { Name: "type", Validators: []forms.Validator{ forms.IsIn{Choices: []interface{}{"ecdsa", "ecdh"}}, }, }, { Name: "format", Validators: []forms.Validator{ forms.IsIn{Choices: []interface{}{"spki-pkcs8"}}, }, }, { Name: "name", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "purposes", Validators: []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsString{}, forms.IsIn{Choices: []interface{}{"sign", "verify", "deriveKey", "encrypt", "decrypt"}}, }, }, }, }, { Name: "publicKey", Validators: []forms.Validator{ forms.IsBytes{ Encoding: "base64", }, }, }, { Name: "privateKey", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsBytes{ Encoding: "base64", }, }, }, { Name: "params", Validators: []forms.Validator{ forms.Switch{ Key: "type", Cases: map[string][]forms.Validator{ "ecdsa": []forms.Validator{ forms.IsStringMap{ Form: &ECDSAParamsForm, }, }, }, }, }, }, }, }
View Source
var KeysForm = forms.Form{ Name: "keys", Fields: []forms.Field{ { Name: "providerData", Description: "Public provider data key.", Validators: PublicKeyValidators, }, { Name: "rootKey", Description: "Public root key.", Validators: PublicKeyValidators, }, { Name: "tokenKey", Description: "Public token key.", Validators: PublicKeyValidators, }, }, }
View Source
var MailForm = forms.Form{ Name: "mail", Fields: []forms.Field{ { Name: "smtp_host", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "smtp_port", Validators: []forms.Validator{ forms.IsInteger{}, }, }, { Name: "smtp_user", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "smtp_password", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "sender", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "mail_subject", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "mail_template", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "mail_delay", Validators: []forms.Validator{ forms.IsInteger{}, }, }, }, }
View Source
var MediatorKeyDataForm = forms.Form{ Name: "mediatorKeyData", Fields: []forms.Field{ { Name: "signing", Description: "Public signing key of the mediator.", Validators: PublicKeyValidators, }, { Name: "encryption", Description: "Public encryption key of the mediator.", Validators: PublicKeyValidators, }, }, }
View Source
var MeterForm = forms.Form{ Name: "meter", Fields: []forms.Field{ { Name: "name", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "type", Validators: []forms.Validator{ forms.IsString{}, IsValidMeterType{}, }, }, { Name: "settings", Validators: []forms.Validator{ forms.IsStringMap{}, AreValidMeterSettings{}, }, }, }, }
View Source
var MetricsForm = forms.Form{ Name: "metrics", Fields: []forms.Field{ { Name: "bind_address", Validators: []forms.Validator{ forms.IsString{}, }, }, }, }
View Source
var OptionalIDField = forms.Field{ Name: "id", Global: true, Description: "An ID.", Validators: []forms.Validator{ forms.IsOptional{}, ID, }, }
View Source
var PriorityTokenForm = forms.Form{ Name: "priorityToken", Fields: []forms.Field{ { Name: "n", Validators: []forms.Validator{ forms.IsInteger{HasMin: true, Min: 0}, }, }, }, }
View Source
var ProviderAppointmentsForm = forms.Form{ Name: "providerAppointments", Fields: []forms.Field{ { Name: "provider", Description: "Signed public provider data.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &SignedProviderDataForm, }, }, }, { Name: "appointments", Description: "Appointments offered by the provider.", Validators: []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &SignedAppointmentForm, }, }, }, }, }, }, }
View Source
var ProviderDataForm = forms.Form{ Name: "providerData", Fields: []forms.Field{ { Name: "name", Description: "Name of the provider.", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "street", Description: "Street address of the provider.", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "city", Description: "City of the provider.", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "zipCode", Description: "Zip code of the provider.", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "description", Description: "Additional information about the provider.", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "accessible", Description: "Is the location accessible.", Validators: []forms.Validator{ forms.IsBoolean{}, }, }, }, }
View Source
var ProviderIDField = forms.Field{ Name: "providerID", Global: true, Description: "A provider ID.", Validators: []forms.Validator{ ID, }, }
View Source
var ProviderKeyDataForm = forms.Form{ Name: "providerKeyData", Fields: []forms.Field{ { Name: "signing", Description: "Public signing key of the provider.", Validators: PublicKeyValidators, }, { Name: "encryption", Description: "Public encryption key of the provider.", Validators: PublicKeyValidators, }, { Name: "queueData", Description: "Public information of the provider.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ProviderQueueDataForm, }, }, }, }, }
View Source
var ProviderQueueDataForm = forms.Form{ Name: "providerQueueData", Fields: []forms.Field{ { Name: "zipCode", Description: "Zip code of the provider.", Validators: []forms.Validator{ forms.IsString{ MaxLength: 5, MinLength: 5, }, }, }, { Name: "accessible", Description: "Whether the provider location is accessible.", Validators: []forms.Validator{ forms.IsOptional{Default: false}, forms.IsBoolean{}, }, }, }, }
View Source
var PublicKeyField = forms.Field{ Name: "publicKey", Global: true, Description: "An ECDSA or ECDH public key.", Validators: PublicKeyValidators, }
View Source
var PublicKeyValidators = []forms.Validator{ forms.IsBytes{ Encoding: "base64", MaxLength: 128, MinLength: 64, }, }
View Source
var PublishAppointmentsDataForm = forms.Form{ Name: "publishAppointmentsData", Fields: []forms.Field{ TimestampField, { Name: "appointments", Description: "The appointments to publish.", Validators: []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &SignedAppointmentForm, }, }, }, }, }, }, }
View Source
var PublishAppointmentsForm = forms.Form{ Name: "publishAppointments", Fields: SignedDataFields(&PublishAppointmentsDataForm), }
View Source
var RESTServerSettingsForm = forms.Form{ Name: "restServerSettings", Fields: []forms.Field{ { Name: "cors", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &CorsSettingsForm, }, }, }, }, }
View Source
var RawProviderDataForm = forms.Form{ Name: "rawProviderData", Fields: []forms.Field{ IDField, { Name: "encryptedData", Description: "Encrypted data submitted by the provider.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ECDHEncryptedDataForm, }, }, }, }, }
View Source
var ResetDBDataForm = forms.Form{ Name: "resetDBData", Fields: []forms.Field{ TimestampField, }, }
View Source
var ResetDBForm = forms.Form{ Name: "resetDB", Fields: SignedDataFields(&ResetDBDataForm), }
View Source
var SettingsForm = forms.Form{ Name: "settings", Fields: []forms.Field{ { Name: "test", Validators: []forms.Validator{ forms.IsOptional{Default: false}, forms.IsBoolean{}, }, }, { Name: "admin", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &AdminForm, }, }, }, { Name: "name", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "database", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &DatabaseForm, }, }, }, { Name: "meter", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &MeterForm, }, }, }, { Name: "storage", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &StorageForm, }, }, }, { Name: "appointments", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &AppointmentsForm, }, }, }, { Name: "metrics", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &MetricsForm, }, }, }, }, }
View Source
var SignatureField = forms.Field{ Name: "signature", Global: true, Description: "An ECDSA signature.", Validators: PublicKeyValidators, }
View Source
var SignedAppointmentForm = forms.Form{ Name: "signedAppointment", Fields: append(SignedDataFields(&AppointmentDataForm), []forms.Field{ { Name: "updatedAt", Description: "Time the appointment has last been updated.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsTime{ Format: "rfc3339", }, }, }, { Name: "bookedSlots", Description: "Booked slots associated with the appointment (visible to users).", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &SlotForm, }, }, }, }, }, { Name: "bookings", Description: "Bookings associated with the appointment (only visible to providers).", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &BookingForm, }, }, }, }, }, }...), }
View Source
var SignedDataFields = func(form *forms.Form) []forms.Field { return []forms.Field{ forms.Field{ Name: "data", Global: true, Description: "A JSON data field.", Validators: []forms.Validator{ forms.IsString{}, JSON{ Key: "json", }, forms.IsStringMap{ Form: form, }, }, }, SignatureField, PublicKeyField, } }
View Source
var SignedKeyDataForm = func(form *forms.Form, name string) *forms.Form { return &forms.Form{ Name: name, Fields: SignedDataFields(form), } }
View Source
var SignedProviderDataForm = forms.Form{ Name: "signedProviderData", Fields: append(SignedDataFields(&ProviderDataForm), OptionalIDField), }
View Source
var SignedTimestampForm = forms.Form{ Name: "signedTimestamp", Fields: SignedDataFields(&TimestampForm), }
View Source
var SignedTokenDataForm = forms.Form{ Name: "signedTokenData", Fields: SignedDataFields(&TokenDataForm), }
View Source
var SigningForm = forms.Form{ Name: "signing", Fields: []forms.Field{ { Name: "keys", Validators: []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &KeyForm, }, }, }, }, }, }, }
View Source
var StatsValueForm = forms.Form{ Name: "statsValue", Fields: []forms.Field{ { Name: "name", Description: "Name of the statistics value.", Validators: []forms.Validator{ forms.IsString{}, }, }, { Name: "from", Description: "Beginning of the time window of the statistics value.", Validators: []forms.Validator{ forms.IsTime{ Format: "rfc3339", }, }, }, { Name: "to", Description: "End of the time window of the statistics value.", Validators: []forms.Validator{ forms.IsTime{ Format: "rfc3339", }, }, }, { Name: "data", Description: "Data associate with the statistics value.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{}, }, }, { Name: "value", Description: "The statistics value itself.", Validators: []forms.Validator{ forms.IsInteger{}, }, }, }, }
View Source
var StorageForm = forms.Form{ Name: "storage", Fields: []forms.Field{ { Name: "keys", Validators: []forms.Validator{ forms.IsList{ Validators: []forms.Validator{ forms.IsStringMap{ Form: &KeyForm, }, }, }, }, }, { Name: "rest", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &RESTServerSettingsForm, }, }, }, { Name: "jsonrpc", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsStringMap{ Form: &JSONRPCServerSettingsForm, }, }, }, { Name: "http", Validators: []forms.Validator{ forms.IsStringMap{ Form: &HTTPServerSettingsForm, }, }, }, { Name: "settings_ttl_days", Validators: []forms.Validator{ forms.IsInteger{ HasMin: true, Min: 1, HasMax: true, Max: 60, }, }, }, }, }
View Source
var StoreProviderDataDataForm = forms.Form{ Name: "storeProviderDataData", Fields: []forms.Field{ TimestampField, { Name: "code", Description: "Optional signup code.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsBytes{ Encoding: "hex", MinLength: 16, MaxLength: 32, }, }, }, { Name: "encryptedData", Description: "Encrypted data for mediators to review.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &ECDHEncryptedDataForm, }, }, }, }, }
View Source
var StoreProviderDataForm = forms.Form{ Name: "storeProviderData", Fields: SignedDataFields(&StoreProviderDataDataForm), }
View Source
var StoreSettingsForm = forms.Form{ Name: "storeSettings", Fields: []forms.Field{ { Name: "id", Description: "ID under which to store settings.", Validators: []forms.Validator{ ID, }, }, { Name: "data", Description: "Settings to store under the given ID.", Validators: []forms.Validator{ IsAnything{}, }, }, }, }
View Source
var TimestampField = forms.Field{ Name: "timestamp", Global: true, Description: "A timestamp.", Validators: []forms.Validator{ forms.IsTime{ Format: "rfc3339", }, }, }
View Source
var TimestampForm = forms.Form{ Name: "timestamp", Fields: []forms.Field{ TimestampField, }, }
View Source
var TokenDataForm = forms.Form{ Name: "tokenData", Fields: []forms.Field{ { Name: "hash", Description: "The user-generated hash belonging to the token.", Validators: []forms.Validator{ ID, }, }, { Name: "token", Description: "The server-generated token.", Validators: []forms.Validator{ ID, }, }, PublicKeyField, { Name: "data", Description: "Optional data associated with the token.", Validators: []forms.Validator{ forms.IsOptional{}, forms.IsString{}, JSON{ Key: "json", }, forms.IsStringMap{ Form: &PriorityTokenForm, }, }, }, }, }
View Source
var UploadDistancesForm = forms.Form{ Name: "uploadDistances", Fields: SignedDataFields(&DistancesDataForm), }
View Source
var ValidateForm = forms.Form{ Name: "validate", Fields: []forms.Field{ { Name: "appointment_duration_max", Validators: []forms.Validator{ forms.IsInteger{ HasMin: true, Min: 1, }, }, }, { Name: "appointment_duration_min", Validators: []forms.Validator{ forms.IsInteger{ HasMin: true, Min: 1, }, }, }, { Name: "anon_max_time_window", Validators: []forms.Validator{ forms.IsInteger{ HasMin: true, Min: 1, }, }, }, { Name: "anon_aggregated_max_time_window", Validators: []forms.Validator{ forms.IsInteger{ HasMin: true, Min: 1, }, }, }, { Name: "provider_max_time_window", Validators: []forms.Validator{ forms.IsInteger{ HasMin: true, Min: 1, }, }, }, { Name: "vaccines", Validators: []forms.Validator{ forms.IsStringList{}, }, }, }, }
View Source
var ValidateUserDataForm = forms.Form{ Name: "validateUserData", Fields: []forms.Field{ TimestampField, { Name: "signedTokenData", Description: "Signed token data of the user.", Validators: []forms.Validator{ forms.IsStringMap{ Form: &SignedTokenDataForm, }, }, }, }, }
View Source
var ValidateUserForm = forms.Form{ Name: "validateUser", Fields: SignedDataFields(&ValidateUserDataForm), }
Functions ¶
func UsageValidator ¶
func UsageValidator(values map[string]interface{}, addError forms.ErrorAdder) error
Types ¶
type AreValidDatabaseSettings ¶
type AreValidDatabaseSettings struct { }
func (AreValidDatabaseSettings) Validate ¶
func (f AreValidDatabaseSettings) Validate(input interface{}, inputs map[string]interface{}) (interface{}, error)
func (AreValidDatabaseSettings) ValidateWithContext ¶
func (f AreValidDatabaseSettings) ValidateWithContext(input interface{}, inputs map[string]interface{}, context map[string]interface{}) (interface{}, error)
type AreValidMeterSettings ¶
type AreValidMeterSettings struct { }
func (AreValidMeterSettings) Validate ¶
func (f AreValidMeterSettings) Validate(input interface{}, inputs map[string]interface{}) (interface{}, error)
func (AreValidMeterSettings) ValidateWithContext ¶
func (f AreValidMeterSettings) ValidateWithContext(input interface{}, inputs map[string]interface{}, context map[string]interface{}) (interface{}, error)
type IsAnything ¶
type IsAnything struct{}
func (IsAnything) Validate ¶
func (a IsAnything) Validate(value interface{}, values map[string]interface{}) (interface{}, error)
type IsValidAnonTimeWindow ¶
type IsValidAnonTimeWindow struct{}
func (IsValidAnonTimeWindow) Validate ¶
func (f IsValidAnonTimeWindow) Validate(input interface{}, inputs map[string]interface{}) (interface{}, error)
func (IsValidAnonTimeWindow) ValidateWithContext ¶
func (f IsValidAnonTimeWindow) ValidateWithContext(input interface{}, inputs map[string]interface{}, context map[string]interface{}) (interface{}, error)
type IsValidAppointmentDuration ¶
type IsValidAppointmentDuration struct{}
func (IsValidAppointmentDuration) Validate ¶
func (f IsValidAppointmentDuration) Validate( input interface{}, inputs map[string]interface{}, ) (interface{}, error)
func (IsValidAppointmentDuration) ValidateWithContext ¶
func (f IsValidAppointmentDuration) ValidateWithContext( input interface{}, inputs map[string]interface{}, context map[string]interface{}, ) (interface{}, error)
type IsValidDatabaseType ¶
type IsValidDatabaseType struct { }
func (IsValidDatabaseType) Validate ¶
func (f IsValidDatabaseType) Validate(input interface{}, inputs map[string]interface{}) (interface{}, error)
func (IsValidDatabaseType) ValidateWithContext ¶
func (f IsValidDatabaseType) ValidateWithContext(input interface{}, inputs map[string]interface{}, context map[string]interface{}) (interface{}, error)
type IsValidMeterType ¶
type IsValidMeterType struct { }
func (IsValidMeterType) Validate ¶
func (f IsValidMeterType) Validate(input interface{}, inputs map[string]interface{}) (interface{}, error)
func (IsValidMeterType) ValidateWithContext ¶
func (f IsValidMeterType) ValidateWithContext(input interface{}, inputs map[string]interface{}, context map[string]interface{}) (interface{}, error)
type IsValidProviderTimeWindow ¶
type IsValidProviderTimeWindow struct{}
func (IsValidProviderTimeWindow) Validate ¶
func (f IsValidProviderTimeWindow) Validate(input interface{}, inputs map[string]interface{}) (interface{}, error)
func (IsValidProviderTimeWindow) ValidateWithContext ¶
func (f IsValidProviderTimeWindow) ValidateWithContext(input interface{}, inputs map[string]interface{}, context map[string]interface{}) (interface{}, error)
type IsValidRegexp ¶
type IsValidRegexp struct{}
func (IsValidRegexp) Validate ¶
func (i IsValidRegexp) Validate( value interface{}, values map[string]interface{}, ) (interface{}, error)
type IsValidVaccine ¶
type IsValidVaccine struct{}
func (IsValidVaccine) Validate ¶
func (f IsValidVaccine) Validate(input interface{}, inputs map[string]interface{}) (interface{}, error)
func (IsValidVaccine) ValidateWithContext ¶
func (f IsValidVaccine) ValidateWithContext(input interface{}, inputs map[string]interface{}, context map[string]interface{}) (interface{}, error)
Click to show internal directories.
Click to hide internal directories.