/* tslint:disable */
/* eslint-disable */
/**
 * CWMS Data API
 * CWMS REST API for Data Retrieval
 *
 * The version of the OpenAPI document: 2.3.2-2025.03.19
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { 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;
}

/**
 * Check if a given object implements the SupplementalStreamflowMeasurement interface.
 */
export function instanceOfSupplementalStreamflowMeasurement(value: object): boolean {
    return true;
}

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

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

export function SupplementalStreamflowMeasurementToJSON(value?: SupplementalStreamflowMeasurement | null): any {
    if (value == null) {
        return value;
    }
    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'],
    };
}

