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) }