MI: xsd: add objects type definition related to trigger
[lttng-tools.git] / src / common / mi-lttng-4.0.xsd
index a6a7af6993be95d5195575cff886c2ef52313057..fa128905a84964f34bd8c7d36aecda0630d82246 100644 (file)
@@ -1,26 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-Copyright (c) 2014 - Oliver Cotte <olivier.cotte@polymtl.ca>
-                   - Jonathan Rajotte <jonathan.r.julien@gmail.com>
-Copyright (c) 2016 - Jérémie Galarneau <jeremie.galarneau@efficios.com>
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+Copyright (C) 2014 Oliver Cotte <olivier.cotte@polymtl.ca>
+Copyright (C) 2014 Jonathan Rajotte <jonathan.r.julien@gmail.com>
+Copyright (C) 2016 Jérémie Galarneau <jeremie.galarneau@efficios.com>
+
+SPDX-License-Identifier: MIT
+
 -->
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
        targetNamespace="https://lttng.org/xml/ns/lttng-mi"
@@ -43,6 +28,14 @@ THE SOFTWARE.
                </xs:restriction>
        </xs:simpleType>
 
+       <!-- Maps to the uint64_t type -->
+       <xs:simpleType name="ratio_type">
+               <xs:restriction base="xs:double">
+                       <xs:minInclusive value="0" />
+                       <xs:maxInclusive value="1" />
+               </xs:restriction>
+       </xs:simpleType>
+
        <!--
        Maps to the range allowed for blocking timeout: -1 (block
        forever), 0 (do not block), positive integer value (blocking
@@ -124,6 +117,7 @@ THE SOFTWARE.
                        <xs:enumeration value="MNT_NS" />
                        <xs:enumeration value="NET_NS" />
                        <xs:enumeration value="PID_NS" />
+                       <xs:enumeration value="TIME_NS" />
                        <xs:enumeration value="USER_NS" />
                        <xs:enumeration value="UTS_NS" />
                        <xs:enumeration value="UID" />
@@ -211,6 +205,31 @@ THE SOFTWARE.
                </xs:restriction>
        </xs:simpleType>
 
+       <!-- Maps to the lttng_event_rule_kernel_syscall_emission_site enum -->
+       <xs:simpleType name="event_rule_kernel_syscall_emission_site">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="entry+exit" />
+                       <xs:enumeration value="entry" />
+                       <xs:enumeration value="exit" />
+               </xs:restriction>
+       </xs:simpleType>
+
+       <!-- Maps to the lttng_userspace_probe_location_function_instrumentation_type enum -->
+       <xs:simpleType name="userspace_probe_location_function_instrumentation">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="ENTRY" />
+               </xs:restriction>
+       </xs:simpleType>
+
+       <!-- Maps to the lttng_userspace_probe_location_lookup_method enum -->
+       <xs:simpleType name="userspace_probe_location_lookup_method">
+               <xs:restriction base="xs:string">
+                       <xs:enumeration value="FUNCTION-DEFAULT" />
+                       <xs:enumeration value="FUNCTION-ELF" />
+                       <xs:enumeration value="TRACEPOINT-SDT" />
+               </xs:restriction>
+       </xs:simpleType>
+
        <!-- Maps to the lttng_event_probe_attr struct -->
        <xs:complexType name="event_probe_attributes_type">
                <xs:all>
@@ -332,14 +351,6 @@ THE SOFTWARE.
                </xs:sequence>
        </xs:complexType>
 
-       <xs:simpleType name="tracker_target_type">
-               <xs:restriction base="xs:string">
-                       <xs:enumeration value="ALL" />
-                       <xs:enumeration value="NONE" />
-                       <xs:enumeration value="LIST" />
-               </xs:restriction>
-       </xs:simpleType>
-
        <xs:simpleType name="pidbyint">
                <xs:restriction base="xs:integer">
                        <xs:minInclusive value="0"/>
@@ -347,33 +358,31 @@ THE SOFTWARE.
                </xs:restriction>
        </xs:simpleType>
 
-       <xs:complexType name="pid_target_type_choice">
+       <xs:complexType name="pid_value_type_choice">
                <xs:choice>
                        <xs:element name="id" type="tns:pidbyint" />
-                       <xs:element name="name" type="xs:string" />
                        <xs:element name="all" type="xs:boolean" />
                </xs:choice>
        </xs:complexType>
 
-       <xs:complexType name="pid_target_type">
+       <xs:complexType name="pid_value_type">
                <xs:all>
-                       <xs:element name="type" type="tns:pid_target_type_choice" />
+                       <xs:element name="type" type="tns:pid_value_type_choice" />
                        <xs:element name="success" type="xs:boolean" default="false" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
-       <!-- Maps to a list of pid_targets-->
-       <xs:complexType name="pid_targets_type">
+       <!-- Maps to a list of pid_process_attr_values-->
+       <xs:complexType name="pid_process_attr_values_type">
                <xs:sequence>
-                       <xs:element name="pid_target" type="tns:pid_target_type" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="pid" type="tns:pid_value_type" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
 
        <!-- Maps to a pid_tracker-->
-       <xs:complexType name="pid_tracker_type">
+       <xs:complexType name="pid_process_attr_tracker_type">
                <xs:all>
-                       <xs:element name="target_type" type="tns:tracker_target_type" minOccurs="0" maxOccurs="1" />
-                       <xs:element name="targets" type="tns:pid_targets_type" minOccurs="0" />
+                       <xs:element name="process_attr_values" type="tns:pid_process_attr_values_type" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
@@ -384,33 +393,31 @@ THE SOFTWARE.
                </xs:restriction>
        </xs:simpleType>
 
-       <xs:complexType name="vpid_target_type_choice">
+       <xs:complexType name="vpid_value_type_choice">
                <xs:choice>
                        <xs:element name="id" type="tns:vpidbyint" />
-                       <xs:element name="name" type="xs:string" />
                        <xs:element name="all" type="xs:boolean" />
                </xs:choice>
        </xs:complexType>
 
-       <xs:complexType name="vpid_target_type">
+       <xs:complexType name="vpid_value_type">
                <xs:all>
-                       <xs:element name="type" type="tns:vpid_target_type_choice" minOccurs="0" maxOccurs="1" />
+                       <xs:element name="type" type="tns:vpid_value_type_choice" minOccurs="0" maxOccurs="1" />
                        <xs:element name="success" type="xs:boolean" default="false" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
-       <!-- Maps to a list of vpid_targets-->
-       <xs:complexType name="vpid_targets_type">
+       <!-- Maps to a list of vpid_process_attr_values-->
+       <xs:complexType name="vpid_process_attr_values_type">
                <xs:sequence>
-                       <xs:element name="vpid_target" type="tns:vpid_target_type" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="vpid" type="tns:vpid_value_type" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
 
        <!-- Maps to a vpid_tracker-->
-       <xs:complexType name="vpid_tracker_type">
+       <xs:complexType name="vpid_process_attr_tracker_type">
                <xs:all>
-                       <xs:element name="target_type" type="tns:tracker_target_type" minOccurs="0" maxOccurs="1" />
-                       <xs:element name="targets" type="tns:vpid_targets_type" minOccurs="0" />
+                       <xs:element name="process_attr_values" type="tns:vpid_process_attr_values_type" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
@@ -421,7 +428,7 @@ THE SOFTWARE.
                </xs:restriction>
        </xs:simpleType>
 
-       <xs:complexType name="uid_target_type_choice">
+       <xs:complexType name="uid_value_type_choice">
                <xs:choice>
                        <xs:element name="id" type="tns:uidbyint" />
                        <xs:element name="name" type="xs:string" />
@@ -429,25 +436,24 @@ THE SOFTWARE.
                </xs:choice>
        </xs:complexType>
 
-       <xs:complexType name="uid_target_type">
+       <xs:complexType name="uid_value_type">
                <xs:all>
-                       <xs:element name="type" type="tns:uid_target_type_choice" minOccurs="0" maxOccurs="1" />
+                       <xs:element name="type" type="tns:uid_value_type_choice" minOccurs="0" maxOccurs="1" />
                        <xs:element name="success" type="xs:boolean" default="false" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
-       <!-- Maps to a list of uid_targets-->
-       <xs:complexType name="uid_targets_type">
+       <!-- Maps to a list of uid_process_attr_values-->
+       <xs:complexType name="uid_process_attr_values_type">
                <xs:sequence>
-                       <xs:element name="uid_target" type="tns:uid_target_type" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="uid" type="tns:uid_value_type" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
 
-       <!-- Maps to a uid_tracker-->
-       <xs:complexType name="uid_tracker_type">
+       <!-- Maps to a uid_process_attr_tracker-->
+       <xs:complexType name="uid_process_attr_tracker_type">
                <xs:all>
-                       <xs:element name="target_type" type="tns:tracker_target_type" minOccurs="0" maxOccurs="1" />
-                       <xs:element name="targets" type="tns:uid_targets_type" minOccurs="0" />
+                       <xs:element name="process_attr_values" type="tns:uid_process_attr_values_type" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
@@ -458,7 +464,7 @@ THE SOFTWARE.
                </xs:restriction>
        </xs:simpleType>
 
-       <xs:complexType name="vuid_target_type_choice">
+       <xs:complexType name="vuid_value_type_choice">
                <xs:choice>
                        <xs:element name="id" type="tns:vuidbyint" />
                        <xs:element name="name" type="xs:string" />
@@ -466,25 +472,24 @@ THE SOFTWARE.
                </xs:choice>
        </xs:complexType>
 
-       <xs:complexType name="vuid_target_type">
+       <xs:complexType name="vuid_value_type">
                <xs:all>
-                       <xs:element name="type" type="tns:vuid_target_type_choice" minOccurs="0" maxOccurs="1" />
+                       <xs:element name="type" type="tns:vuid_value_type_choice" minOccurs="0" maxOccurs="1" />
                        <xs:element name="success" type="xs:boolean" default="false" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
-       <!-- Maps to a list of vuid_targets-->
-       <xs:complexType name="vuid_targets_type">
+       <!-- Maps to a list of vuid_process_attr_values-->
+       <xs:complexType name="vuid_process_attr_values_type">
                <xs:sequence>
-                       <xs:element name="vuid_target" type="tns:vuid_target_type" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="vuid" type="tns:vuid_value_type" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
 
-       <!-- Maps to a vuid_tracker-->
-       <xs:complexType name="vuid_tracker_type">
+       <!-- Maps to a vuid_process_attr_tracker-->
+       <xs:complexType name="vuid_process_attr_tracker_type">
                <xs:all>
-                       <xs:element name="target_type" type="tns:tracker_target_type" minOccurs="0" maxOccurs="1" />
-                       <xs:element name="targets" type="tns:vuid_targets_type" minOccurs="0" />
+                       <xs:element name="process_attr_values" type="tns:vuid_process_attr_values_type" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
@@ -495,7 +500,7 @@ THE SOFTWARE.
                </xs:restriction>
        </xs:simpleType>
 
-       <xs:complexType name="gid_target_type_choice">
+       <xs:complexType name="gid_value_type_choice">
                <xs:choice>
                        <xs:element name="id" type="tns:gidbyint" />
                        <xs:element name="name" type="xs:string" />
@@ -503,25 +508,24 @@ THE SOFTWARE.
                </xs:choice>
        </xs:complexType>
 
-       <xs:complexType name="gid_target_type">
+       <xs:complexType name="gid_value_type">
                <xs:all>
-                       <xs:element name="type" type="tns:gid_target_type_choice" minOccurs="0" maxOccurs="1" />
+                       <xs:element name="type" type="tns:gid_value_type_choice" minOccurs="0" maxOccurs="1" />
                        <xs:element name="success" type="xs:boolean" default="false" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
-       <!-- Maps to a list of gid_targets-->
-       <xs:complexType name="gid_targets_type">
+       <!-- Maps to a list of gid_process_attr_values-->
+       <xs:complexType name="gid_process_attr_values_type">
                <xs:sequence>
-                       <xs:element name="gid_target" type="tns:gid_target_type" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="gid" type="tns:gid_value_type" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
 
-       <!-- Maps to a gid_tracker-->
-       <xs:complexType name="gid_tracker_type">
+       <!-- Maps to a gid_process_attr_tracker-->
+       <xs:complexType name="gid_process_attr_tracker_type">
                <xs:all>
-                       <xs:element name="target_type" type="tns:tracker_target_type" minOccurs="0" maxOccurs="1" />
-                       <xs:element name="targets" type="tns:gid_targets_type" minOccurs="0" />
+                       <xs:element name="process_attr_values" type="tns:gid_process_attr_values_type" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
@@ -532,7 +536,7 @@ THE SOFTWARE.
                </xs:restriction>
        </xs:simpleType>
 
-       <xs:complexType name="vgid_target_type_choice">
+       <xs:complexType name="vgid_value_type_choice">
                <xs:choice>
                        <xs:element name="id" type="tns:vgidbyint" />
                        <xs:element name="name" type="xs:string" />
@@ -540,38 +544,37 @@ THE SOFTWARE.
                </xs:choice>
        </xs:complexType>
 
-       <xs:complexType name="vgid_target_type">
+       <xs:complexType name="vgid_value_type">
                <xs:all>
-                       <xs:element name="type" type="tns:vgid_target_type_choice" minOccurs="0" maxOccurs="1" />
+                       <xs:element name="type" type="tns:vgid_value_type_choice" minOccurs="0" maxOccurs="1" />
                        <xs:element name="success" type="xs:boolean" default="false" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
-       <!-- Maps to a list of vgid_targets-->
-       <xs:complexType name="vgid_targets_type">
+       <!-- Maps to a list of vgid_process_attr_values-->
+       <xs:complexType name="vgid_process_attr_values_type">
                <xs:sequence>
-                       <xs:element name="vgid_target" type="tns:vgid_target_type" minOccurs="0" maxOccurs="unbounded"/>
+                       <xs:element name="vgid" type="tns:vgid_value_type" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
 
-       <!-- Maps to a vgid_tracker-->
-       <xs:complexType name="vgid_tracker_type">
+       <!-- Maps to a vgid_process_attr_tracker-->
+       <xs:complexType name="vgid_process_attr_tracker_type">
                <xs:all>
-                       <xs:element name="target_type" type="tns:tracker_target_type" minOccurs="0" maxOccurs="1" />
-                       <xs:element name="targets" type="tns:vgid_targets_type" minOccurs="0" />
+                       <xs:element name="process_attr_values" type="tns:vgid_process_attr_values_type" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
-       <!-- Maps to a list of trackers-->
-       <xs:complexType name="trackers_type">
+       <!-- Maps to a list of process_attr_trackers-->
+       <xs:complexType name="process_attr_trackers_type">
                <xs:sequence>
                        <xs:choice minOccurs="0" maxOccurs="unbounded">
-                               <xs:element name="pid_tracker" type="tns:pid_tracker_type" maxOccurs="1" />
-                               <xs:element name="vpid_tracker" type="tns:vpid_tracker_type" maxOccurs="1" />
-                               <xs:element name="uid_tracker" type="tns:uid_tracker_type" maxOccurs="1" />
-                               <xs:element name="vuid_tracker" type="tns:vuid_tracker_type" maxOccurs="1" />
-                               <xs:element name="gid_tracker" type="tns:gid_tracker_type" maxOccurs="1" />
-                               <xs:element name="vgid_tracker" type="tns:vgid_tracker_type" maxOccurs="1" />
+                               <xs:element name="pid_process_attr_tracker" type="tns:pid_process_attr_tracker_type" maxOccurs="1" />
+                               <xs:element name="vpid_process_attr_tracker" type="tns:vpid_process_attr_tracker_type" maxOccurs="1" />
+                               <xs:element name="uid_process_attr_tracker" type="tns:uid_process_attr_tracker_type" maxOccurs="1" />
+                               <xs:element name="vuid_process_attr_tracker" type="tns:vuid_process_attr_tracker_type" maxOccurs="1" />
+                               <xs:element name="gid_process_attr_tracker" type="tns:gid_process_attr_tracker_type" maxOccurs="1" />
+                               <xs:element name="vgid_process_attr_tracker" type="tns:vgid_process_attr_tracker_type" maxOccurs="1" />
                        </xs:choice>
                </xs:sequence>
        </xs:complexType>
@@ -584,7 +587,7 @@ THE SOFTWARE.
                        <xs:element name="pids" type="tns:pids_type" minOccurs="0" />
                        <xs:element name="channels" type="tns:channels_type" minOccurs="0" />
                        <xs:element name="events" type="tns:event_list_type" minOccurs="0" />
-                       <xs:element name="trackers" type="tns:trackers_type" minOccurs="0" />
+                       <xs:element name="process_attr_trackers" type="tns:process_attr_trackers_type" minOccurs="0" />
                </xs:all>
        </xs:complexType>
 
@@ -870,56 +873,478 @@ THE SOFTWARE.
                </xs:sequence>
        </xs:complexType>
 
+       <!-- Maps to a lttng_rate_policy subtypes -->
+       <xs:element name="rate_policy_sub_type" abstract="true"/>
+       <xs:element name="rate_policy_every_n" type="tns:rate_policy_every_n_type" substitutionGroup="tns:rate_policy_sub_type" />
+       <xs:element name="rate_policy_once_after_n" type="tns:rate_policy_once_after_n_type" substitutionGroup="tns:rate_policy_sub_type" />
+       <xs:complexType name="rate_policy_every_n_type">
+               <xs:all>
+                       <xs:element name="interval" type="tns:uint64_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+       <xs:complexType name="rate_policy_once_after_n_type">
+               <xs:all>
+                       <xs:element name="threshold" type="tns:uint64_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_rate_policy -->
+       <xs:complexType name="rate_policy_type">
+               <xs:all>
+                       <xs:element ref="tns:rate_policy_sub_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_action subtypes -->
+       <xs:element name="action_sub_type" abstract="true"/>
+       <xs:element name="action_list" type="tns:action_list_type" substitutionGroup="tns:action_sub_type" />
+       <xs:element name="action_notify" type="tns:action_notify_type" substitutionGroup="tns:action_sub_type" />
+       <xs:element name="action_rotate_session" type="tns:action_rotate_session_type" substitutionGroup="tns:action_sub_type" />
+       <xs:element name="action_snapshot_session" type="tns:action_snapshot_session_type" substitutionGroup="tns:action_sub_type" />
+       <xs:element name="action_start" type="tns:action_start_session_type" substitutionGroup="tns:action_sub_type" />
+       <xs:element name="action_stop" type="tns:action_stop_session_type" substitutionGroup="tns:action_sub_type" />
+
+       <!-- Maps to a lttng_action list -->
+       <xs:complexType name="action_list_type">
+               <xs:sequence>
+                       <xs:element name="action" type="tns:action_type" minOccurs="0" maxOccurs="unbounded" />
+               </xs:sequence>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_action notify -->
+       <xs:complexType name="action_notify_type">
+               <xs:all>
+                       <xs:element name="rate_policy" type="tns:rate_policy_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_action rotate session -->
+       <xs:complexType name="action_rotate_session_type">
+               <xs:all>
+                       <xs:element name="rate_policy" type="tns:rate_policy_type" minOccurs="1" />
+                       <xs:element name="session_name" type="xs:string" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to struct lttng_snapshot_output tailored to action MI printing, aka without lttng-sessiond state. -->
+       <xs:complexType name="action_snapshot_output_type">
+               <xs:all>
+                       <xs:element name="max_size" type="tns:uint64_type" minOccurs="0" />
+                       <xs:element name="name" type="tns:name_type" minOccurs="0" />
+                       <xs:element name="session_name" type="tns:name_type" minOccurs="0" />
+                       <xs:element name="ctrl_url" type="xs:string" minOccurs="0" />
+                       <xs:element name="data_url" type="xs:string" minOccurs="0" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_action snapshot session -->
+       <xs:complexType name="action_snapshot_session_type">
+               <xs:all>
+                       <xs:element name="rate_policy" type="tns:rate_policy_type" minOccurs="1" />
+                       <xs:element name="session_name" type="xs:string" minOccurs="1" />
+                       <xs:element name="output" type="tns:action_snapshot_output_type" minOccurs="0" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_action start session -->
+       <xs:complexType name="action_start_session_type">
+               <xs:all>
+                       <xs:element name="rate_policy" type="tns:rate_policy_type" minOccurs="1" />
+                       <xs:element name="session_name" type="xs:string" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_action stop session -->
+       <xs:complexType name="action_stop_session_type">
+               <xs:all>
+                       <xs:element name="rate_policy" type="tns:rate_policy_type" minOccurs="1" />
+                       <xs:element name="session_name" type="xs:string" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_action -->
+       <xs:complexType name="action_type">
+               <xs:all>
+                       <xs:element ref="tns:action_sub_type" minOccurs="1" />
+                       <xs:element name="error_query_results" type="tns:error_query_results_type" minOccurs="0"/>
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to lttng_kernel_probe_location sub types -->
+       <xs:element name="kernel_probe_location_sub_type" abstract="true"/>
+       <xs:element name="kernel_probe_location_address" type="tns:kernel_probe_location_address_type" substitutionGroup="tns:kernel_probe_location_sub_type" />
+       <xs:element name="kernel_probe_location_symbol_offset" type="tns:kernel_probe_location_symbol_offset_type" substitutionGroup="tns:kernel_probe_location_sub_type" />
+
+       <!-- Maps to a lttng_kernel_probe_location_address. -->
+       <xs:complexType name="kernel_probe_location_address_type">
+               <xs:all>
+                       <xs:element name="address" type="tns:uint64_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_kernel_probe_location_symbol_offset_type. -->
+       <xs:complexType name="kernel_probe_location_symbol_offset_type">
+               <xs:all>
+                       <xs:element name="name" type="xs:string" minOccurs="1" />
+                       <xs:element name="offset" type="tns:uint64_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_kernel_probe_location. -->
+       <xs:complexType name="kernel_probe_location_type">
+               <xs:all>
+                       <xs:element ref="tns:kernel_probe_location_sub_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to lttng_user_probe_location sub types -->
+       <xs:element name="userspace_probe_location_sub_type" abstract="true"/>
+       <xs:element name="userspace_probe_location_function" type="tns:userspace_probe_location_function_type" substitutionGroup="tns:userspace_probe_location_sub_type" />
+       <xs:element name="userspace_probe_location_tracepoint" type="tns:userspace_probe_location_tracepoint_type" substitutionGroup="tns:userspace_probe_location_sub_type" />
+
+       <!-- Maps to lttng_userspace_probe_location_lookup_method sub type -->
+       <xs:element name="userspace_probe_location_lookup_method_sub_type" abstract="true"/>
+       <xs:element name="userspace_probe_location_lookup_method_function_default" substitutionGroup="tns:userspace_probe_location_lookup_method_sub_type"> <xs:complexType/> </xs:element>
+       <xs:element name="userspace_probe_location_lookup_method_function_elf" substitutionGroup="tns:userspace_probe_location_lookup_method_sub_type"> <xs:complexType/> </xs:element>
+       <xs:element name="userspace_probe_location_lookup_method_tracepoint_sdt" substitutionGroup="tns:userspace_probe_location_lookup_method_sub_type"> <xs:complexType/> </xs:element>
+
+       <!-- Maps to a lttng_userspace_probe_location_lookup_method. -->
+       <xs:complexType name="userspace_probe_location_lookup_method_type">
+               <xs:all>
+                       <xs:element ref="tns:userspace_probe_location_lookup_method_sub_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+               <!-- Maps to a lttng_userspace_probe_location_function. -->
+       <xs:complexType name="userspace_probe_location_function_type">
+               <xs:all>
+                       <xs:element name="name" type="xs:string" minOccurs="1" />
+                       <xs:element name="binary_path" type="xs:string" minOccurs="1" />
+                       <xs:element name="instrumentation_type" type="tns:userspace_probe_location_function_instrumentation" minOccurs="1" />
+                       <xs:element name="userspace_probe_location_lookup_method" type="tns:userspace_probe_location_lookup_method_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+               <!-- Maps to a lttng_userspace_probe_location_tracepoint. -->
+       <xs:complexType name="userspace_probe_location_tracepoint_type">
+               <xs:all>
+                       <xs:element name="probe_name" type="xs:string" minOccurs="1" />
+                       <xs:element name="provider_name" type="xs:string" minOccurs="1" />
+                       <xs:element name="binary_path" type="xs:string" minOccurs="1" />
+                       <xs:element name="userspace_probe_location_lookup_method" type="tns:userspace_probe_location_lookup_method_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_userspace_probe_location. -->
+       <xs:complexType name="userspace_probe_location_type">
+               <xs:all>
+                       <xs:element ref="tns:userspace_probe_location_sub_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_log_level_rule subtypes -->
+       <xs:element name="log_level_rule_sub_type" abstract="true"/>
+       <xs:element name="log_level_rule_exactly" type="tns:log_level_rule_generic_type" substitutionGroup="tns:log_level_rule_sub_type" />
+       <xs:element name="log_level_rule_at_least_as_severe_as" type="tns:log_level_rule_generic_type" substitutionGroup="tns:log_level_rule_sub_type" />
+
+       <!-- Maps to a lttng_log_level_rule_*. -->
+       <xs:complexType name="log_level_rule_generic_type">
+               <xs:all>
+                       <xs:element name="level" type="xs:integer" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_log_level_rule. -->
+       <xs:complexType name="log_level_rule_type">
+               <xs:all>
+                       <xs:element ref="tns:log_level_rule_sub_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_event_rule subtypes -->
+       <xs:element name="event_rule_sub_type" abstract="true"/>
+       <xs:element name="event_rule_jul_logging" type="tns:event_rule_logging_type" substitutionGroup="tns:event_rule_sub_type" />
+       <xs:element name="event_rule_kernel_kprobe" type="tns:event_rule_kernel_kprobe_type" substitutionGroup="tns:event_rule_sub_type" />
+       <xs:element name="event_rule_kernel_syscall" type="tns:event_rule_kernel_syscall_type" substitutionGroup="tns:event_rule_sub_type" />
+       <xs:element name="event_rule_kernel_tracepoint" type="tns:event_rule_kernel_tracepoint_type" substitutionGroup="tns:event_rule_sub_type" />
+       <xs:element name="event_rule_kernel_uprobe" type="tns:event_rule_kernel_uprobe_type" substitutionGroup="tns:event_rule_sub_type" />
+       <xs:element name="event_rule_log4j_logging" type="tns:event_rule_logging_type" substitutionGroup="tns:event_rule_sub_type" />
+       <xs:element name="event_rule_python_logging" type="tns:event_rule_logging_type" substitutionGroup="tns:event_rule_sub_type" />
+       <xs:element name="event_rule_user_tracepoint" type="tns:event_rule_user_tracepoint_type" substitutionGroup="tns:event_rule_sub_type" />
+
+       <!-- Maps to a lttng_event_rule_kernel_kprobe. -->
+       <xs:complexType name="event_rule_kernel_kprobe_type">
+               <xs:all>
+                       <xs:element name="event_name" type="xs:string" minOccurs="1" />
+                       <xs:element name="kernel_probe_location" type="tns:kernel_probe_location_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_event_rule_kernel_syscall. -->
+       <xs:complexType name="event_rule_kernel_syscall_type">
+               <xs:all>
+                       <xs:element name="emission_site" type="tns:event_rule_kernel_syscall_emission_site" minOccurs="1" />
+                       <xs:element name="name_pattern" type="xs:string" minOccurs="1" />
+                       <xs:element name="filter_expression" type="xs:string" minOccurs="0" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_event_rule_kernel_tracepoint. -->
+       <xs:complexType name="event_rule_kernel_tracepoint_type">
+               <xs:all>
+                       <xs:element name="name_pattern" type="xs:string" minOccurs="1" />
+                       <xs:element name="filter_expression" type="xs:string" minOccurs="0" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_event_rule_kernel_uprobe. -->
+       <xs:complexType name="event_rule_kernel_uprobe_type">
+               <xs:all>
+                       <xs:element name="event_name" type="xs:string" minOccurs="1" />
+                       <xs:element name="userspace_probe_location" type="tns:userspace_probe_location_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+
+       <!-- Maps to a lttng_event_rule_*_logging. -->
+       <xs:complexType name="event_rule_logging_type">
+               <xs:all>
+                       <xs:element name="name_pattern" type="xs:string" minOccurs="1" />
+                       <xs:element name="filter_expression" type="xs:string" minOccurs="0" />
+                       <xs:element name="log_level_rule" type="tns:log_level_rule_type" minOccurs="0" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to exclusion type -->
+       <xs:complexType name="name_pattern_exclusions_type">
+               <xs:sequence>
+                       <xs:element name="name_pattern_exclusion" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+
+
+       <!-- Maps to a lttng_event_rule_user_tracepoint. -->
+       <xs:complexType name="event_rule_user_tracepoint_type">
+               <xs:all>
+                       <xs:element name="name_pattern" type="xs:string" minOccurs="1" />
+                       <xs:element name="filter_expression" type="xs:string" minOccurs="0" />
+                       <xs:element name="log_level_rule" type="tns:log_level_rule_type" minOccurs="0" />
+                       <xs:element name="name_pattern_exclusions" type="tns:name_pattern_exclusions_type" minOccurs="0" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_event_rule. -->
+       <xs:complexType name="event_rule_type">
+               <xs:all>
+                       <xs:element ref="tns:event_rule_sub_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_condition subtypes -->
+       <xs:element name="condition_sub_type" abstract="true" />
+       <xs:element name="condition_buffer_usage_high" type="tns:condition_buffer_usage_type" substitutionGroup="tns:condition_sub_type" />
+       <xs:element name="condition_buffer_usage_low" type="tns:condition_buffer_usage_type" substitutionGroup="tns:condition_sub_type" />
+       <xs:element name="condition_event_rule_matches" type="tns:condition_event_rule_matches_type" substitutionGroup="tns:condition_sub_type" />
+       <xs:element name="condition_session_consumed_size" type="tns:condition_session_consumed_size_type" substitutionGroup="tns:condition_sub_type" />
+       <xs:element name="condition_session_rotation_completed" type="tns:condition_session_rotation_type" substitutionGroup="tns:condition_sub_type" />
+       <xs:element name="condition_session_rotation_ongoing" type="tns:condition_session_rotation_type" substitutionGroup="tns:condition_sub_type" />
+
+       <!-- Allow expression of the threshold in ratio or in bytes -->
+       <xs:element name="buffer_usage_threshold_sub_type" abstract="true" />
+       <xs:element name="threshold_bytes" type="tns:uint64_type" substitutionGroup="tns:buffer_usage_threshold_sub_type" />
+       <xs:element name="threshold_ratio" type="tns:ratio_type" substitutionGroup="tns:buffer_usage_threshold_sub_type" />
+
+       <!-- Maps to a lttng_condition buffer usage for both low and high -->
+       <xs:complexType name="condition_buffer_usage_type">
+               <xs:all>
+                       <xs:element name="session_name" type="xs:string" minOccurs="1" />
+                       <xs:element name="channel_name" type="xs:string" minOccurs="1" />
+                       <xs:element name="domain" type="tns:domain_type_type" minOccurs="1" />
+                       <xs:element ref="tns:buffer_usage_threshold_sub_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to lttng_event_expr sub type -->
+       <xs:element name="event_expr_sub_type" abstract="true" />
+       <xs:element name="event_expr_payload_field" type="tns:event_expr_payload_field_type" substitutionGroup="tns:event_expr_sub_type" />
+       <xs:element name="event_expr_channel_context_field" type="tns:event_expr_channel_context_field_type" substitutionGroup="tns:event_expr_sub_type" />
+       <xs:element name="event_expr_app_specific_context_field" type="tns:event_expr_app_specific_context_field_type" substitutionGroup="tns:event_expr_sub_type" />
+       <xs:element name="event_expr_array_field_element" type="tns:event_expr_array_field_element_type" substitutionGroup="tns:event_expr_sub_type" />
+
+       <!-- Maps to lttng_event_expr payload_field -->
+       <xs:complexType name="event_expr_payload_field_type">
+               <xs:all>
+                       <xs:element name="name" type="xs:string" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+       <!-- Maps to lttng_event_expr context field -->
+       <xs:complexType name="event_expr_channel_context_field_type">
+               <xs:all>
+                       <xs:element name="name" type="xs:string" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to lttng_event_expr app_specific context field -->
+       <xs:complexType name="event_expr_app_specific_context_field_type">
+               <xs:all>
+                       <xs:element name="provider_name" type="xs:string" minOccurs="1" />
+                       <xs:element name="type_name" type="xs:string" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+       <!-- Maps to lttng_event_expr array field -->
+       <xs:complexType name="event_expr_array_field_element_type">
+               <xs:all>
+                       <xs:element name="index" type="tns:uint64_type" minOccurs="1" />
+                       <xs:element name="event_expr" type="tns:event_expr_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_event_expr -->
+       <xs:complexType name="event_expr_type">
+               <xs:all>
+                       <xs:element ref="tns:event_expr_sub_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to an array of lttng_event_expr aka capture descriptor -->
+       <xs:complexType name="capture_descriptors_type">
+               <xs:sequence>
+                       <xs:element name="event_expr" type="tns:event_expr_type" minOccurs="0" maxOccurs="unbounded"/>
+               </xs:sequence>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_condition event rule matches -->
+       <xs:complexType name="condition_event_rule_matches_type">
+               <xs:all>
+                       <xs:element name="capture_descriptors" type="tns:capture_descriptors_type" minOccurs="1" />
+                       <xs:element name="event_rule" type="tns:event_rule_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_condition session consumed size -->
+       <xs:complexType name="condition_session_consumed_size_type">
+               <xs:all>
+                       <xs:element name="session_name" type="xs:string" minOccurs="1" />
+                       <xs:element name="threshold_bytes" type="tns:uint64_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_condition session consumed size -->
+       <xs:complexType name="condition_session_rotation_type">
+               <xs:all>
+                       <xs:element name="session_name" type="xs:string" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_condition -->
+       <xs:complexType name="condition_type">
+               <xs:all>
+                       <xs:element ref="tns:condition_sub_type" minOccurs="1" />
+                       <xs:element name="error_query_results" type="tns:error_query_results_type" minOccurs="0"/>
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to lttng_error_query_result sub type -->
+       <xs:element name="error_query_result_sub_type" abstract="true" />
+       <xs:element name="error_query_result_counter" type="tns:error_query_result_counter_type" substitutionGroup="tns:error_query_result_sub_type" />
+
+       <!-- Maps to lttng_error_query_results -->
+       <xs:complexType name="error_query_result_counter_type">
+               <xs:all>
+                       <xs:element name="value" type="tns:uint64_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to lttng_error_query_result -->
+       <xs:complexType name="error_query_result_type">
+               <xs:all>
+                       <xs:element name="name" type="xs:string" minOccurs="1" />
+                       <xs:element name="description" type="xs:string" minOccurs="1" />
+                       <xs:element ref="tns:error_query_result_sub_type" minOccurs="1" />
+               </xs:all>
+       </xs:complexType>
+
+
+       <!-- Maps to lttng_error_query_results -->
+       <xs:complexType name="error_query_results_type">
+               <xs:sequence>
+                       <xs:element name="error_query_result" type="tns:error_query_result_type" minOccurs="0" maxOccurs="unbounded" />
+               </xs:sequence>
+       </xs:complexType>
+
+       <!-- Maps to a lttng_trigger -->
+       <xs:complexType name="trigger_type">
+               <xs:all>
+                       <xs:element name="action" type="tns:action_type" minOccurs="1" />
+                       <xs:element name="condition" type="tns:condition_type" minOccurs="1" />
+                       <xs:element name="name" type="xs:string" minOccurs="1" />
+                       <xs:element name="owner_uid" type="tns:uidbyint" minOccurs="1"/>
+                       <xs:element name="error_query_results" type="tns:error_query_results_type" minOccurs="0"/>
+               </xs:all>
+       </xs:complexType>
+
+       <!-- Maps to lttng_triggers -->
+       <xs:complexType name="triggers_type">
+               <xs:sequence>
+                       <xs:element name="trigger" type="tns:trigger_type" minOccurs="0" maxOccurs="unbounded" />
+               </xs:sequence>
+       </xs:complexType>
+
        <xs:complexType name="output_type">
                <xs:choice>
-                       <xs:element name="domains" type="tns:domains_type" minOccurs="0" />
-                       <xs:element name="sessions" type="tns:sessions_type" minOccurs="0" />
-                       <xs:element name="session" type="tns:session_type" minOccurs="0" />
-                       <xs:element name="snapshot_action" type="tns:snapshot_cmd_type" minOccurs="0" />
-                       <xs:element name="snapshot" type="tns:snapshot_type" minOccurs="0" />
-                       <xs:element name="version" type="tns:version_type" minOccurs="0" />
-                       <xs:element name="save" type="tns:save_type" minOccurs="0" />
-                       <xs:element name="load" type="tns:load_type" minOccurs="0" />
                        <xs:element name="calibrate" type="tns:calibrate_type" minOccurs="0" />
-                       <xs:element name="contexts" type="tns:contexts_type" minOccurs="0" />
+                       <xs:element name="channel" type="tns:channel_type" minOccurs="0" />
                        <xs:element name="channels" type="tns:channels_type" minOccurs="0" />
+                       <xs:element name="contexts" type="tns:contexts_type" minOccurs="0" />
+                       <xs:element name="domains" type="tns:domains_type" minOccurs="0" />
                        <xs:element name="events" type="tns:event_list_type" minOccurs="0" />
-                       <xs:element name="channel" type="tns:channel_type" minOccurs="0" />
-                       <xs:element name="trackers" type="tns:trackers_type" minOccurs="0" />
+                       <xs:element name="load" type="tns:load_type" minOccurs="0" />
                        <xs:element name="metadata_action" type="tns:metadata_cmd_type" minOccurs="0" />
+                       <xs:element name="process_attr_trackers" type="tns:process_attr_trackers_type" minOccurs="0" />
                        <xs:element name="regenerate_action" type="tns:regenerate_cmd_type" minOccurs="0" />
                        <xs:element name="rotation" type="tns:rotate_type" minOccurs="0" />
                        <xs:element name="rotation_schedule_results" type="tns:rotation_schedule_cmd_type" minOccurs="0" />
+                       <xs:element name="save" type="tns:save_type" minOccurs="0" />
+                       <xs:element name="session" type="tns:session_type" minOccurs="0" />
+                       <xs:element name="sessions" type="tns:sessions_type" minOccurs="0" />
+                       <xs:element name="snapshot" type="tns:snapshot_type" minOccurs="0" />
+                       <xs:element name="snapshot_action" type="tns:snapshot_cmd_type" minOccurs="0" />
+                       <xs:element name="trigger" type="tns:trigger_type" minOccurs="0" />
+                       <xs:element name="triggers" type="tns:triggers_type" minOccurs="0" />
+                       <xs:element name="version" type="tns:version_type" minOccurs="0" />
                </xs:choice>
        </xs:complexType>
 
        <!-- Maps to the mi_lttng commands -->
        <xs:simpleType name="command_string_type">
                <xs:restriction base="xs:string">
+                       <xs:enumeration value="add-context" />
+                       <xs:enumeration value="add-trigger" />
+                       <xs:enumeration value="calibrate" />
+                       <xs:enumeration value="clear" />
                        <xs:enumeration value="create" />
-                       <xs:enumeration value="list" />
-                       <xs:enumeration value="snapshot" />
-                       <xs:enumeration value="version" />
-                       <xs:enumeration value="save" />
-                       <xs:enumeration value="load" />
-                       <xs:enumeration value="start" />
-                       <xs:enumeration value="stop" />
                        <xs:enumeration value="destroy" />
-                       <xs:enumeration value="calibrate" />
-                       <xs:enumeration value="add-context" />
+                       <xs:enumeration value="disable-channel" />
+                       <xs:enumeration value="disable-event" />
+                       <xs:enumeration value="disable-rotation" />
                        <xs:enumeration value="enable-channel" />
                        <xs:enumeration value="enable-event" />
-                       <xs:enumeration value="set-session" />
-                       <xs:enumeration value="disable-event" />
-                       <xs:enumeration value="disable-channel" />
-                       <xs:enumeration value="track" />
-                       <xs:enumeration value="untrack" />
+                       <xs:enumeration value="enable-rotation" />
+                       <xs:enumeration value="list" />
+                       <xs:enumeration value="list-trigger" />
+                       <xs:enumeration value="load" />
                        <xs:enumeration value="metadata" />
                        <xs:enumeration value="regenerate" />
+                       <xs:enumeration value="remove-trigger" />
                        <xs:enumeration value="rotate" />
-                       <xs:enumeration value="enable-rotation" />
-                       <xs:enumeration value="disable-rotation" />
-                       <xs:enumeration value="clear" />
+                       <xs:enumeration value="save" />
+                       <xs:enumeration value="set-session" />
+                       <xs:enumeration value="snapshot" />
+                       <xs:enumeration value="start" />
+                       <xs:enumeration value="stop" />
+                       <xs:enumeration value="track" />
+                       <xs:enumeration value="untrack" />
+                       <xs:enumeration value="version" />
                </xs:restriction>
        </xs:simpleType>
 
This page took 0.039682 seconds and 4 git commands to generate.