/* tslint:disable */
/* eslint-disable */
/**
 * Ringer Business API
 * This API provides comprehensive endpoints for the Ringer Business system. It includes functionality for managing customer accounts, addresses, sites,  phone numbers, payments, users, and other business resources.  Operations typically require authentication and appropriate permissions. 
 *
 * The version of the OpenAPI document: 1.0.5
 * Contact: support@ringer.tel
 *
 * 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';
/**
 * Represents a HATEOAS link.
 * @export
 * @interface SchemasLink
 */
export interface SchemasLink {
    /**
     * 
     * @type {string}
     * @memberof SchemasLink
     */
    href: string;
    /**
     * 
     * @type {string}
     * @memberof SchemasLink
     */
    rel: string;
    /**
     * 
     * @type {string}
     * @memberof SchemasLink
     */
    title?: string | null;
    /**
     * 
     * @type {string}
     * @memberof SchemasLink
     */
    method?: SchemasLinkMethodEnum;
}


/**
 * @export
 */
export const SchemasLinkMethodEnum = {
    Get: 'GET',
    Post: 'POST',
    Put: 'PUT',
    Patch: 'PATCH',
    Delete: 'DELETE',
    Options: 'OPTIONS',
    Head: 'HEAD'
} as const;
export type SchemasLinkMethodEnum = typeof SchemasLinkMethodEnum[keyof typeof SchemasLinkMethodEnum];


/**
 * Check if a given object implements the SchemasLink interface.
 */
export function instanceOfSchemasLink(value: object): value is SchemasLink {
    if (!('href' in value) || value['href'] === undefined) return false;
    if (!('rel' in value) || value['rel'] === undefined) return false;
    return true;
}

export function SchemasLinkFromJSON(json: any): SchemasLink {
    return SchemasLinkFromJSONTyped(json, false);
}

export function SchemasLinkFromJSONTyped(json: any, ignoreDiscriminator: boolean): SchemasLink {
    if (json == null) {
        return json;
    }
    return {
        
        'href': json['href'],
        'rel': json['rel'],
        'title': json['title'] == null ? undefined : json['title'],
        'method': json['method'] == null ? undefined : json['method'],
    };
}

export function SchemasLinkToJSON(json: any): SchemasLink {
    return SchemasLinkToJSONTyped(json, false);
}

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

    return {
        
        'href': value['href'],
        'rel': value['rel'],
        'title': value['title'],
        'method': value['method'],
    };
}

