sdk

package
v1.94.0 Latest Latest
Warning

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

Go to latest
Published: Jan 13, 2026 License: MIT Imports: 21 Imported by: 9

README

dp-dataset-api SDK

Overview

This SDK provides a client for interacting with the dp-dataset-api. It is intended to be consumed by services that require endpoints from the dp-dataset-api. It also provides healthcheck functionality, mocks and structs for easy integration and testing.

Available client methods

Name Description
Checker Calls the health.Client's Checker method
Health Returns the underlying Healthcheck Client for this API client
URL returns the URL used by this client
GetDataset Returns dataset level information for a given dataset id
GetDatasetCurrentAndNext Returns dataset level information but contains both next and current documents
GetDatasetByPath Returns dataset level information for a given dataset path
GetDatasetEditions Returns a list of dataset series that have unpublished versions or match the given state
GetDatasets Returns the list of datasets
GetDatasetsInBatches Returns a list of datasets in concurrent batches and accumulates the results
CreateDataset Creates a new dataset
GetEdition Retrieves a single edition document from a given datasetID and edition
GetEditions Returns a paginated list of editions for a dataset
GetVersion Retrieves a specific version for an edition of a dataset
GetVersionV2 Same as GetVersion but expects ErrorResponse return error type
GetVersionDimensions Returns a list of dimensions for a given version of a dataset
GetVersionDimensionOptions Returns the options for a dimension
GetVersionMetadata Returns the metadata for a given dataset id, edition and version
GetVersionWithHeaders gets a specific version for an edition from the dataset api and additional response headers (ETag)
GetVersions Returns a paginated list of versions for an edition
GetVersionsInBatches Returns a list of dataset versions in concurrent batches and accumulates the results
PutDataset Update the dataset
PutInstance Updates an instance
PutMetadata Updates the dataset and the version metadata
PutVersion Updates a specific version for a dataset series
PutVersionState Updates the state of a specific version for a dataset series
PostVersion Creates a specific version for a dataset series

Instantiation

Example using New:

package main

import "github.com/ONSdigital/dp-dataset-api/sdk"

func main() {
    client := sdk.New("http://localhost:22000")
}

Example using NewWithHealthClient:

package main

import (
    "github.com/ONSdigital/dp-api-clients-go/v2/health"
    "github.com/ONSdigital/dp-dataset-api/sdk"
)

func main() {
    existingHealthClient := health.NewClient("existing-service-name", "http://localhost:8080")

    client := sdk.NewWithHealthClient(existingHealthClient)
}

Example usage of client

This example demonstrates how the GetDataset() function could be used:

package main

import (
    "context"

    "github.com/ONSdigital/dp-dataset-api/sdk"
)

func main() {
    client := sdk.New("http://localhost:22000")

    // Set headers if you want the request to be authenticated
    headers := sdk.Headers{
        AccessToken: "example-service-token",
    }

    dataset, err := client.GetDataset(context.Background(), headers, "dataset-id")
    if err != nil {
        // Log the error and handle based on error message
    }

    // dataset object can be used as needed...
}

Available functionality

Checker
import "github.com/ONSdigital/dp-healthcheck/healthcheck"

check := &healthcheck.CheckState{}
err := client.Checker(ctx, check)
Health
healthClient := client.Health()
URL
url := client.URL()
GetDataset
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

dataset, err := client.GetDataset(ctx, headers, "dataset-id")
GetDatasetByPath
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

dataset, err := client.GetDatasetByPath(ctx, headers, "/path/to/dataset")
GetDatasetCurrentAndNext
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Required as this function returns the DatasetUpdate model which is specific to authorised users
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

dataset, err := client.GetDatasetCurrentAndNext(ctx, headers, "dataset-id")
GetDatasetEditions
import "github.com/ONSdigital/dp-dataset-api/sdk"

headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

queryParams := &sdk.QueryParams{
    Limit:  10,
    Offset: 5,
}

datasetEditions, err := client.GetDatasetEditions(ctx, headers, queryParams)
GetDatasets
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Required as this function returns thea list with items containing the DatasetUpdate model which is specific to authorised users
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

queryParams := &sdk.QueryParams{
    Limit:  10,
    Offset: 5,
}

datasets, err := client.GetDatasets(ctx, headers, queryParams)
GetDatasetsInBatches
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Required as this function returns thea list with items containing the DatasetUpdate model which is specific to authorised users
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

