{% if interface.client_interests %}
     
      {% for interest in interface.client_interests %}
      
     {% endif %}
     {% if interface.methods %}
     
      {% for method in interface.methods %}
       {% if method.is_deprecated %}
        
     {% endif %}
     {% if interface.signals %}
     
      {% for signal in interface.signals %}
       {% if signal.is_deprecated %}
        
    {% endif %}
     {% if interface.properties %}
     
      {% for property in interface.properties %}
       {% if property.is_deprecated %}
        
    {% endif %}
     {% if interface.contact_attributes %}
     
      {% for token in interface.contact_attributes %}
       
    {% endif %}
     {% if interface.handler_capability_tokens %}
     
      {% for token in interface.handler_capability_tokens %}
       
    {% endif %}
     {% if interface.types %}
     
      {% for type in interface.types %}
       {% if type.is_deprecated %}
        
    {% endif %}
   
   {% endif %}
   {% if interface.causes_havoc %}
   Client Interests
| {{ interest.name }}{% endfor %} | 
Methods
| {{ method.short_name }} | ({{ method.get_in_args() }}) | → | {{ method.get_out_args() }} | {% if method.is_deprecated %} (deprecated) {% endif %} | 
Signals
| {{ signal.short_name }} | ({{ signal.get_args() }}) | {% if signal.is_deprecated %} (deprecated) {% endif %} | 
Properties
| {{ property.short_name }} | {{ property.dbus_type }} {% if property.type %} ( {{ property.get_type().short_name }}) {% endif %} | {{ property.get_access() }} | {{ property.get_flag_summary() }} | {% if property.is_deprecated %} (deprecated) {% endif %} | 
Contact Attributes
| {{ token.name }} | {{ token.dbus_type }} {% if token.type %} ( {{ token.get_type().short_name }}) {% endif %} | 
Handler Capability Tokens
| {{ token.name }} {% if token.is_family %} (etc.) {% endif %} | 
Types
| {{ type.short_name }} | {{ type.get_type_name() }} | {{ type.dbus_type }} | {% if type.is_deprecated %} (deprecated) {% endif %} | 
WARNING:
    This interface is {{ interface.causes_havoc }} and is likely to cause havoc
    to your API/ABI if bindings are generated. Do not include this interface
    in libraries that care about compatibility.
   
   {% endif %}
   {{ interface.get_added() }}
   {{ interface.get_changed() }}
   {{ interface.get_deprecated() }}
   {% if interface.requires or interface.xor_requires %}
   
    Objects implementing this interface must also implement:
    
   {% endif %}
   {% if interface.docstring %}
    
    - 
    {% for req in interface.get_xor_requires() %}
     
- {% for x in req %} {{ x.name }} {% if not loop.last %} or {% endif %} {% endfor %} {% endfor %} {% for req in interface.get_requires() %}
- {{ req.name }} {% endfor %}
Description
{{ interface.get_docstring() }} {% endif %} {% if interface.client_interests %}Client Interests
     Set using the
     AddClientInterest and
     RemoveClientInterest methods.
    
    {% for interest in interface.client_interests %}
    
    {% endfor %}
   Methods
{% for method in interface.methods %}
     
     (Permalink)
     
      
     {% endif %}
     {% if method.out_args %}
     
      
     {% endif %}
     {{ method.get_docstring() }}
     {% if method.possible_errors %}
     
     
      
     {% endif %}
    
    {% endfor %}
   {{ method.short_name }} ({{ method.get_in_args() }}) → {{ method.get_out_args() }}
{{ method.get_added() }} {{ method.get_changed() }} {{ method.get_deprecated() }} {% if method.no_reply %}The caller should not expect a reply when calling this method.
     {% endif %}
     {% if method.in_args %}
     Parameters
- 
      {% for arg in method.in_args %}
       
- {{ arg.short_name }} — {{ arg.dbus_type }} {% if arg.get_type() %} ({{ arg.get_type().short_name }}) {% endif %} {{ arg.get_added() }} {{ arg.get_changed() }} {{ arg.get_deprecated() }} {{ arg.get_docstring() }} {% endfor %}
Returns
- 
      {% for arg in method.out_args %}
       
- {{ arg.short_name }} — {{ arg.dbus_type }} {% if arg.get_type() %} ({{ arg.get_type().short_name }}) {% endif %} {{ arg.get_added() }} {{ arg.get_changed() }} {{ arg.get_deprecated() }} {{ arg.get_docstring() }} {% endfor %}
Possible Errors
- 
      {% for error in method.possible_errors %}
       
