cwmsjs
Version:
CWMS Data API Library for JavaScript/TypeScript created with OpenAPI generator for use with browser webapps
205 lines (195 loc) • 6.82 kB
text/typescript
/* tslint:disable */
/* eslint-disable */
/**
* CWMS Data API
* CWMS REST API for Data Retrieval
*
* The version of the OpenAPI document: 2.4.0-2026.3.16
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
import { exists, mapValues } from '../runtime';
import {
TimeSeriesColumn,
TimeSeriesColumnFromJSON,
TimeSeriesColumnFromJSONTyped,
TimeSeriesColumnToJSON,
} from './TimeSeriesColumn';
import {
TimeSeriesInterval,
TimeSeriesIntervalFromJSON,
TimeSeriesIntervalFromJSONTyped,
TimeSeriesIntervalToJSON,
} from './TimeSeriesInterval';
import {
VerticalDatumInfo,
VerticalDatumInfoFromJSON,
VerticalDatumInfoFromJSONTyped,
VerticalDatumInfoToJSON,
} from './VerticalDatumInfo';
/**
*
* @export
* @interface TimeSeries
*/
export interface TimeSeries {
/**
* The requested start time of the data, in ISO-8601 format with offset and timezone ('yyyy-MM-dd'T'HH:mm:ssZ'['VV']'')
* @type {Date}
* @memberof TimeSeries
*/
readonly begin?: Date;
/**
* Version type specifies the type of timeseries response to be received. Can be max aggregate or single version. Max aggregate cannot be run if version date field is specified.
* @type {string}
* @memberof TimeSeries
*/
dateVersionType?: TimeSeriesDateVersionTypeEnum;
/**
* The requested end time of the data, in ISO-8601 format with offset and timezone ('yyyy-MM-dd'T'HH:mm:ssZ'['VV']'')
* @type {Date}
* @memberof TimeSeries
*/
readonly end?: Date;
/**
*
* @type {TimeSeriesInterval}
* @memberof TimeSeries
*/
interval?: TimeSeriesInterval;
/**
* Offset from top of interval
* @type {number}
* @memberof TimeSeries
*/
readonly intervalOffset?: number;
/**
* Time-series name
* @type {string}
* @memberof TimeSeries
*/
name?: string;
/**
* The cursor to the next page of data; null if there is no more data
* @type {string}
* @memberof TimeSeries
*/
readonly nextPage?: string;
/**
* Office ID that owns the time-series
* @type {string}
* @memberof TimeSeries
*/
officeId?: string;
/**
* The cursor to the current page of data
* @type {string}
* @memberof TimeSeries
*/
readonly page?: string;
/**
* The number of records fetched per-page; this may be larger than the number of records actually retrieved
* @type {number}
* @memberof TimeSeries
*/
readonly pageSize?: number;
/**
* Only on 21.1.1 Database. The timezone the Interval Offset is from.
* @type {string}
* @memberof TimeSeries
*/
readonly timeZone?: string;
/**
* The total number of records retrieved; null or not present if not supported or unknown
* @type {number}
* @memberof TimeSeries
*/
readonly total?: number;
/**
* The units of the time series data
* @type {string}
* @memberof TimeSeries
*/
units: string;
/**
* The columns of the time-series data array returned, this property is used to describe the data structure of the records array. Contains [name, ordinal, datatype]. Name corresponds to the variable described by the data, ordinal is the order of the column in the data value array returned (starts at index 1), and datatype is the class name of the data type for the variable. Since the records array can be of variable length, the column index value is used to identify the position of the data in the array.
* @type {Array<TimeSeriesColumn>}
* @memberof TimeSeries
*/
readonly valueColumns?: Array<TimeSeriesColumn>;
/**
*
* @type {Array<Array<object>>}
* @memberof TimeSeries
*/
values?: Array<Array<object>>;
/**
* The version date of the time series trace
* @type {Date}
* @memberof TimeSeries
*/
versionDate?: Date;
/**
*
* @type {VerticalDatumInfo}
* @memberof TimeSeries
*/
verticalDatumInfo?: VerticalDatumInfo;
}
/**
* @export
* @enum {string}
*/
export enum TimeSeriesDateVersionTypeEnum {
MaxAggregate = 'MAX_AGGREGATE',
SingleVersion = 'SINGLE_VERSION',
Unversioned = 'UNVERSIONED'
}
export function TimeSeriesFromJSON(json: any): TimeSeries {
return TimeSeriesFromJSONTyped(json, false);
}
export function TimeSeriesFromJSONTyped(json: any, ignoreDiscriminator: boolean): TimeSeries {
if ((json === undefined) || (json === null)) {
return json;
}
return {
'begin': !exists(json, 'begin') ? undefined : (new Date(json['begin'])),
'dateVersionType': !exists(json, 'date-version-type') ? undefined : json['date-version-type'],
'end': !exists(json, 'end') ? undefined : (new Date(json['end'])),
'interval': !exists(json, 'interval') ? undefined : TimeSeriesIntervalFromJSON(json['interval']),
'intervalOffset': !exists(json, 'interval-offset') ? undefined : json['interval-offset'],
'name': !exists(json, 'name') ? undefined : json['name'],
'nextPage': !exists(json, 'next-page') ? undefined : json['next-page'],
'officeId': !exists(json, 'office-id') ? undefined : json['office-id'],
'page': !exists(json, 'page') ? undefined : json['page'],
'pageSize': !exists(json, 'page-size') ? undefined : json['page-size'],
'timeZone': !exists(json, 'time-zone') ? undefined : json['time-zone'],
'total': !exists(json, 'total') ? undefined : json['total'],
'units': json['units'],
'valueColumns': !exists(json, 'value-columns') ? undefined : ((json['value-columns'] as Array<any>).map(TimeSeriesColumnFromJSON)),
'values': !exists(json, 'values') ? undefined : json['values'],
'versionDate': !exists(json, 'version-date') ? undefined : (new Date(json['version-date'])),
'verticalDatumInfo': !exists(json, 'vertical-datum-info') ? undefined : VerticalDatumInfoFromJSON(json['vertical-datum-info']),
};
}
export function TimeSeriesToJSON(value?: TimeSeries | null): any {
if (value === undefined) {
return undefined;
}
if (value === null) {
return null;
}
return {
'date-version-type': value.dateVersionType,
'interval': TimeSeriesIntervalToJSON(value.interval),
'name': value.name,
'office-id': value.officeId,
'units': value.units,
'values': value.values,
'version-date': value.versionDate === undefined ? undefined : (value.versionDate.toISOString()),
'vertical-datum-info': VerticalDatumInfoToJSON(value.verticalDatumInfo),
};
}