res_ari_events: Fix shutdown ref leak.
[asterisk/asterisk.git] / rest-api-templates / ari_resource.h.mustache
index 6396e2b..5e06af7 100644 (file)
 
 {{#apis}}
 {{#operations}}
-/*! \brief Argument struct for ast_ari_{{c_nickname}}() */
-struct ast_{{c_nickname}}_args {
+/*! Argument struct for ast_ari_{{c_name}}_{{c_nickname}}() */
+struct ast_ari_{{c_name}}_{{c_nickname}}_args {
 {{#parameters}}
 {{#description}}
-       /*! \brief {{{description}}} */
+{{/description}}
+{{^allow_multiple}}
+{{#description}}
+       /*! {{{description}}} */
 {{/description}}
        {{c_data_type}}{{c_space}}{{c_name}};
+{{/allow_multiple}}
+{{#allow_multiple}}
+       /*! Array of {{{description}}} */
+       {{c_data_type}}{{c_space}}*{{c_name}};
+       /*! Length of {{c_name}} array. */
+       size_t {{c_name}}_count;
+       /*! Parsing context for {{c_name}}. */
+       char *{{c_name}}_parse;
+{{/allow_multiple}}
 {{/parameters}}
 };
 {{#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}}
@@ -61,9 +86,51 @@ struct ast_{{c_nickname}}_args {
  * \param args Swagger parameters
  * \param[out] response HTTP response
  */
-void ast_ari_{{c_nickname}}(struct ast_variable *headers, struct ast_{{c_nickname}}_args *args, struct ast_ari_response *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}}
@@ -74,8 +141,10 @@ void ast_ari_{{c_nickname}}(struct ast_variable *headers, struct ast_{{c_nicknam
  * \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_nickname}}(struct ast_ari_websocket_session *session, struct ast_variable *headers, struct ast_{{c_nickname}}_args *args);
+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}}