datasets, err := client.GetDatasetsInBatches(ctx, headers, 10, 2)
CreateDataset
import (
    "github.com/ONSdigital/dp-dataset-api/models"
    "github.com/ONSdigital/dp-dataset-api/sdk"
)

headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

datasetToCreate := models.Dataset{
    ID:    "my-dataset-id",
    Title: "Title of this Dataset",
    // populate other required fields as required
}

createdDataset, err := client.CreateDataset(ctx, headers, datasetToCreate)
GetEdition
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

edition, err := client.GetEdition(ctx, headers, "dataset-id", "edition-id")
GetEditions
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    ServiceToken: "example-auth-token",
}

queryParams := &sdk.QueryParams{
    Limit:  10,
    Offset: 5,
}

editions, err := client.GetEditions(ctx, headers, "dataset-id", queryParams)
GetVersion
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

version, err := client.GetVersion(ctx, headers, "dataset-id", "edition-id", "1")
GetVersionWithHeaders
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

version, err := client.GetVersionWithHeaders(ctx, headers, "dataset-id", "edition-id", "1")
GetVersionV2
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

version, err := client.GetVersionV2(ctx, headers, "dataset-id", "edition-id", "1")
GetVersionDimensions
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

versionDimensions, err := client.GetVersionDimensions(ctx, headers, "dataset-id", "edition-id", "1")
GetVersionDimensionOptions
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

queryParams := &sdk.QueryParams{
    Limit:  10,
    Offset: 5,
}

versionDimensionOptionsList, err := client.GetVersionDimensionOptions(ctx, headers, "dataset-id", "edition-id", "1", "dimension-id", queryParams)
GetVersionMetadata
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

versionMetadata, err := client.GetVersionMetadata(ctx, headers, "dataset-id", "edition-id", "1")
GetVersions
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    ServiceToken: "example-auth-token",
}

queryParams := &sdk.QueryParams{
    Limit:  10,
    Offset: 5,
}

versions, err := client.GetVersions(ctx, headers, "dataset-id", "edition-id", queryParams)
GetVersionsInBatches
import "github.com/ONSdigital/dp-dataset-api/sdk"

// Optional to get unpublished data
headers := sdk.Headers{
    ServiceToken: "example-auth-token",
}

versions, err := client.GetVersionsInBatches(ctx, headers, "dataset-id", "edition-id", 10, 2)
PutDataset
import (
    "github.com/ONSdigital/dp-dataset-api/models"
    "github.com/ONSdigital/dp-dataset-api/sdk"
)

headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

datasetToUpdate := models.Dataset{
    Type: models.Static.String(),
    Description: "this is a dataset",
    // populate other required fields as required
}

err := client.PutDataset(ctx, headers, "dataset-id", datasetToupdate)
PutInstance
import (
    "github.com/ONSdigital/dp-dataset-api/models"
    "github.com/ONSdigital/dp-dataset-api/sdk"
)

headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

instanceToUpdate := models.UpdateInstance{
    Type: models.CantabularFlexibleTable.String(),
    Edition: "time-series",
    // populate other required fields as required
}

returnedETag, err := client.PutInstance(ctx, headers, "instance-id", instanceToUpdate, "etag-value")
PutMetadata
import (
    "github.com/ONSdigital/dp-dataset-api/models"
    "github.com/ONSdigital/dp-dataset-api/sdk"
)

headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

metadataToUpdate := models.EditableMetadata{
    Title: "The dataset title",
    Description: "A description of the dataset",
    // populate other required fields as required
}

err := client.PutMetadata(ctx, headers, "dataset-id", "edition-id", "1", metadataToUpdate, "etag-value")
PutVersion
import (
    "github.com/ONSdigital/dp-dataset-api/models"
    "github.com/ONSdigital/dp-dataset-api/sdk"
)

headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

versionToUpdate := models.Version{
    Type: models.Static.String(),
    EditionTitle: "Updated Edition Title",
    // populate other required fields as required
}

updatedVersion, err := client.PutVersion(ctx, headers, "dataset-id", "edition-id", "1", versionToUpdate)
PutVersionState
import (
    "github.com/ONSdigital/dp-dataset-api/models"
    "github.com/ONSdigital/dp-dataset-api/sdk"
)

headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

// Example to change to "approved" state
err := client.PutVersionState(ctx, headers, "dataset-id", "edition-id", "1", models.ApprovedState)
PostVersion
import "github.com/ONSdigital/dp-dataset-api/sdk"

