dataset

package
v1.24.0 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2020 License: MIT Imports: 16 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Alert

type Alert struct {
	Date        string `json:"date"`
	Description string `json:"description"`
	Type        string `json:"type"`
}

Alert represents an alert returned by the dataset api

type BuildHierarchyTask added in v1.7.0

type BuildHierarchyTask struct {
	State         string `json:"state,omitempty"`
	DimensionName string `json:"dimension_name,omitempty"`
	CodeListID    string `json:"code_list_id,omitempty"`
}

BuildHierarchyTask represents a task of importing a single hierarchy.

type BuildSearchIndexTask added in v1.7.0

type BuildSearchIndexTask struct {
	State         string `json:"state,omitempty"`
	DimensionName string `json:"dimension_name,omitempty"`
}

BuildSearchIndexTask represents a task of importing a single search index into search.

type Change

type Change struct {
	Description string `json:"description"`
	Name        string `json:"name"`
	Type        string `json:"type"`
}

Change represents a change returned for a version by the dataset api

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is a dataset api client which can be used to make requests to the server

func NewAPIClient

func NewAPIClient(datasetAPIURL string) *Client

NewAPIClient creates a new instance of Client with a given dataset api url and the relevant tokens

func NewAPIClientWithMaxRetries added in v1.6.0

func NewAPIClientWithMaxRetries(datasetAPIURL string, maxRetries int) *Client

NewAPIClientWithMaxRetries creates a new instance of Client with a given dataset api url and the relevant tokens, setting a number of max retires for the HTTP client

func NewWithHealthClient added in v1.24.0

func NewWithHealthClient(hcCli *healthcheck.Client) *Client

NewWithHealthClient creates a new instance of Client, reusing the URL and Clienter from the provided health check client.

func (*Client) Checker

func (c *Client) Checker(ctx context.Context, check *health.CheckState) error

Checker calls dataset api health endpoint and returns a check object to the caller.

func (*Client) Get

func (c *Client) Get(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, datasetID string) (m DatasetDetails, err error)

Get returns dataset level information for a given dataset id

func (*Client) GetByPath

func (c *Client) GetByPath(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, path string) (m DatasetDetails, err error)

GetByPath returns dataset level information for a given dataset path

func (*Client) GetDatasets

func (c *Client) GetDatasets(ctx context.Context, userAuthToken, serviceAuthToken, collectionID string) (m List, err error)

GetDatasets returns the list of datasets

func (*Client) GetEdition

func (c *Client) GetEdition(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, datasetID, edition string) (m Edition, err error)

GetEdition retrieves a single edition document from a given datasetID and edition label

func (*Client) GetEditions

func (c *Client) GetEditions(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, datasetID string) (m []Edition, err error)

GetEditions returns all editions for a dataset

func (*Client) GetInstance

func (c *Client) GetInstance(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, instanceID string) (m Instance, err error)

GetInstance returns an instance from the dataset api

func (*Client) GetInstanceBytes added in v1.7.0

func (c *Client) GetInstanceBytes(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, instanceID string) (b []byte, err error)

GetInstanceBytes returns an instance as bytes from the dataset api

func (*Client) GetInstanceDimensions added in v1.9.0

func (c *Client) GetInstanceDimensions(ctx context.Context, serviceAuthToken, instanceID string) (m Dimensions, err error)

GetInstanceDimensions performs a 'GET /instances/<id>/dimensions' and returns the marshalled Dimensions struct

func (*Client) GetInstanceDimensionsBytes added in v1.7.0

func (c *Client) GetInstanceDimensionsBytes(ctx context.Context, userAuthToken, serviceAuthToken, instanceID string) (b []byte, err error)

GetInstanceDimensionsBytes returns a list of dimensions for an instance as bytes from the dataset api

func (*Client) GetInstances added in v1.7.0

func (c *Client) GetInstances(ctx context.Context, userAuthToken, serviceAuthToken, collectionID string, vars url.Values) (m Instances, err error)

GetInstances returns a list of all instances filtered by vars

func (*Client) GetMetadataURL

func (c *Client) GetMetadataURL(id, edition, version string) string

GetMetadataURL returns the URL for the metadata of a given dataset id, edition and version

func (*Client) GetOptions

func (c *Client) GetOptions(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, id, edition, version, dimension string) (m Options, err error)

GetOptions will return the options for a dimension

func (*Client) GetVersion

