/* 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';
/**
 * 
 * @export
 * @interface SupplementalStreamflowMeasurement
 */
export interface SupplementalStreamflowMeasurement {
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    channelFlow?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    overbankFlow?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    overbankMaxDepth?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    channelMaxDepth?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    avgVelocity?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    surfaceVelocity?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    maxVelocity?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    effectiveFlowArea?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    crossSectionalArea?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    meanGage?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    topWidth?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    mainChannelArea?: number;
    /**
     * 
     * @type {number}
     * @memberof SupplementalStreamflowMeasurement
     */
    overbankArea?: number;
}

export function SupplementalStreamflowMeasurementFromJSON(json: any): SupplementalStreamflowMeasurement {
    return SupplementalStreamflowMeasurementFromJSONTyped(json, false);
}

export function SupplementalStreamflowMeasurementFromJSONTyped(json: any, ignoreDiscriminator: boolean): SupplementalStreamflowMeasurement {
    if ((json === undefined) || (json === null)) {
        return json;
    }
    return {
        
        'channelFlow': !exists(json, 'channel-flow') ? undefined : json['channel-flow'],
        'overbankFlow': !exists(json, 'overbank-flow') ? undefined : json['overbank-flow'],
        'overbankMaxDepth': !exists(json, 'overbank-max-depth') ? undefined : json['overbank-max-depth'],
        'channelMaxDepth': !exists(json, 'channel-max-depth') ? undefined : json['channel-max-depth'],
        'avgVelocity': !exists(json, 'avg-velocity') ? undefined : json['avg-velocity'],
        'surfaceVelocity': !exists(json, 'surface-velocity') ? undefined : json['surface-velocity'],
        'maxVelocity': !exists(json, 'max-velocity') ? undefined : json['max-velocity'],
        'effectiveFlowArea': !exists(json, 'effective-flow-area') ? undefined : json['effective-flow-area'],
        'crossSectionalArea': !exists(json, 'cross-sectional-area') ? undefined : json['cross-sectional-area'],
        'meanGage': !exists(json, 'mean-gage') ? undefined : json['mean-gage'],
        'topWidth': !exists(json, 'top-width') ? undefined : json['top-width'],
        'mainChannelArea': !exists(json, 'main-channel-area') ? undefined : json['main-channel-area'],
        'overbankArea': !exists(json, 'overbank-area') ? undefined : json['overbank-area'],
    };
}

export function SupplementalStreamflowMeasurementToJSON(value?: SupplementalStreamflowMeasurement | null): any {
    if (value === undefined) {
        return undefined;
    }
    if (value === null) {
        return null;
    }
    return {
        
        'channel-flow': value.channelFlow,
        'overbank-flow': value.overbankFlow,
        'overbank-max-depth': value.overbankMaxDepth,
        'channel-max-depth': value.channelMaxDepth,
        'avg-velocity': value.avgVelocity,
        'surface-velocity': value.surfaceVelocity,
        'max-velocity': value.maxVelocity,
        'effective-flow-area': value.effectiveFlowArea,
        'cross-sectional-area': value.crossSectionalArea,
        'mean-gage': value.meanGage,
        'top-width': value.topWidth,
        'main-channel-area': value.mainChannelArea,
        'overbank-area': value.overbankArea,
    };
}