headers := sdk.Headers{
    AccessToken: "example-auth-token",
}

versionToCreate := models.Version{
    Type:         models.Static.String(),
    Edition:      "edition-id",
    EditionTitle: "Edition Title",
    // populate other required fields as required
}

createdVersion, err := client.PostVersion(ctx, headers, "dataset-id", "edition-id", "1", versionToCreate)

Additional Information

Errors

The dataset-api has multiple formats of which errors can be returned such as a plaintext string or a more informative ErrorResponse. The SDK will return an error object which will contain the string of the error returned from the API. This could be used to string search for a specific status code or message for handling within an external service.

Headers

The Headers struct allows the user to provide an Authorization header if required. This is shown in the Example usage of client section. The "Bearer " prefix will be added automatically.

This also provides options to add other headers such as Collection-Id and X-Download-Service-Token.

QueryParams

The QueryParams struct allows the user to provide query parameters if required. This is shown in the GetVersions example. The options include IDs, IsBasedOn, State, Limit and Offset.

Mocks

To simplify testing, all functions provided by the client have been defined in the Clienter interface. This allows the user to use auto-generated mocks within unit tests.

Example of how to define a mock clienter:

import (
    "context"
    "testing"

    "github.com/ONSdigital/dp-dataset-api/models"
    "github.com/ONSdigital/dp-dataset-api/sdk"
    "github.com/ONSdigital/dp-dataset-api/sdk/mocks"
)

func Test(t *testing.T) {
    mockClient := mocks.ClienterMock{
        GetDatasetFunc: func(ctx context.Context, headers sdk.Headers, datasetID string) (models.Dataset, error) {
            // Setup mock behaviour here
            return models.Dataset{}, nil
        },
        // Other methods can be mocked if needed
    }
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrHeaderNotFound returned if the requested header is not present in the provided request
	ErrHeaderNotFound = errors.New("header not found")

	// ErrValueEmpty returned if an empty value is passed when a non-empty value is required
	ErrValueEmpty = errors.New("header not set as value was empty")

	// ErrRequestNil return if SetX header function is called with a nil request
	ErrRequestNil = errors.New("error setting request header request was nil")

	// ErrResponseNil return if GetResponseX header function is called with a nil response
	ErrResponseNil = errors.New("error getting request header, response was nil")
)

Functions

This section is empty.

Types

type Client

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

func New

func New(datasetAPIUrl string) *Client

New creates a new instance of Client for the service

func NewWithHealthClient

func NewWithHealthClient(hcCli *health.Client) *Client

NewWithHealthClient creates a new instance of service API Client, reusing the URL and Clienter from the provided healthcheck client

func (*Client) Checker

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

Checker calls the health.Client's Checker method

func (*Client) CreateDataset added in v1.92.0

func (c *Client) CreateDataset(ctx context.Context, headers Headers, dataset models.Dataset) (models.DatasetUpdate, error)

CreateDataset creates a new dataset by posting to the POST /datasets endpoint

func (*Client) GetDataset added in v1.76.0

func (c *Client) GetDataset(ctx context.Context, headers Headers, datasetID string) (dataset models.Dataset, err error)

Get returns dataset level information for a given dataset id

func (*Client) GetDatasetByPath added in v1.76.0

func (c *Client) GetDatasetByPath(ctx context.Context, headers Headers, path string) (dataset models.Dataset, err error)

GetDatasetByPath returns dataset level information for a given dataset path

func (*Client) GetDatasetCurrentAndNext added in v1.92.0

func (c *Client) GetDatasetCurrentAndNext(ctx context.Context, headers Headers, datasetID string) (dataset models.DatasetUpdate, err error)

GetDatasetCurrentAndNext returns dataset level information but contains both next and current documents

func (*Client) GetDatasetEditions added in v1.82.0

func (c *Client) GetDatasetEditions(ctx context.Context, headers Headers, queryParams *QueryParams) (datasetEditionsList DatasetEditionsList, err error)

GetDatasetEditions returns a list of dataset series that have unpublished versions or match the given state

func (*Client) GetDatasets added in v1.92.0

func (c *Client) GetDatasets(ctx context.Context, headers Headers, q *QueryParams) (datasets DatasetsList, err error)

GetDatasets returns the list of datasets

func (*Client) GetDatasetsInBatches added in v1.92.0