func (c *Client) GetVersion(ctx context.Context, userAuthToken, serviceAuthToken, downloadServiceAuthToken, collectionID, datasetID, edition, version string) (m Version, err error)

GetVersion gets a specific version for an edition from the dataset api

func (*Client) GetVersionDimensions added in v1.9.0

func (c *Client) GetVersionDimensions(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, id, edition, version string) (m VersionDimensions, err error)

GetVersionDimensions will return a list of dimensions for a given version of a dataset

func (*Client) GetVersionMetadata

func (c *Client) GetVersionMetadata(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, id, edition, version string) (m Metadata, err error)

GetVersionMetadata returns the metadata for a given dataset id, edition and version

func (*Client) GetVersions

func (c *Client) GetVersions(ctx context.Context, userAuthToken, serviceAuthToken, downloadServiceAuthToken, collectionID, datasetID, edition string) (m []Version, err error)

GetVersions gets all versions for an edition from the dataset api

func (*Client) PostInstanceDimensions added in v1.6.0

func (c *Client) PostInstanceDimensions(ctx context.Context, serviceAuthToken, instanceID string, data OptionPost) error

PostInstanceDimensions performs a 'POST /instances/<id>/dimensions' with the provided OptionPost

func (*Client) PutInstanceData added in v1.6.0

func (c *Client) PutInstanceData(ctx context.Context, serviceAuthToken, instanceID string, data JobInstance) error

PutInstanceData executes a put request to update instance data via the dataset API.

func (*Client) PutInstanceDimensionOptionNodeID added in v1.9.0

func (c *Client) PutInstanceDimensionOptionNodeID(ctx context.Context, serviceAuthToken, instanceID, dimensionID, optionID, nodeID string) error

PutInstanceDimensionOptionNodeID performs a 'PUT /instances/<id>/dimensions/<id>/options/<id>/node_id/<id>' to update the node_id of the specified dimension

func (*Client) PutInstanceImportTasks added in v1.7.0

func (c *Client) PutInstanceImportTasks(ctx context.Context, serviceAuthToken, instanceID string, data InstanceImportTasks) error

PutInstanceImportTasks marks the import observation task state for an instance

func (*Client) PutInstanceState added in v1.7.0

func (c *Client) PutInstanceState(ctx context.Context, serviceAuthToken, instanceID string, state State) error

PutInstanceState performs a PUT '/instances/<id>' with the string representation of the provided state

func (*Client) PutVersion

func (c *Client) PutVersion(ctx context.Context, userAuthToken, serviceAuthToken, collectionID, datasetID, edition, version string, v Version) error

PutVersion update the version

func (*Client) UpdateInstanceWithNewInserts added in v1.7.0

func (c *Client) UpdateInstanceWithNewInserts(ctx context.Context, serviceAuthToken, instanceID string, observationsInserted int32) error

UpdateInstanceWithNewInserts increments the observation inserted count for an instance

type Contact

type Contact struct {
	Name      string `json:"name"`
	Telephone string `json:"telephone"`
	Email     string `json:"email"`
}

Contact represents a response model within a dataset

type Dataset

type Dataset struct {
	ID      string          `json:"id"`
	Next    *DatasetDetails `json:"next,omitempty"`
	Current *DatasetDetails `json:"current,omitempty"`
	DatasetDetails
}

Dataset represents a dataset resource

type DatasetDetails

type DatasetDetails struct {
	ID                string            `json:"id,omitempty"`
	CollectionID      string            `json:"collection_id,omitempty"`
	Contacts          *[]Contact        `json:"contacts,omitempty"`
	Description       string            `json:"description,omitempty"`
	Keywords          *[]string         `json:"keywords,omitempty"`
	License           string            `json:"license,omitempty"`
	Links             Links             `json:"links,omitempty"`
	Methodologies     *[]Methodology    `json:"methodologies,omitempty"`
	NationalStatistic bool              `json:"national_statistic,omitempty"`
	NextRelease       string            `json:"next_release,omitempty"`
	Publications      *[]Publication    `json:"publications,omitempty"`
	Publisher         *Publisher        `json:"publisher,omitempty"`
	QMI               Publication       `json:"qmi,omitempty"`
	RelatedDatasets   *[]RelatedDataset `json:"related_datasets,omitempty"`
	ReleaseFrequency  string            `json:"release_frequency,omitempty"`
	State             string            `json:"state,omitempty"`
	Theme             string            `json:"theme,omitempty"`
	Title             string            `json:"title,omitempty"`
	UnitOfMeasure     string            `json:"unit_of_measure,omitempty"`
	URI               string            `json:"uri,omitempty"`
	UsageNotes        *[]UsageNote      `json:"usage_notes,omitempty"`
}

