Skip to content
Snippets Groups Projects
ari_model_validators.h.mustache 4.87 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
     * Asterisk -- An open source telephony toolkit.
     *
     * Copyright (C) 2013, Digium, Inc.
     *
     * See http://www.asterisk.org for more information about
     * the Asterisk project. Please do not directly contact
     * any of the maintainers of this project for assistance;
     * the project provides a web site, mailing lists and IRC
     * channels for your use.
     *
     * This program is free software, distributed under the terms of
     * the GNU General Public License Version 2. See the LICENSE file
     * at the top of the source tree.
     */
    
    /*! \file
     *
     * \brief Generated file - Build validators for ARI model objects.
    
     *
     * In addition to the normal validation functions one would normally expect,
    
     * each validator has a ast_ari_validate_{id}_fn() companion function that returns
    
     * the validator's function pointer.
     *
     * The reason for this seamingly useless indirection is the way function
     * pointers interfere with module loading. Asterisk attempts to dlopen() each
     * module using \c RTLD_LAZY in order to read some metadata from the module.
     * Unfortunately, if you take the address of a function, the function has to be
     * resolvable at load time, even if \c RTLD_LAZY is specified. By moving the
     * function-address-taking into this module, we can once again be lazy.
    
     */
    
     /*
    {{> do-not-edit}}
     * This file is generated by a mustache template. Please see the original
     * template in rest-api-templates/ari_model_validators.h.mustache
     */
    
    #ifndef _ASTERISK_ARI_MODEL_H
    #define _ASTERISK_ARI_MODEL_H
    
    #include "asterisk/json.h"
    
    /*! @{ */
    
    /*!
     * \brief Validator for native Swagger void.
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_void(struct ast_json *json);
    
    /*!
     * \brief Validator for native Swagger object.
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    int ast_ari_validate_object(struct ast_json *json);
    
    
    /*!
     * \brief Validator for native Swagger byte.
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_byte(struct ast_json *json);
    
    
    /*!
     * \brief Validator for native Swagger boolean.
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_boolean(struct ast_json *json);
    
    
    /*!
     * \brief Validator for native Swagger int.
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_int(struct ast_json *json);
    
    
    /*!
     * \brief Validator for native Swagger long.
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_long(struct ast_json *json);
    
    
    /*!
     * \brief Validator for native Swagger float.
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_float(struct ast_json *json);
    
    
    /*!
     * \brief Validator for native Swagger double.
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_double(struct ast_json *json);
    
    
    /*!
     * \brief Validator for native Swagger string.
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_string(struct ast_json *json);
    
    
    /*!
     * \brief Validator for native Swagger date.
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_date(struct ast_json *json);
    
    
    /*!
     * \brief Validator for a Swagger List[]/JSON array.
     *
     * \param json JSON object to validate.
     * \param fn Validator to call on every element in the array.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_list(struct ast_json *json, int (*fn)(struct ast_json *));
    
    
    /*!
     * \brief Function type for validator functions. Allows for 
     */
    typedef int (*ari_validator)(struct ast_json *json);
    
    {{#apis}}
    {{#api_declaration}}
    {{#models}}
    
    /*!
     * \brief Validator for {{id}}.
     *
     * {{{description_dox}}}
     *
     * \param json JSON object to validate.
     * \returns True (non-zero) if valid.
     * \returns False (zero) if invalid.
     */
    
    int ast_ari_validate_{{c_id}}(struct ast_json *json);
    
     * \brief Function pointer to ast_ari_validate_{{c_id}}().
    
     * See \ref ast_ari_model_validators.h for more details.
    
    ari_validator ast_ari_validate_{{c_id}}_fn(void);
    
    {{/models}}
    {{/api_declaration}}
    {{/apis}}
    
    /*
     * JSON models
     *
    {{#apis}}
    {{#api_declaration}}
    {{#models}}
     * {{id}}
    {{#properties}}
     * - {{name}}: {{type.name}}{{#required}} (required){{/required}}
    {{/properties}}
    {{/models}}
    {{/api_declaration}}
    {{/apis}} */
    
    #endif /* _ASTERISK_ARI_MODEL_H */