Newer
Older
/**
* @author ETSI / STF549
* @version $URL$
* $ID:$
* @desc This module provides the templates for ITS HTTP based protocols.
* @copyright ETSI Copyright Notification
* No part may be reproduced except as authorized by written permission.
* The copyright and the foregoing restriction extend to reproduction in all media.
* All rights reserved.
* @see ETSI TS 103 478
*/
import from LibItsHttp_MessageBodyTypes all;
import from LibItsHttp_XmlMessageBodyTypes all;
group http_messages {
template (value) HttpMessage m_http_request(
in template (value) Request p_request
) := {
request := p_request
} // End of template m_http_request
template (present) HttpMessage mw_http_request(
template (present) Request p_request := ?
) := {
request := p_request
} // End of template mw_http_request
template (value) HttpMessage m_http_response(
in template (value) Response p_response
) := {
response := p_response
} // End of template m_http_response
template (present) HttpMessage mw_http_response(
template (present) Response p_response := ?
) := {
response := p_response
} // End of template mw_http_response
} // End of group http_messages
group http_headers {
template (value) HeaderLine m_header_line(
in template (value) charstring p_header_name,
in template (value) charstring_list p_header_value
) := {
header_name := p_header_name,
header_value := p_header_value
} // End of template m_header_line
group http_requests {
template (omit) Request m_http_request_get(
in charstring p_uri,
in template (value) HeaderLines p_headers,
in template (omit) HttpMessageBody p_body := omit
) := {
method := "GET",
uri := p_uri,
version_major := c_http_version_major,
version_minor := c_http_version_minor,
header := p_headers,
body := p_body
} // End of template m_http_request_get
template (omit) Request m_http_request_post(
in charstring p_uri,
in template (value) HeaderLines p_headers,
in template (omit) HttpMessageBody p_body := omit
) := {
method := "POST",
uri := p_uri,
version_major := c_http_version_major,
version_minor := c_http_version_minor,
header := p_headers,
body := p_body
} // End of template m_http_request_post
template Request mw_http_request_post(
template (present) charstring p_uri := ?,
template (present) HeaderLines p_headers := ?,
template HttpMessageBody p_body := *
) := {
method := "POST",
uri := p_uri,
version_major := c_http_version_major,
version_minor := c_http_version_minor,
header := p_headers,
body := p_body
} // End of template mw_http_request_post
} // End of group http_requests
group http_responses {
template (value) Response m_http_response_ok(
in template (value) HttpMessageBody p_body,
in template (value) HeaderLines p_header
) := {
version_major := 1,
version_minor := 1,
statuscode := 200,
statustext := "OK",
header := p_header,
body := p_body
} // End of template m_http_response_ok
template (present) HeaderLines p_header := ?
) := {
version_major := 1,
version_minor := 1,
statuscode := 200,
header := p_header,
body := p_body
} // End of template mw_http_response_ok
template (value) Response m_http_response_ko(
in template (value) HttpMessageBody p_body,
in template (value) HeaderLines p_header,
in template (value) integer p_statuscode := 404,
in template (value) charstring p_statustext := "Not found"
) := {
version_major := 1,
version_minor := 1,
statuscode := p_statuscode,
statustext := p_statustext,
header := p_header,
body := p_body
} // End of template m_http_response_ko
template (value) Response m_http_response_ko_no_body(
in template (value) HeaderLines p_header,
in template (value) integer p_statuscode := 404,
in template (value) charstring p_statustext := "Not found"
) := {
version_major := 1,
version_minor := 1,
statuscode := p_statuscode,
statustext := p_statustext,
header := p_header,
body := omit
} // End of template m_http_response_ko_no_body
template Response mw_http_response_ko(
template HttpMessageBody p_body := *,
template (present) HeaderLines p_header := ?
) := {
version_major := 1,
version_minor := 1,
statuscode := complement(200),
statustext := ?,
header := p_header,
body := p_body
} // End of template mw_http_response_ko
template Response mw_http_response_404_not_found(
template HttpMessageBody p_body := *,
template (present) HeaderLines p_header := ?
) modifies mw_http_response_ko := {
statuscode := 404,
statustext := ? // TODO Add pattern for not found
} // End of template mw_http_response_ok
group http_xml_body {
template (value) HttpMessageBody m_http_message_body_xml(
in template (value) XmlBody p_xml_body
) := {
xml_body := p_xml_body
} // End of template m_http_message_body_xml
template (present) HttpMessageBody mw_http_message_body_xml(
template (present) XmlBody p_xml_body := ?
) := {
xml_body := p_xml_body
} // End of template mw_http_message_body_xml
} // End of group http_xml_body
group http_binary_body {
template (value) HttpMessageBody m_http_message_body_binary(
in template (value) BinaryBody p_binary_body
) := {
binary_body := p_binary_body
} // End of template m_http_message_body_binary
template (present) HttpMessageBody mw_http_message_body_binary(
template (present) BinaryBody p_binary_body := ?
) := {
binary_body := p_binary_body
} // End of template mw_http_message_body_binary
} // End of group http_binary_body