DatasetDetails represents a response dataset model from the dataset api

type Dimension

type Dimension struct {
	DimensionID string `json:"dimension"`
	InstanceID  string `json:"instance_id"`
	NodeID      string `json:"node_id,omitempty"`
	Label       string `json:"label"`
	Option      string `json:"option"`
	Links       Links  `json:"links"`
}

Dimension represents a response model for a dimension endpoint

type Dimensions

type Dimensions struct {
	Items []Dimension `json:"items"`
}

Dimensions represents a list of dimensions

type Download

type Download struct {
	URL     string `json:"href"`
	Size    string `json:"size"`
	Public  string `json:"public,omitempty"`
	Private string `json:"private,omitempty"`
}

Download represents a version download from the dataset api

type DownloadList

type DownloadList struct {
	CSV  *Download `bson:"csv,omitempty" json:"csv,omitempty"`
	CSVW *Download `bson:"csvw,omitempty" json:"csvw,omitempty"`
	XLS  *Download `bson:"xls,omitempty" json:"xls,omitempty"`
}

DownloadList represents a list of objects of containing information on the downloadable files

type Edition

type Edition struct {
	Edition string `json:"edition"`
	ID      string `json:"id"`
	Links   Links  `json:"links"`
	State   string `json:"state"`
}

Edition represents an edition within a dataset

type ErrInvalidDatasetAPIResponse

type ErrInvalidDatasetAPIResponse struct {
	// contains filtered or unexported fields
}

ErrInvalidDatasetAPIResponse is returned when the dataset api does not respond with a valid status

func NewDatasetAPIResponse

func NewDatasetAPIResponse(resp *http.Response, uri string) (e *ErrInvalidDatasetAPIResponse)

NewDatasetAPIResponse creates an error response, optionally adding body to e when status is 404

func (ErrInvalidDatasetAPIResponse) Code

Code returns the status code received from dataset api if an error is returned

func (ErrInvalidDatasetAPIResponse) Error

Error should be called by the user to print out the stringified version of the error

type ImportObservationsTask added in v1.7.0

type ImportObservationsTask struct {
	State                string `json:"state,omitempty"`
	InsertedObservations int64  `json:"total_inserted_observations,omitempty"`
}

ImportObservationsTask represents the task of importing instance observation data into the database.

type Instance

type Instance struct {
	Version
}

Instance represents an instance within a dataset

type InstanceImportTasks added in v1.7.0

type InstanceImportTasks struct {
	ImportObservations    *ImportObservationsTask `json:"import_observations"`
	BuildHierarchyTasks   []*BuildHierarchyTask   `json:"build_hierarchies"`
	BuildSearchIndexTasks []*BuildSearchIndexTask `json:"build_search_indexes"`
}

InstanceImportTasks represents all of the tasks required to complete an import job.

type Instances added in v1.7.0

type Instances struct {
	Items []Instance `json:"items"`
}

Instances represent a list of Instance objects

type JobInstance added in v1.6.0

type JobInstance struct {
	HeaderNames          []string `json:"headers"`
	NumberOfObservations int      `json:"total_observations"`
}

JobInstance represents the details necessary to update (PUT) a job instance

type Link struct {
	URL string `json:"href"`
	ID  string `json:"id,omitempty"`
}

Link represents a single link within a dataset model

type Links struct {
	AccessRights  Link `json:"access_rights,omitempty"`
	Dataset       Link `json:"dataset,omitempty"`
	Dimensions    Link `json:"dimensions,omitempty"`
	Edition       Link `json:"edition,omitempty"`
	Editions      Link `json:"editions,omitempty"`
	LatestVersion Link `json:"latest_version,omitempty"`
	Versions      Link `json:"versions,omitempty"`
	Self          Link `json:"self,omitempty"`
	CodeList      Link `json:"code_list,omitempty"`
	Options       Link `json:"options,omitempty"`
	Version       Link `json:"version,omitempty"`
	Code          Link `json:"code,omitempty"`
	Taxonomy      Link `json:"taxonomy,omitempty"`
	Job           Link `json:"job,omitempty"`
}

Links represent the Links within a dataset model

type List

type List struct {
	Items []Dataset `json:"items"`
}

List represents an object containing a list of datasets