func (c *Client) GetDatasetsInBatches(ctx context.Context, headers Headers, batchSize, maxWorkers int) (datasets DatasetsList, err error)

GetDatasetsInBatches retrieves a list of datasets in concurrent batches and accumulates the results

func (*Client) GetEdition added in v1.76.0

func (c *Client) GetEdition(ctx context.Context, headers Headers, datasetID, editionID string) (edition models.Edition, err error)

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

func (*Client) GetEditions added in v1.76.0

func (c *Client) GetEditions(ctx context.Context, headers Headers, datasetID string, queryParams *QueryParams) (editionList EditionsList, err error)

GetEditions returns a paginated list of editions for a dataset

func (*Client) GetVersion

func (c *Client) GetVersion(ctx context.Context, headers Headers, datasetID, editionID, versionID string) (version models.Version, err error)

GetVersion retrieves a specific version for an edition of a dataset

func (*Client) GetVersionDimensionOptions added in v1.75.0

func (c *Client) GetVersionDimensionOptions(ctx context.Context, headers Headers, datasetID, editionID, versionID, dimensionID string, queryParams *QueryParams) (versionDimensionOptionsList VersionDimensionOptionsList, err error)

Returns the options for a dimension

func (*Client) GetVersionDimensions added in v1.75.0

func (c *Client) GetVersionDimensions(ctx context.Context, headers Headers, datasetID, editionID, versionID string) (versionDimensionsList VersionDimensionsList, err error)

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

func (*Client) GetVersionMetadata added in v1.75.0

func (c *Client) GetVersionMetadata(ctx context.Context, headers Headers, datasetID, editionID, versionID string) (metadata models.Metadata, err error)

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

func (*Client) GetVersionV2 added in v1.84.0

func (c *Client) GetVersionV2(ctx context.Context, headers Headers, datasetID, editionID, versionID string) (version models.Version, err error)

GetVersionV2 does the same as GetVersion but uses unmarshalResponseBodyExpectingErrorResponseV2

func (*Client) GetVersionWithHeaders added in v1.92.0

func (c *Client) GetVersionWithHeaders(ctx context.Context, headers Headers, datasetID, edition, version string) (v models.Version, h ResponseHeaders, err error)

GetVersionWithHeaders gets a specific version for an edition from the dataset api and additional response headers

func (*Client) GetVersionWithResponse added in v1.92.0

func (c *Client) GetVersionWithResponse(ctx context.Context, headers Headers, datasetID, edition, versionID string) (v models.Version, resp *http.Response, err error)

Returns the full response so the etag in the header can be processed and returned

func (*Client) GetVersions added in v1.75.0

func (c *Client) GetVersions(ctx context.Context, headers Headers, datasetID, editionID string, queryParams *QueryParams) (versionsList VersionsList, err error)

GetVersions returns a paginated list of versions for an edition

func (*Client) GetVersionsInBatches added in v1.92.0

func (c *Client) GetVersionsInBatches(ctx context.Context, headers Headers, datasetID, edition string, batchSize, maxWorkers int) (versions VersionsList, err error)

GetVersionsInBatches retrieves a list of datasets in concurrent batches and accumulates the results

func (*Client) Health

func (c *Client) Health() *health.Client

Health returns the underlying Healthcheck Client for this API client

func (*Client) PostVersion added in v1.91.0

func (c *Client) PostVersion(ctx context.Context, headers Headers, datasetID, editionID, versionID string, version models.Version) (createdVersion *models.Version, err error)

PostVersion creates a specific version for a dataset series

func (*Client) PutDataset added in v1.92.0

func (c *Client) PutDataset(ctx context.Context, headers Headers, datasetID string, d models.Dataset) error

PutDataset update the dataset

func (*Client) PutInstance added in v1.92.0

func (c *Client) PutInstance(ctx context.Context, headers Headers, instanceID string, i UpdateInstance, ifMatch string) (eTag string, err error)

PutInstance updates an instance

func (*Client) PutMetadata added in v1.92.0

func (c *Client) PutMetadata(ctx context.Context, headers Headers, datasetID, edition, version string, metadata models.EditableMetadata, versionEtag string) error

PutMetadata updates the dataset and the version metadata

func (*Client) PutVersion added in v1.86.0

func (c *Client) PutVersion(ctx context.Context, headers Headers, datasetID, editionID, versionID string, version models.Version) (updatedVersion models.Version, err error)

