/* tslint:disable */
/* eslint-disable */
/**
 * Commander Spellbook API
 * API for Commander Spellbook, the combo database engine for Magic: The Gathering
 *
 * The version of the OpenAPI document: 4.2.2
 * 
 *
 * 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 VariantLegalities
 */
export interface VariantLegalities {
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    commander: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    pauperCommanderMain: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    pauperCommander: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    oathbreaker: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    predh: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    brawl: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    vintage: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    legacy: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    premodern: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    modern: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    pioneer: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    standard: boolean;
    /**
     * 
     * @type {boolean}
     * @memberof VariantLegalities
     */
    pauper: boolean;
}

/**
 * Check if a given object implements the VariantLegalities interface.
 */
export function instanceOfVariantLegalities(value: object): value is VariantLegalities {
    if (!('commander' in value) || value['commander'] === undefined) return false;
    if (!('pauperCommanderMain' in value) || value['pauperCommanderMain'] === undefined) return false;
    if (!('pauperCommander' in value) || value['pauperCommander'] === undefined) return false;
    if (!('oathbreaker' in value) || value['oathbreaker'] === undefined) return false;
    if (!('predh' in value) || value['predh'] === undefined) return false;
    if (!('brawl' in value) || value['brawl'] === undefined) return false;
    if (!('vintage' in value) || value['vintage'] === undefined) return false;
    if (!('legacy' in value) || value['legacy'] === undefined) return false;
    if (!('premodern' in value) || value['premodern'] === undefined) return false;
    if (!('modern' in value) || value['modern'] === undefined) return false;
    if (!('pioneer' in value) || value['pioneer'] === undefined) return false;
    if (!('standard' in value) || value['standard'] === undefined) return false;
    if (!('pauper' in value) || value['pauper'] === undefined) return false;
    return true;
}

export function VariantLegalitiesFromJSON(json: any): VariantLegalities {
    return VariantLegalitiesFromJSONTyped(json, false);
}

export function VariantLegalitiesFromJSONTyped(json: any, ignoreDiscriminator: boolean): VariantLegalities {
    if (json == null) {
        return json;
    }
    return {
        
        'commander': json['commander'],
        'pauperCommanderMain': json['pauperCommanderMain'],
        'pauperCommander': json['pauperCommander'],
        'oathbreaker': json['oathbreaker'],
        'predh': json['predh'],
        'brawl': json['brawl'],
        'vintage': json['vintage'],
        'legacy': json['legacy'],
        'premodern': json['premodern'],
        'modern': json['modern'],
        'pioneer': json['pioneer'],
        'standard': json['standard'],
        'pauper': json['pauper'],
    };
}

export function VariantLegalitiesToJSON(json: any): VariantLegalities {
    return VariantLegalitiesToJSONTyped(json, false);
}

export function VariantLegalitiesToJSONTyped(value?: VariantLegalities | null, ignoreDiscriminator: boolean = false): any {
    if (value == null) {
        return value;
    }

    return {
        
        'commander': value['commander'],
        'pauperCommanderMain': value['pauperCommanderMain'],
        'pauperCommander': value['pauperCommander'],
        'oathbreaker': value['oathbreaker'],
        'predh': value['predh'],
        'brawl': value['brawl'],
        'vintage': value['vintage'],
        'legacy': value['legacy'],
        'premodern': value['premodern'],
        'modern': value['modern'],
        'pioneer': value['pioneer'],
        'standard': value['standard'],
        'pauper': value['pauper'],
    };
}

