datamodel

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 8, 2021 License: BSD-3-Clause Imports: 0 Imported by: 0

Documentation

Overview

Package datamodel describes the data types used by OONI's API. You need to edit this package to modify the data model. Once done, remember to run `go generate ./...` to regenerate apiclient files.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CheckInRequest

type CheckInRequest struct {
	Charging        bool                           `json:"charging"`
	OnWiFi          bool                           `json:"on_wifi"`
	Platform        string                         `json:"platform"`
	ProbeASN        string                         `json:"probe_asn"`
	ProbeCC         string                         `json:"probe_cc"`
	RunType         string                         `json:"run_type"`
	SoftwareName    string                         `json:"software_name"`
	SoftwareVersion string                         `json:"software_version"`
	WebConnectivity *CheckInRequestWebConnectivity `json:"web_connectivity"`
}

CheckInRequest is the check-in API request

type CheckInRequestWebConnectivity

type CheckInRequestWebConnectivity struct {
	CategoryCodes []string `json:"category_codes"`
}

CheckInRequestWebConnectivity contains WebConnectivity specific parameters to include into CheckInRequest

type CheckInResponse

type CheckInResponse struct {
	WebConnectivity *CheckInResponseWebConnectivity `json:"web_connectivity"`
}

CheckInResponse is the check-in API response

type CheckInResponseURLInfo

type CheckInResponseURLInfo struct {
	CategoryCode string `json:"category_code"`
	CountryCode  string `json:"country_code"`
	URL          string `json:"url"`
}

CheckInResponseURLInfo contains information about an URL.

type CheckInResponseWebConnectivity

type CheckInResponseWebConnectivity struct {
	ReportID string                   `json:"report_id"`
	URLs     []CheckInResponseURLInfo `json:"urls"`
}

CheckInResponseWebConnectivity contains WebConnectivity specific information of a CheckInResponse

type CheckReportIDRequest

type CheckReportIDRequest struct {
	ReportID string `query:"report_id" required:"true"`
}

CheckReportIDRequest is the CheckReportID request.

type CheckReportIDResponse

type CheckReportIDResponse struct {
	Found bool `json:"found"`
}

CheckReportIDResponse is the CheckReportID response.

type LoginRequest

type LoginRequest struct {
	ClientID string `json:"username"`
	Password string `json:"password"`
}

LoginRequest is the login API request

type LoginResponse

type LoginResponse struct {
	Expire string `json:"expire"`
	Token  string `json:"token"`
}

LoginResponse is the login API response

type MeasurementMetaRequest

type MeasurementMetaRequest struct {
	ReportID string `query:"report_id" required:"true"`
	Full     bool   `query:"full"`
	Input    string `query:"input"`
}

MeasurementMetaRequest is the MeasurementMeta Request.

type MeasurementMetaResponse

type MeasurementMetaResponse struct {
	Anomaly              bool   `json:"anomaly"`
	CategoryCode         string `json:"category_code"`
	Confirmed            bool   `json:"confirmed"`
	Failure              bool   `json:"failure"`
	Input                string `json:"input"`
	MeasurementStartTime string `json:"measurement_start_time"`
	ProbeASN             int64  `json:"probe_asn"`
	ProbeCC              string `json:"probe_cc"`
	RawMeasurement       string `json:"raw_measurement"`
	ReportID             string `json:"report_id"`
	Scores               string `json:"scores"`
	TestName             string `json:"test_name"`
	TestStartTime        string `json:"test_start_time"`
}

MeasurementMetaResponse is the MeasurementMeta Response.

type OpenReportRequest

type OpenReportRequest struct {
	DataFormatVersion string `json:"data_format_version"`
	Format            string `json:"format"`
	ProbeASN          string `json:"probe_asn"`
	ProbeCC           string `json:"probe_cc"`
	SoftwareName      string `json:"software_name"`
	SoftwareVersion   string `json:"software_version"`
	TestName          string `json:"test_name"`
	TestStartTime     string `json:"test_start_time"`
	TestVersion       string `json:"test_version"`
}

OpenReportRequest is the OpenReport request.

type OpenReportResponse

type OpenReportResponse struct {
	ReportID         string   `json:"report_id"`
	SupportedFormats []string `json:"supported_formats"`
}

OpenReportResponse is the OpenReport response.

type PsiphonConfigRequest

type PsiphonConfigRequest struct{}

PsiphonConfigRequest is the request for the PsiphonConfig API

type PsiphonConfigResponse

type PsiphonConfigResponse map[string]interface{}

PsiphonConfigResponse is the response from the PsiphonConfig API

type RegisterRequest

type RegisterRequest struct {
	AvailableBandwidth string   `json:"available_bandwidth,omitempty"`
	DeviceToken        string   `json:"device_token,omitempty"`
	Language           string   `json:"language,omitempty"`
	NetworkType        string   `json:"network_type,omitempty"`
	Platform           string   `json:"platform"`
	ProbeASN           string   `json:"probe_asn"`
	ProbeCC            string   `json:"probe_cc"`
	ProbeFamily        string   `json:"probe_family,omitempty"`
	ProbeTimezone      string   `json:"probe_timezone,omitempty"`
	SoftwareName       string   `json:"software_name"`
	SoftwareVersion    string   `json:"software_version"`
	SupportedTests     []string `json:"supported_tests"`
}

RegisterRequest is the request for the Register API.

type RegisterResponse

type RegisterResponse struct {
	ClientID string `json:"client_id"`
}

RegisterResponse is the response from the Register API.

type SubmitMeasurementRequest

type SubmitMeasurementRequest struct {
	ReportID string      `path:"report_id"`
	Format   string      `json:"format"`
	Content  interface{} `json:"content"`
}

SubmitMeasurementRequest is the SubmitMeasurement request.

type SubmitMeasurementResponse

type SubmitMeasurementResponse struct{}

SubmitMeasurementResponse is the SubmitMeasurement response.

type TestHelpersHelperInfo

type TestHelpersHelperInfo struct {
	Address string `json:"address"`
	Type    string `json:"type"`
	Front   string `json:"front,omitempty"`
}

TestHelpersHelperInfo is a single helper within the response returned by the TestHelpers API.

type TestHelpersRequest

type TestHelpersRequest struct{}

TestHelpersRequest is the TestHelpers request.

type TestHelpersResponse

type TestHelpersResponse map[string][]TestHelpersHelperInfo

TestHelpersResponse is the TestHelpers response.

type TorTargetsRequest

type TorTargetsRequest struct{}

TorTargetsRequest is a request for the TorTargets API.

type TorTargetsResponse

type TorTargetsResponse map[string]TorTargetsTarget

TorTargetsResponse is the response from the TorTargets API.

type TorTargetsTarget

type TorTargetsTarget struct {
	Address  string              `json:"address"`
	Name     string              `json:"name"`
	Params   map[string][]string `json:"params"`
	Protocol string              `json:"protocol"`
	Source   string              `json:"source"`
}

TorTargetsTarget is a target for the tor experiment.

type URLsRequest added in v0.3.0

type URLsRequest struct {
	CategoryCodes string `query:"category_codes"`
	CountryCode   string `query:"country_code"`
	Limit         int64  `query:"limit"`
}

URLsRequest is the URLs request.

type URLsResponse added in v0.3.0

type URLsResponse struct {
	Results []URLsResponseURL `json:"results"`
}

URLsResponse is the URLs response.

type URLsResponseURL added in v0.3.0

type URLsResponseURL struct {
	CategoryCode string `json:"category_code"`
	CountryCode  string `json:"country_code"`
	URL          string `json:"url"`
}

URLsResponseURL is a single URL in the URLs response.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL