Skip to content
Snippets Groups Projects
ari_resource.h.mustache 3.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • {{#api_declaration}}
    /*
     * Asterisk -- An open source telephony toolkit.
     *
     * {{{copyright}}}
     *
     * {{{author}}}
     *
     * 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 - declares stubs to be implemented in
    
     * res/ari/resource_{{name}}.c
    
     *
     * {{{description}}}
     *
     * \author {{{author}}}
     */
    
    /*
    {{> do-not-edit}}
     * This file is generated by a mustache template. Please see the original
    
     * template in rest-api-templates/ari_resource.h.mustache
    
     */
    
    #ifndef _ASTERISK_RESOURCE_{{name_caps}}_H
    #define _ASTERISK_RESOURCE_{{name_caps}}_H
    
    
    #include "asterisk/ari.h"
    
    /*! Argument struct for ast_ari_{{c_name}}_{{c_nickname}}() */
    
    struct ast_ari_{{c_name}}_{{c_nickname}}_args {
    
    {{#description}}
    {{/description}}
    {{^allow_multiple}}
    
    {{/description}}
    	{{c_data_type}}{{c_space}}{{c_name}};
    
    {{/allow_multiple}}
    {{#allow_multiple}}
    
    	{{c_data_type}}{{c_space}}*{{c_name}};
    
    	size_t {{c_name}}_count;
    
    	/*! Parsing context for {{c_name}}. */
    
    	char *{{c_name}}_parse;
    {{/allow_multiple}}
    
    {{#is_req}}
    
    {{#parse_body}}
    /*!
     * \brief Body parsing function for {{path}}.
     * \param body The JSON body from which to parse parameters.
     * \param[out] args The args structure to parse into.
     * \retval zero on success
     * \retval non-zero on failure
     */
    int ast_ari_{{c_name}}_{{c_nickname}}_parse_body(
    	struct ast_json *body,
    	struct ast_ari_{{c_name}}_{{c_nickname}}_args *args);
    
    {{/parse_body}}
    
    /*!
     * \brief {{summary}}
    {{#notes}}
     *
     * {{{notes}}}
    {{/notes}}
     *
     * \param headers HTTP headers
     * \param args Swagger parameters
     * \param[out] response HTTP response
     */
    
    void ast_ari_{{c_name}}_{{c_nickname}}(struct ast_variable *headers, struct ast_ari_{{c_name}}_{{c_nickname}}_args *args, struct ast_ari_response *response);
    
    {{/is_req}}
    {{#is_websocket}}
    
    /*!
     * \brief {{summary}}
    {{#notes}}
     *
     * {{{notes}}}
    {{/notes}}
     *
     * \retval  0 success
     * \retval -1 error
     */
    int ast_ari_websocket_{{c_name}}_{{c_nickname}}_init(void);
    
    
    /*!
     * \brief {{summary}}
    {{#notes}}
     *
     * {{{notes}}}
    {{/notes}}
     *
     * \return Nothing
     */
    void ast_ari_websocket_{{c_name}}_{{c_nickname}}_dtor(void);
    
    /*!
     * \brief {{summary}}
    {{#notes}}
     *
     * {{{notes}}}
    {{/notes}}
     *
     * \param ser HTTP TCP/TLS Server Session
     * \param headers HTTP headers
     * \param args Swagger parameters
    
     * \param session_id The id of the current session.
    
     *
     * \retval 0 success
     * \retval non-zero error
     */
    
    int ast_ari_websocket_{{c_name}}_{{c_nickname}}_attempted(struct ast_tcptls_session_instance *ser,
    	struct ast_variable *headers, struct ast_ari_{{c_name}}_{{c_nickname}}_args *args, const char *session_id);
    
    /*!
     * \brief {{summary}}
    {{#notes}}
     *
     * {{{notes}}}
    {{/notes}}
     *
     * \param session ARI WebSocket.
     * \param headers HTTP headers.
     * \param args Swagger parameters.
    
     * \param session_id The id of the current session.
    
    void ast_ari_websocket_{{c_name}}_{{c_nickname}}_established(struct ast_ari_websocket_session *session,
    	struct ast_variable *headers, struct ast_ari_{{c_name}}_{{c_nickname}}_args *args);
    
    {{/is_websocket}}
    
    {{/operations}}
    {{/apis}}
    
    #endif /* _ASTERISK_RESOURCE_{{name_caps}}_H */
    {{/api_declaration}}