type Metadata

type Metadata struct {
	Version
	DatasetDetails
}

Metadata is a combination of version and dataset model fields

func (Metadata) ToString

func (m Metadata) ToString() string

ToString builds a string of metadata information

type Methodology

type Methodology struct {
	Description string `json:"description"`
	URL         string `json:"href"`
	Title       string `json:"title"`
}

Methodology represents a methodology document returned by the dataset api

type Option

type Option struct {
	DimensionID string `json:"dimension"`
	Label       string `json:"label"`
	Links       Links  `json:"links"`
	Option      string `json:"option"`
}

Option represents a response model for an option

type OptionPost added in v1.6.0

type OptionPost struct {
	Code     string `json:"code"`
	CodeList string `json:"code_list,omitempty"`
	Label    string `json:"label"`
	Name     string `json:"dimension"`
	Option   string `json:"option"`
}

OptionPost represents an option model to store in the dataset api

type Options

type Options struct {
	Items []Option `json:"items"`
}

Options represents a list of options from the dataset api

func (Options) String

func (m Options) String() string

type Publication

type Publication struct {
	Description string `json:"description"`
	URL         string `json:"href"`
	Title       string `json:"title"`
}

Publication represents a publication document returned by the dataset api

type Publisher

type Publisher struct {
	URL  string `json:"href"`
	Name string `json:"name"`
	Type string `json:"type"`
}

Publisher represents the publisher within the dataset

type RelatedDataset

type RelatedDataset struct {
	URL   string `json:"href"`
	Title string `json:"title"`
}

RelatedDataset represents a related dataset document returned by the dataset api

type State added in v1.7.0

type State int

State - iota enum of possible states

const (
	StateCreated State = iota
	StateSubmitted
	StateCompleted        // Instances only
	StateFailed           // Instances only
	StateEditionConfirmed // instances and versions only
	StateAssociated       // not editions
	StatePublished
)

Possible values for a State of the resource. It can only be one of the following: TODO these states should be enforced in all the 'POST' and 'PUT' operations that can modify states of resources

func (State) String added in v1.7.0

func (s State) String() string

String returns the string representation of a state

type Temporal

type Temporal struct {
	StartDate string `json:"start_date"`
	EndDate   string `json:"end_date"`
	Frequency string `json:"frequency"`
}

Temporal represents a temporal returned by the dataset api

type UsageNote

type UsageNote struct {
	Note  string `json:"note,omitempty"`
	Title string `json:"title,omitempty"`
}

UsageNote represents a note containing extra information associated to the resource

type Version

type Version struct {
	Alerts               *[]Alert             `json:"alerts"`
	CollectionID         string               `json:"collection_id"`
	Downloads            map[string]Download  `json:"downloads"`
	Edition              string               `json:"edition"`
	Dimensions           []VersionDimension   `json:"dimensions"`
	ID                   string               `json:"id"`
	InstanceID           string               `json:"instance_id"`
	LatestChanges        []Change             `json:"latest_changes"`
	Links                Links                `json:"links,omitempty"`
	ReleaseDate          string               `json:"release_date"`
	State                string               `json:"state"`
	Temporal             []Temporal           `json:"temporal"`
	Version              int                  `json:"version"`
	NumberOfObservations int64                `json:"total_observations,omitempty"`
	ImportTasks          *InstanceImportTasks `json:"import_tasks,omitempty"`
	CSVHeader            []string             `json:"headers,omitempty"`
}

Version represents a version within a dataset

type VersionDimension added in v1.9.0

type VersionDimension struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Links       Links  `json:"links"`
	Description string `json:"description"`
	Label       string `json:"label"`
	URL         string `json:"href,omitempty"`
}

VersionDimension represents a dimension model nested in the Version model

type VersionDimensionItems added in v1.9.0

type VersionDimensionItems []VersionDimension

VersionDimensionItems represents a list of Version Dimensions

func (VersionDimensionItems) Len added in v1.9.0

func (d VersionDimensionItems) Len() int

func (VersionDimensionItems) Less added in v1.9.0

func (d VersionDimensionItems) Less(i, j int) bool

func (VersionDimensionItems) Swap added in v1.9.0

func (d VersionDimensionItems) Swap(i, j int)

type VersionDimensions added in v1.9.0

type VersionDimensions struct {
	Items VersionDimensionItems `json:"items"`
}

VersionDimensions represent a list of versionDimension

Jump to

Keyboard shortcuts

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