cwmsjs
Version:
CWMS Data API Library for JavaScript/TypeScript created with OpenAPI generator for use with browser webapps
100 lines (93 loc) • 3.32 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 {
ExpressionRating,
ExpressionRatingFromJSON,
ExpressionRatingFromJSONTyped,
ExpressionRatingToJSON,
} from './ExpressionRating';
import {
TableRating,
TableRatingFromJSON,
TableRatingFromJSONTyped,
TableRatingToJSON,
} from './TableRating';
import {
TransitionalRating,
TransitionalRatingFromJSON,
TransitionalRatingFromJSONTyped,
TransitionalRatingToJSON,
} from './TransitionalRating';
import {
UsgsStreamRating,
UsgsStreamRatingFromJSON,
UsgsStreamRatingFromJSONTyped,
UsgsStreamRatingToJSON,
} from './UsgsStreamRating';
import {
VirtualRating,
VirtualRatingFromJSON,
VirtualRatingFromJSONTyped,
VirtualRatingToJSON,
} from './VirtualRating';
/**
* @type AbstractRatingMetadata
* Rating Metadata
* @export
*/
export type AbstractRatingMetadata = { ratingType: 'expression-rating' } & ExpressionRating | { ratingType: 'table' } & TableRating | { ratingType: 'transitional' } & TransitionalRating | { ratingType: 'usgs' } & UsgsStreamRating | { ratingType: 'virtual' } & VirtualRating;
export function AbstractRatingMetadataFromJSON(json: any): AbstractRatingMetadata {
return AbstractRatingMetadataFromJSONTyped(json, false);
}
export function AbstractRatingMetadataFromJSONTyped(json: any, ignoreDiscriminator: boolean): AbstractRatingMetadata {
if ((json === undefined) || (json === null)) {
return json;
}
switch (json['ratingType']) {
case 'expression-rating':
return {...ExpressionRatingFromJSONTyped(json, true), ratingType: 'expression-rating'};
case 'table':
return {...TableRatingFromJSONTyped(json, true), ratingType: 'table'};
case 'transitional':
return {...TransitionalRatingFromJSONTyped(json, true), ratingType: 'transitional'};
case 'usgs':
return {...UsgsStreamRatingFromJSONTyped(json, true), ratingType: 'usgs'};
case 'virtual':
return {...VirtualRatingFromJSONTyped(json, true), ratingType: 'virtual'};
default:
throw new Error(`No variant of AbstractRatingMetadata exists with 'ratingType=${json['ratingType']}'`);
}
}
export function AbstractRatingMetadataToJSON(value?: AbstractRatingMetadata | null): any {
if (value === undefined) {
return undefined;
}
if (value === null) {
return null;
}
switch (value['ratingType']) {
case 'expression-rating':
return ExpressionRatingToJSON(value);
case 'table':
return TableRatingToJSON(value);
case 'transitional':
return TransitionalRatingToJSON(value as TransitionalRating);
case 'usgs':
return UsgsStreamRatingToJSON(value);
case 'virtual':
return VirtualRatingToJSON(value as VirtualRating);
default:
throw new Error(`No variant of AbstractRatingMetadata exists with 'ratingType=${value['ratingType']}'`);
}
}