PutVersion updates a specific version for a dataset series

func (*Client) PutVersionState added in v1.81.2

func (c *Client) PutVersionState(ctx context.Context, headers Headers, datasetID, editionID, versionID, state string) (err error)

PutVersionState updates the state of a specific version for a dataset series

func (*Client) URL

func (c *Client) URL() string

URL returns the URL used by this client

type Clienter added in v1.81.0

type Clienter interface {
	Checker(ctx context.Context, check *healthcheck.CheckState) error
	Health() *health.Client
	URL() string

	CreateDataset(ctx context.Context, headers Headers, dataset models.Dataset) (datasetUpdate models.DatasetUpdate, err error)
	GetDataset(ctx context.Context, headers Headers, datasetID string) (dataset models.Dataset, err error)
	GetDatasetByPath(ctx context.Context, headers Headers, path string) (dataset models.Dataset, err error)
	GetDatasetCurrentAndNext(ctx context.Context, headers Headers, datasetID string) (dataset models.DatasetUpdate, err error)
	GetDatasetEditions(ctx context.Context, headers Headers, queryParams *QueryParams) (datasetEditionsList DatasetEditionsList, err error)
	GetDatasets(ctx context.Context, headers Headers, q *QueryParams) (datasets DatasetsList, err error)
	GetDatasetsInBatches(ctx context.Context, headers Headers, batchSize, maxWorkers int) (datasets DatasetsList, err error)
	GetEdition(ctx context.Context, headers Headers, datasetID, editionID string) (edition models.Edition, err error)
	GetEditions(ctx context.Context, headers Headers, datasetID string, queryParams *QueryParams) (editionList EditionsList, err error)
	GetVersion(ctx context.Context, headers Headers, datasetID, editionID, versionID string) (version models.Version, err error)
	GetVersionDimensions(ctx context.Context, headers Headers, datasetID, editionID, versionID string) (versionDimensionsList VersionDimensionsList, err error)
	GetVersionDimensionOptions(ctx context.Context, headers Headers, datasetID, editionID, versionID, dimensionID string, queryParams *QueryParams) (versionDimensionOptionsList VersionDimensionOptionsList, err error)
	GetVersionMetadata(ctx context.Context, headers Headers, datasetID, editionID, versionID string) (metadata models.Metadata, err error)
	GetVersionWithHeaders(ctx context.Context, headers Headers, datasetID, edition, version string) (v models.Version, h ResponseHeaders, err error)
	GetVersionWithResponse(ctx context.Context, headers Headers, datasetID, edition, versionID string) (v models.Version, resp *http.Response, err error)
	GetVersions(ctx context.Context, headers Headers, datasetID, editionID string, queryParams *QueryParams) (versionsList VersionsList, err error)
	GetVersionsInBatches(ctx context.Context, headers Headers, datasetID, edition string, batchSize, maxWorkers int) (versions VersionsList, err error)
	PostVersion(ctx context.Context, headers Headers, datasetID, editionID, versionID string, version models.Version) (createdVersion *models.Version, err error)
	PutDataset(ctx context.Context, headers Headers, datasetID string, d models.Dataset) error
	PutInstance(ctx context.Context, headers Headers, instanceID string, i UpdateInstance, ifMatch string) (eTag string, err error)
	PutMetadata(ctx context.Context, headers Headers, datasetID, edition, version string, metadata models.EditableMetadata, versionEtag string) error
	PutVersion(ctx context.Context, headers Headers, datasetID, editionID, versionID string, version models.Version) (updatedVersion models.Version, err error)
	PutVersionState(ctx context.Context, headers Headers, datasetID, editionID, versionID, state string) (err error)
}

type DatasetEditionsList added in v1.82.0

type DatasetEditionsList struct {
	Items      []models.DatasetEdition `json:"items"`
	Count      int                     `json:"count"`
	Offset     int                     `json:"offset"`
	Limit      int                     `json:"limit"`
	TotalCount int                     `json:"total_count"`
}

DatasetEditionsList represents an object containing a list of paginated dataset editions. This struct is based on the `pagination.page` struct which is returned when we call the `api.getDatasetEditions` endpoint

type DatasetsBatchProcessor added in v1.92.0

type DatasetsBatchProcessor func(DatasetsList) (abort bool, err error)

DatasetsBatchProcessor is the type corresponding to a batch processing function for a dataset List.

type DatasetsList added in v1.92.0

