d3c5196474
This diff changes the software name used by unattended runs for which we did not override the default software name (`ooniprobe-cli`). It will become `ooniprobe-cli-unattended`. This software name is in line with the one we use for Android, iOS, and desktop unattended runs. While working in this diff, I introduced string constants for the run types and a string constant for the default software name. See https://github.com/ooni/probe/issues/2081.
85 lines
3.4 KiB
Go
85 lines
3.4 KiB
Go
package model
|
|
|
|
//
|
|
// Data structures used to speak with the OONI API.
|
|
//
|
|
|
|
// OOAPICheckInConfigWebConnectivity is the configuration for the WebConnectivity test
|
|
type OOAPICheckInConfigWebConnectivity struct {
|
|
CategoryCodes []string `json:"category_codes"` // CategoryCodes is an array of category codes
|
|
}
|
|
|
|
// OOAPICheckInConfig contains configuration for calling the checkin API.
|
|
type OOAPICheckInConfig struct {
|
|
Charging bool `json:"charging"` // Charging indicate if the phone is actually charging
|
|
OnWiFi bool `json:"on_wifi"` // OnWiFi indicate if the phone is actually connected to a WiFi network
|
|
Platform string `json:"platform"` // Platform of the probe
|
|
ProbeASN string `json:"probe_asn"` // ProbeASN is the probe country code
|
|
ProbeCC string `json:"probe_cc"` // ProbeCC is the probe country code
|
|
RunType RunType `json:"run_type"` // RunType
|
|
SoftwareName string `json:"software_name"` // SoftwareName of the probe
|
|
SoftwareVersion string `json:"software_version"` // SoftwareVersion of the probe
|
|
WebConnectivity OOAPICheckInConfigWebConnectivity `json:"web_connectivity"` // WebConnectivity class contain an array of categories
|
|
}
|
|
|
|
// OOAPICheckInInfoWebConnectivity contains the array of URLs returned by the checkin API
|
|
type OOAPICheckInInfoWebConnectivity struct {
|
|
ReportID string `json:"report_id"`
|
|
URLs []OOAPIURLInfo `json:"urls"`
|
|
}
|
|
|
|
// OOAPICheckInInfo contains the return test objects from the checkin API
|
|
type OOAPICheckInInfo struct {
|
|
WebConnectivity *OOAPICheckInInfoWebConnectivity `json:"web_connectivity"`
|
|
}
|
|
|
|
// OOAPIService describes a backend service.
|
|
//
|
|
// The fields of this struct have the meaning described in v2.0.0 of the OONI
|
|
// bouncer specification defined by
|
|
// https://github.com/ooni/spec/blob/master/backends/bk-004-bouncer.md.
|
|
type OOAPIService struct {
|
|
// Address is the address of the server.
|
|
Address string `json:"address"`
|
|
|
|
// Type is the type of the service.
|
|
Type string `json:"type"`
|
|
|
|
// Front is the front to use with "cloudfront" type entries.
|
|
Front string `json:"front,omitempty"`
|
|
}
|
|
|
|
// OOAPITorTarget is a target for the tor experiment.
|
|
type OOAPITorTarget struct {
|
|
// Address is the address of the target.
|
|
Address string `json:"address"`
|
|
|
|
// Name is the name of the target.
|
|
Name string `json:"name"`
|
|
|
|
// Params contains optional params for, e.g., pluggable transports.
|
|
Params map[string][]string `json:"params"`
|
|
|
|
// Protocol is the protocol to use with the target.
|
|
Protocol string `json:"protocol"`
|
|
|
|
// Source is the source from which we fetched this specific
|
|
// target. Whenever the source is non-empty, we will treat
|
|
// this specific target as a private target.
|
|
Source string `json:"source"`
|
|
}
|
|
|
|
// OOAPIURLInfo contains info on a test lists URL
|
|
type OOAPIURLInfo struct {
|
|
CategoryCode string `json:"category_code"`
|
|
CountryCode string `json:"country_code"`
|
|
URL string `json:"url"`
|
|
}
|
|
|
|
// OOAPIURLListConfig contains configuration for fetching the URL list.
|
|
type OOAPIURLListConfig struct {
|
|
Categories []string // Categories to query for (empty means all)
|
|
CountryCode string // CountryCode is the optional country code
|
|
Limit int64 // Max number of URLs (<= 0 means no limit)
|
|
}
|