- {{ error.get_error().short_name }} {{ error.get_added() }} {{ error.get_changed() }} {{ error.get_deprecated() }} {{ error.get_docstring() }} {% endfor %}
Signals
{% for signal in interface.signals %}
     
     (Permalink)
     
      
     {% endif %}
     {{ signal.get_docstring() }}
    
    {% endfor %}
   {{ signal.short_name }} ({{ signal.get_args() }})
{{ signal.get_added() }} {{ signal.get_changed() }} {{ signal.get_deprecated() }} {% if signal.args %}Parameters
- 
      {% for arg in signal.args %}
       
- {{ arg.short_name }} — {{ arg.dbus_type }} {% if arg.get_type() %} ({{ arg.get_type().short_name }}) {% endif %} {{ arg.get_added() }} {{ arg.get_changed() }} {{ arg.get_deprecated() }} {{ arg.get_docstring() }} {% endfor %}
Properties
     Accessed using the org.freedesktop.DBus.Properties
     interface.
    
    {% for property in interface.properties %}
    
     
     (Permalink)
     
        
      {% endif %}
     {{ property.get_docstring() }}
    
    {% endfor %}
   {{ property.short_name }} — {{ property.dbus_type }} {% if property.type %} ({{ property.get_type().short_name }}) {% endif %}
{{ property.get_access() }}
     {% if property.sometimes_immutable %}
     Depending on the protocol, this
       property may be immutable which means that it can never
       {% if interface.is_channel_related %}
       change once the channel has been created. Immutable properties SHOULD
       appear in the channel detail list
       of NewChannel
       signals.
       {% else %}
       change.
       {% endif %}
     
     {% elif property.immutable %}
     This property is
       immutable which means that it can never
       {% if interface.is_channel_related %}
       change once the channel has been created. Immutable properties SHOULD
       appear in the channel detail list
       of NewChannel
       signals.
       {% else %}
       change.
       {% endif %}
     
     {% endif %}
     {% if property.sometimes_requestable %}
     Depending on the protocol, this
       property may be requestable, which means that it may be
       allowed in the properties hash of a channel request such as in the
       CreateChannel
       and
       EnsureChannel
       methods
       on Requests
       and ChannelDispatcher.
       If supported on this protocol, the property should appear in either the
       Fixed_Properties or Allowed_Properties of
       a RequestableChannelClass
       advertised by the CM.
     {% elif property.requestable %}
     This property
       is requestable, which means that it is allowed
       in the properties hash of a channel request such as in the
       CreateChannel
       and 
       EnsureChannel
       methods
       on Requests
       and ChannelDispatcher.
       The property should also appear in either the Fixed_Properties
       or Allowed_Properties of
       a RequestableChannelClass
       advertised by the CM.
     {% endif %}
     {{ property.get_added() }}
     {{ property.get_changed() }}
     {{ property.get_deprecated() }}
     {% if not property.immutable %}
     {% if property.emits_changed == property.EMITS_CHANGED_UPDATES %}
     
       When this property changes, the
       
     {% elif property.emits_changed == property.EMITS_CHANGED_INVALIDATES %}
     org.freedesktop.DBus.Properties.PropertiesChanged
       signal is emitted with the new value.
     
       When this property changes, the
       
     {% elif property.emits_changed == property.EMITS_CHANGED_NONE %}
     org.freedesktop.DBus.Properties.PropertiesChanged
       signal is emitted, but the new value is not sent.
     
       The 
     {% endif %}
     {% endif %}
      {% if property.is_connection_parameter %}
      org.freedesktop.DBus.Properties.PropertiesChanged
       signal is not emitted when this property changes.
     Note: Connections implementing this property SHOULD provide a corresponding parameter named {{ property.name }} with the DBus_Property flag. Clients SHOULD update this property by calling UpdateParameters on the relevant Account rather than setting the property directly; change notification is via AccountPropertyChanged.
Contact Attributes
      Attributes that a contact can have, accessed with the
      org.freedesktop.Telepathy.Connection.Interface.Contacts interface.
    
    {% for token in interface.contact_attributes %}
    
     
     (Permalink)
     
    {% endfor %}
   {{ token.name }} — {{ token.dbus_type }} {% if token.type %} ({{ token.get_type().short_name }}) {% endif %}
{{ token.get_added() }} {{ token.get_changed() }} {{ token.get_deprecated() }} {{ token.get_docstring() }}Handler Capability Tokens
      Tokens representing capabilities that a Client.Handler can have.
    
    {% for token in interface.handler_capability_tokens %}
    
     
     (Permalink)
     
    {% endfor %}
   {{ token.name }} {% if token.is_family %} (etc.) {% endif %}
{{ token.get_added() }} {{ token.get_changed() }} {{ token.get_deprecated() }} {{ token.get_docstring() }}Types
{% for type in interface.types %}
      
      {{ type.get_type_name() }} (Permalink)
      
    {% endfor %}