<?xml version="1.0" encoding="UTF-8"?>
<rois:HRIComponentProfile
	gml:id="component_profile"
	xmlns:rois="http://www.omg.org/spec/RoIS/20240801"
    xmlns:ns2="http://www.w3.org/1999/xlink"
    xmlns:gml="http://www.opengis.net/gml/3.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <gml:identifier codeSpace="urn:ietf:rfc:2141">urn:x-rois:def:component:OMG::VideoStreaming</gml:identifier>
    <gml:name>video_streaming</gml:name>

    <!-- ===== Sub Component Profiles ===== -->
    <rois:SubComponentProfile>urn:x-rois:def:Component:OMG::RoISCommon</rois:SubComponentProfile>
    
    <!-- ===== Command Message ===== -->
    <rois:MessageProfile rois:name="connect_stream" xsi:type="rois:CommandMessageProfileType">
        <rois:Results rois:description="the ID of the stream" rois:name="stream_id">
            <rois:data_type_ref rois:code="String"/>
        </rois:Results>
    </rois:MessageProfile>
    <rois:MessageProfile rois:name="disconnect_stream" xsi:type="rois:CommandMessageProfileType">
        <rois:Arguments rois:description="the ID of the stream" rois:name="stream_id">
            <rois:data_type_ref rois:code="String"/>
        </rois:Arguments>
    </rois:MessageProfile>
    <rois:MessageProfile rois:name="suspend_stream" xsi:type="rois:CommandMessageProfileType">
        <rois:Arguments rois:description="the ID of the stream" rois:name="stream_id">
            <rois:data_type_ref rois:code="String"/>
        </rois:Arguments>
    </rois:MessageProfile>
    <rois:MessageProfile rois:name="resume_stream" xsi:type="rois:CommandMessageProfileType">
        <rois:Arguments rois:description="the ID of the stream" rois:name="stream_id">
            <rois:data_type_ref rois:code="String"/>
        </rois:Arguments>
    </rois:MessageProfile>

    <!-- ===== Query Message ===== -->
    <rois:MessageProfile rois:name="get_stream_status" xsi:type="rois:QueryMessageProfileType">
        <rois:Arguments rois:description="the ID of the stream" rois:name="stream_id">
            <rois:data_type_ref rois:code="String"/>
        </rois:Arguments>
        <rois:Results rois:name="status">
            <rois:data_type_ref rois:code="Stream_Status"/>
        </rois:Results>
    </rois:MessageProfile>

    <!-- ===== Event Messages ===== -->
    <rois:MessageProfile rois:name="notify_stream_status" xsi:type="rois:EventMessageProfileType">
        <rois:Arguments rois:description="the ID of the stream" rois:name="stream_id">
            <rois:data_type_ref rois:code="String"/>
        </rois:Arguments>
        <rois:Results rois:description="time when status changed" rois:name="timestamp">
            <rois:data_type_ref rois:code="DateTime"/>
        </rois:Results>
        <rois:Results rois:description="status of the stream" rois:name="status">
            <rois:data_type_ref rois:code="Stream_Status"/>
        </rois:Results>
    </rois:MessageProfile>

    <!-- ===== Parameter Profiles ===== -->
    <rois:ParameterProfile rois:default_value=""
                           rois:description="parameters to encode the audio stream"
                           rois:name="encoding_parameters">
        <rois:data_type_ref rois:code="String"/>
    </rois:ParameterProfile>

    <rois:ParameterProfile rois:default_value=""
                           rois:description="parameters to transport the audio stream"
                           rois:name="transport_parameters">
        <rois:data_type_ref rois:code="String"/>
    </rois:ParameterProfile>

    <rois:ParameterProfile rois:default_value=""
                           rois:description="available parameters to encode the audio stream"
                           rois:name="available_encodings">
        <rois:data_type_ref rois:code="String"/>
    </rois:ParameterProfile>

    <rois:ParameterProfile rois:default_value=""
                           rois:description="available parameters to transport the audio stream"
                           rois:name="available_transports">
        <rois:data_type_ref rois:code="String"/>
    </rois:ParameterProfile>

</rois:HRIComponentProfile>
