/* tslint:disable */
/* eslint-disable */
/**
 * Jellyfin API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 10.8.9
 * 
 *
 * 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';
/**
 * The DlnaOptions class contains the user definable parameters for the dlna subsystems.
 * @export
 * @interface DlnaOptions
 */
export interface DlnaOptions {
    /**
     * Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna playTo subsystem.
     * @type {boolean}
     * @memberof DlnaOptions
     */
    enablePlayTo?: boolean;
    /**
     * Gets or sets a value indicating whether gets or sets a value to indicate the status of the dlna server subsystem.
     * @type {boolean}
     * @memberof DlnaOptions
     */
    enableServer?: boolean;
    /**
     * Gets or sets a value indicating whether detailed dlna server logs are sent to the console/log.
     * If the setting "Emby.Dlna": "Debug" msut be set in logging.default.json for this property to work.
     * @type {boolean}
     * @memberof DlnaOptions
     */
    enableDebugLog?: boolean;
    /**
     * Gets or sets a value indicating whether whether detailed playTo debug logs are sent to the console/log.
     * If the setting "Emby.Dlna.PlayTo": "Debug" msut be set in logging.default.json for this property to work.
     * @type {boolean}
     * @memberof DlnaOptions
     */
    enablePlayToTracing?: boolean;
    /**
     * Gets or sets the ssdp client discovery interval time (in seconds).
     * This is the time after which the server will send a ssdp search request.
     * @type {number}
     * @memberof DlnaOptions
     */
    clientDiscoveryIntervalSeconds?: number;
    /**
     * Gets or sets the frequency at which ssdp alive notifications are transmitted.
     * @type {number}
     * @memberof DlnaOptions
     */
    aliveMessageIntervalSeconds?: number;
    /**
     * Gets or sets the frequency at which ssdp alive notifications are transmitted. MIGRATING - TO BE REMOVED ONCE WEB HAS BEEN ALTERED.
     * @type {number}
     * @memberof DlnaOptions
     */
    blastAliveMessageIntervalSeconds?: number;
    /**
     * Gets or sets the default user account that the dlna server uses.
     * @type {string}
     * @memberof DlnaOptions
     */
    defaultUserId?: string | null;
    /**
     * Gets or sets a value indicating whether playTo device profiles should be created.
     * @type {boolean}
     * @memberof DlnaOptions
     */
    autoCreatePlayToProfiles?: boolean;
    /**
     * Gets or sets a value indicating whether to blast alive messages.
     * @type {boolean}
     * @memberof DlnaOptions
     */
    blastAliveMessages?: boolean;
    /**
     * gets or sets a value indicating whether to send only matched host.
     * @type {boolean}
     * @memberof DlnaOptions
     */
    sendOnlyMatchedHost?: boolean;
}

/**
 * Check if a given object implements the DlnaOptions interface.
 */
export function instanceOfDlnaOptions(value: object): boolean {
    let isInstance = true;

    return isInstance;
}

export function DlnaOptionsFromJSON(json: any): DlnaOptions {
    return DlnaOptionsFromJSONTyped(json, false);
}

export function DlnaOptionsFromJSONTyped(json: any, ignoreDiscriminator: boolean): DlnaOptions {
    if ((json === undefined) || (json === null)) {
        return json;
    }
    return {
        
        'enablePlayTo': !exists(json, 'EnablePlayTo') ? undefined : json['EnablePlayTo'],
        'enableServer': !exists(json, 'EnableServer') ? undefined : json['EnableServer'],
        'enableDebugLog': !exists(json, 'EnableDebugLog') ? undefined : json['EnableDebugLog'],
        'enablePlayToTracing': !exists(json, 'EnablePlayToTracing') ? undefined : json['EnablePlayToTracing'],
        'clientDiscoveryIntervalSeconds': !exists(json, 'ClientDiscoveryIntervalSeconds') ? undefined : json['ClientDiscoveryIntervalSeconds'],
        'aliveMessageIntervalSeconds': !exists(json, 'AliveMessageIntervalSeconds') ? undefined : json['AliveMessageIntervalSeconds'],
        'blastAliveMessageIntervalSeconds': !exists(json, 'BlastAliveMessageIntervalSeconds') ? undefined : json['BlastAliveMessageIntervalSeconds'],
        'defaultUserId': !exists(json, 'DefaultUserId') ? undefined : json['DefaultUserId'],
        'autoCreatePlayToProfiles': !exists(json, 'AutoCreatePlayToProfiles') ? undefined : json['AutoCreatePlayToProfiles'],
        'blastAliveMessages': !exists(json, 'BlastAliveMessages') ? undefined : json['BlastAliveMessages'],
        'sendOnlyMatchedHost': !exists(json, 'SendOnlyMatchedHost') ? undefined : json['SendOnlyMatchedHost'],
    };
}

export function DlnaOptionsToJSON(value?: DlnaOptions | null): any {
    if (value === undefined) {
        return undefined;
    }
    if (value === null) {
        return null;
    }
    return {
        
        'EnablePlayTo': value.enablePlayTo,
        'EnableServer': value.enableServer,
        'EnableDebugLog': value.enableDebugLog,
        'EnablePlayToTracing': value.enablePlayToTracing,
        'ClientDiscoveryIntervalSeconds': value.clientDiscoveryIntervalSeconds,
        'AliveMessageIntervalSeconds': value.aliveMessageIntervalSeconds,
        'BlastAliveMessageIntervalSeconds': value.blastAliveMessageIntervalSeconds,
        'DefaultUserId': value.defaultUserId,
        'AutoCreatePlayToProfiles': value.autoCreatePlayToProfiles,
        'BlastAliveMessages': value.blastAliveMessages,
        'SendOnlyMatchedHost': value.sendOnlyMatchedHost,
    };
}