type DatasetsList struct {
	Items      []models.DatasetUpdate `json:"items"`
	Count      int                    `json:"count"`
	Offset     int                    `json:"offset"`
	Limit      int                    `json:"limit"`
	TotalCount int                    `json:"total_count"`
}

List represents an object containing a list of datasets

type EditionsList added in v1.76.0

type EditionsList struct {
	Items      []models.Edition `json:"items"`
	Count      int              `json:"count"`
	Offset     int              `json:"offset"`
	Limit      int              `json:"limit"`
	TotalCount int              `json:"total_count"`
}

EditionList represents an object containing a list of paginated versions. This struct is based on the `pagination.page` struct which is returned when we call the `api.getEditions` endpoint

type ErrInvalidDatasetAPIResponse added in v1.92.0

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

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

func (ErrInvalidDatasetAPIResponse) Code added in v1.92.0

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

func (ErrInvalidDatasetAPIResponse) Error added in v1.92.0

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

type GenericBatchGetter added in v1.92.0

type GenericBatchGetter func(offset int) (batch interface{}, totalCount int, eTag string, err error)

GenericBatchGetter defines the method signature for a batch getter to obtain a batch of some generic resource

type GenericBatchProcessor added in v1.92.0

type GenericBatchProcessor func(batch interface{}, batchETag string) (abort bool, err error)

GenericBatchProcessor defines the method signature for a batch processor to process a batch of some generic resource

type Headers added in v1.75.0

type Headers struct {
	CollectionID         string
	DownloadServiceToken string
	AccessToken          string // could be user or service token for auth v2
}

Contains the headers to be added to any request

type QueryParams added in v1.75.0

type QueryParams struct {
	IDs       []string
	IsBasedOn string
	State     string
	Limit     int
	Offset    int
}

QueryParams represents the possible query parameters that a caller can provide

func (*QueryParams) Validate added in v1.75.0

func (q *QueryParams) Validate() error

Validate validates tht no negative values are provided for limit or offset, and that the length of IDs is lower than the maximum

type ResponseHeaders added in v1.92.0

type ResponseHeaders struct {
	ETag string
}

ResponseHedaers represents headers that are available in the HTTP response

type UpdateInstance added in v1.92.0

type UpdateInstance struct {
	Alerts               *[]models.Alert             `json:"alerts"`
	CollectionID         string                      `json:"collection_id"`
	Downloads            models.DownloadList         `json:"downloads"`
	Edition              string                      `json:"edition"`
	Dimensions           []models.Dimension          `json:"dimensions"`
	ID                   string                      `json:"id"`
	InstanceID           string                      `json:"instance_id"`
	LatestChanges        []models.LatestChange       `json:"latest_changes"`
	ReleaseDate          string                      `json:"release_date"`
	State                string                      `json:"state"`
	Temporal             []models.TemporalFrequency  `json:"temporal"`
	Version              int                         `json:"version"`
	NumberOfObservations int64                       `json:"total_observations,omitempty"`
	ImportTasks          *models.InstanceImportTasks `json:"import_tasks,omitempty"`
	CSVHeader            []string                    `json:"headers,omitempty"`
	Type                 string                      `json:"type,omitempty"`
	IsBasedOn            *models.IsBasedOn           `json:"is_based_on,omitempty"`
}

type VersionDimensionOptionsList added in v1.75.0

type VersionDimensionOptionsList struct {
	Items []models.PublicDimensionOption
}

VersionDimensionOptionsList represent a list of PublicDimensionOption

func (VersionDimensionOptionsList) ToString added in v1.79.0

func (m VersionDimensionOptionsList) ToString() string

type VersionDimensionsList added in v1.75.0

type VersionDimensionsList struct {
	Items []models.Dimension
}

VersionDimensionsList represent a list of Dimension

type VersionsBatchProcessor added in v1.92.0

type VersionsBatchProcessor func(VersionsList) (abort bool, err error)

VersionsBatchProcessor is the type corresponding to a batch processing function for a dataset List.

type VersionsList added in v1.75.0

type VersionsList struct {
	Items      []models.Version `json:"items"`
	Count      int              `json:"count"`
	Offset     int              `json:"offset"`
	Limit      int              `json:"limit"`
	TotalCount int              `json:"total_count"`
}

VersionsList represents an object containing a list of paginated versions. This struct is based on the `pagination.page` struct which is returned when we call the `api.getVersions` endpoint

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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