org.freedesktop.PolicyKit1.Authority.xml 24.5 KB
Newer Older
David Zeuthen's avatar
David Zeuthen committed
1 2 3 4
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>

5 6 7
  <interface name="org.freedesktop.PolicyKit1.Authority">
    <annotation name="org.gtk.EggDBus.DocString.Summary" value="Authority Interface"/>
    <annotation name="org.gtk.EggDBus.DocString" value="This D-Bus interface is implemented by the <literal>/org/freedesktop/PoliycKit1/Authority</literal> object on the well-known name <literal>org.freedesktop.PolicyKit1</literal> on the system message bus."/>
8

9 10
    <!-- ---------------------------------------------------------------------------------------------------- -->

11 12
    <!-- Subject struct -->
    <annotation name="org.gtk.EggDBus.DeclareStruct" value="Subject">
David Zeuthen's avatar
David Zeuthen committed
13
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Subjects"/>
David Zeuthen's avatar
David Zeuthen committed
14 15 16 17
      <annotation name="org.gtk.EggDBus.DocString" value="<para>This struct describes subjects such as UNIX processes. It is typically used to check if a given process is authorized for an action.</para><para>The following kinds of subjects are known:</para>
                  <formalpara><title>Unix Process</title><para><literal>subject_kind</literal> should be set to <literal>unix-process</literal> with keys <literal>pid</literal> (of type <literal>uint32</literal>) and <literal>start-time</literal> (of type <literal>uint64</literal>).</para></formalpara>
                  <formalpara><title>Unix Session</title><para><literal>subject_kind</literal> should be set to <literal>unix-session</literal> with the key <literal>session-id</literal> (of type <literal>string</literal>).</para></formalpara>
                  <formalpara><title>System Bus Name</title><para><literal>subject_kind</literal> should be set to <literal>system-bus-name</literal> with the key <literal>name</literal> (of type <literal>string</literal>).</para></formalpara>"/>
18

19
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:subject_kind">
David Zeuthen's avatar
David Zeuthen committed
20
        <annotation name="org.gtk.EggDBus.DocString" value="The type of the subject."/>
21
      </annotation>
22

23
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Dict<String,Variant>:subject_details">
David Zeuthen's avatar
David Zeuthen committed
24
        <annotation name="org.gtk.EggDBus.DocString" value="Details about the subject. Depending of the value of @subject_kind, a set of well-defined key/value pairs are guaranteed to be available."/>
25
      </annotation>
26

27 28
    </annotation>

29 30
    <!-- ---------------------------------------------------------------------------------------------------- -->

31 32
    <!-- Identity struct -->
    <annotation name="org.gtk.EggDBus.DeclareStruct" value="Identity">
33
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Identities"/>
David Zeuthen's avatar
David Zeuthen committed
34 35 36 37 38
      <annotation name="org.gtk.EggDBus.DocString" value="<para>This struct describes identities such as UNIX users and UNIX groups. It is typically used to check if a given process is authorized for an action.</para><para>The following kinds of identities are known:</para>
                  <formalpara><title>Unix User</title><para><literal>identity_kind</literal> should be set to <literal>unix-user</literal> with key <literal>uid</literal> (of type <literal>uint32</literal>).</para></formalpara>
                  <formalpara><title>Unix Group</title><para><literal>identity_kind</literal> should be set to <literal>unix-group</literal> with key <literal>gid</literal> (of type <literal>uint32</literal>).</para></formalpara>

"/>
39

40
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:identity_kind">
David Zeuthen's avatar
David Zeuthen committed
41
        <annotation name="org.gtk.EggDBus.DocString" value="Type of identity."/>
42
      </annotation>
43

44
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Dict<String,Variant>:identity_details">
David Zeuthen's avatar
David Zeuthen committed
45
        <annotation name="org.gtk.EggDBus.DocString" value="Details about the identity. Depending of the value of @identity_kind, a set of well-defined key/value pairs are guaranteed to be available."/>
46
      </annotation>
47

48
      <!-- TODO: document values in hash map for each identity type-->
49 50 51

    </annotation>

52 53
    <!-- ---------------------------------------------------------------------------------------------------- -->

54 55
    <!-- ActionDescription struct -->
    <annotation name="org.gtk.EggDBus.DeclareStruct" value="ActionDescription">
David Zeuthen's avatar
David Zeuthen committed
56 57
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Actions"/>
      <annotation name="org.gtk.EggDBus.DocString" value="This struct describes actions registered with the PolicyKit daemon."/>
58

59
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:action_id">
David Zeuthen's avatar
David Zeuthen committed
60
        <annotation name="org.gtk.EggDBus.DocString" value="Action Identifier."/>
61
      </annotation>
62

63
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:description">
David Zeuthen's avatar
David Zeuthen committed
64
        <annotation name="org.gtk.EggDBus.DocString" value="Localized description of the action."/>
65
      </annotation>
66

67
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:message">
David Zeuthen's avatar
David Zeuthen committed
68
        <annotation name="org.gtk.EggDBus.DocString" value="Localized message to be displayed when making the user authenticate for an action."/>
69
      </annotation>
70

71
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:vendor_name">
David Zeuthen's avatar
David Zeuthen committed
72
        <annotation name="org.gtk.EggDBus.DocString" value="Name of the provider of the action or the empty string."/>
73
      </annotation>
74

75
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:vendor_url">
David Zeuthen's avatar
David Zeuthen committed
76
        <annotation name="org.gtk.EggDBus.DocString" value="A URL pointing to a place with more information about the action or the empty string."/>
77
      </annotation>
78

79
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:icon_name">
David Zeuthen's avatar
David Zeuthen committed
80
        <annotation name="org.gtk.EggDBus.DocString" value="The themed icon describing the action or the empty string if no icon is set."/>
81
      </annotation>
82

83 84
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="ImplicitAuthorization:implicit_any">
        <annotation name="org.gtk.EggDBus.Type" value="ImplicitAuthorization"/>
David Zeuthen's avatar
David Zeuthen committed
85
        <annotation name="org.gtk.EggDBus.DocString" value="A value from the #ImplicitAuthorization enumeration for implicit authorizations that apply to any #Subject."/>
86
      </annotation>
87

88 89
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="ImplicitAuthorization:implicit_inactive">
        <annotation name="org.gtk.EggDBus.Type" value="ImplicitAuthorization"/>
David Zeuthen's avatar
David Zeuthen committed
90
        <annotation name="org.gtk.EggDBus.DocString" value="A value from the #ImplicitAuthorization enumeration for implicit authorizations that apply any #Subject in an inactive user session on the local console."/>
91
      </annotation>
92

93 94
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="ImplicitAuthorization:implicit_active">
        <annotation name="org.gtk.EggDBus.Type" value="ImplicitAuthorization"/>
David Zeuthen's avatar
David Zeuthen committed
95
        <annotation name="org.gtk.EggDBus.DocString" value="A value from the #ImplicitAuthorization enumeration for implicit authorizations that apply any #Subject in an active user session on the local console."/>
96
      </annotation>
97

98
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Dict<String,String>:annotations">
David Zeuthen's avatar
David Zeuthen committed
99
        <annotation name="org.gtk.EggDBus.DocString" value="Annotations for the action."/>
100
      </annotation>
101

102
    </annotation>
103

104 105
    <!-- ---------------------------------------------------------------------------------------------------- -->

106 107
    <!-- Flags used for checking authorizations -->
    <annotation name="org.gtk.EggDBus.DeclareFlags" value="CheckAuthorizationFlags">
David Zeuthen's avatar
David Zeuthen committed
108 109 110
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Flags used when checking authorizations"/>
      <annotation name="org.gtk.EggDBus.DocString" value="Flags used in the org.freedesktop.PolicyKit1.Authority.CheckAuthorization() method."/>

111
      <annotation name="org.gtk.EggDBus.Flags.Member" value="AllowUserInteraction">
David Zeuthen's avatar
David Zeuthen committed
112
        <annotation name="org.gtk.EggDBus.DocString" value="If the #Subject can obtain the authorization through authentication, and an authentication agent is available, then attempt to do so. Note, this means that the org.freedesktop.PolicyKit1.Authority.CheckAuthorization() method will block while the user is being asked to authenticate."/>
113
      </annotation>
114
    </annotation>
115

116 117
    <!-- ---------------------------------------------------------------------------------------------------- -->

David Zeuthen's avatar
David Zeuthen committed
118
    <!-- An structure containing the results of an authorization check -->
119 120 121
    <annotation name="org.gtk.EggDBus.DeclareStruct" value="AuthorizationResult">
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Authorization Results"/>
      <annotation name="org.gtk.EggDBus.DocString" value="Describes the result of calling org.freedesktop.PolicyKit1.Authority.CheckAuthorization()."/>
David Zeuthen's avatar
David Zeuthen committed
122

123
      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Boolean:is_authorized">
David Zeuthen's avatar
David Zeuthen committed
124
        <annotation name="org.gtk.EggDBus.DocString" value="TRUE if the given #Subject is authorized for the given action."/>
125
      </annotation>
126 127

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Boolean:is_challenge">
David Zeuthen's avatar
David Zeuthen committed
128
        <annotation name="org.gtk.EggDBus.DocString" value="TRUE if the given #Subject could be authorized if more information was provided, and %CheckAuthorizationFlags.AllowUserInteraction wasn't passed or no suitable authentication agent was available."/>
129
      </annotation>
130 131

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Dict<String,String>:details">
132
        <annotation name="org.gtk.EggDBus.DocString" value="Details for the result or empty if not authorized. Known key/value-pairs include <literal>polkit.temporary_authorization_id</literal> (if the authorization is temporary, this is set to the opaque temporary authorization id), <literal>polkit.retains_authorization_after_challenge</literal> (Set to a non-empty string if the authorization will be retained after authentication (if is_challenge is TRUE)) and <literal>polkit.localauthority.lockdown</literal> (set to a non-empty string if the action is locked down via pklalockdown(1))."/>
133
      </annotation>
134 135
    </annotation>

136 137
    <!-- ---------------------------------------------------------------------------------------------------- -->

138 139
    <!-- An enumeration for implicit authorizations -->
    <annotation name="org.gtk.EggDBus.DeclareEnum" value="ImplicitAuthorization">
David Zeuthen's avatar
David Zeuthen committed
140 141
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Implicit authorizations"/>
      <annotation name="org.gtk.EggDBus.DocString" value="An enumeration for granting implicit authorizations."/>
142

143
      <annotation name="org.gtk.EggDBus.Enum.Member" value="NotAuthorized">
David Zeuthen's avatar
David Zeuthen committed
144
        <annotation name="org.gtk.EggDBus.DocString" value="The #Subject is not authorized."/>
145
      </annotation>
146

147 148 149
      <annotation name="org.gtk.EggDBus.Enum.Member" value="AuthenticationRequired">
        <annotation name="org.gtk.EggDBus.DocString" value="Authentication is required."/>
      </annotation>
150

151 152 153
      <annotation name="org.gtk.EggDBus.Enum.Member" value="AdministratorAuthenticationRequired">
        <annotation name="org.gtk.EggDBus.DocString" value="Authentication as an administrator is required."/>
      </annotation>
154

155 156 157
      <annotation name="org.gtk.EggDBus.Enum.Member" value="AuthenticationRequiredRetained">
        <annotation name="org.gtk.EggDBus.DocString" value="Authentication is required. If the authorization is obtained, it is retained."/>
      </annotation>
David Zeuthen's avatar
David Zeuthen committed
158

159 160 161 162 163
      <annotation name="org.gtk.EggDBus.Enum.Member" value="AdministratorAuthenticationRequiredRetained">
        <annotation name="org.gtk.EggDBus.DocString" value="Authentication as an administrator is required. If the authorization is obtained, it is retained."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Enum.Member" value="Authorized">
David Zeuthen's avatar
David Zeuthen committed
164
        <annotation name="org.gtk.EggDBus.DocString" value="The subject is authorized."/>
165
      </annotation>
166

167 168
    </annotation>

169 170
    <!-- ---------------------------------------------------------------------------------------------------- -->

171 172
    <!-- The error domain used for reporting errors -->
    <annotation name="org.gtk.EggDBus.DeclareErrorDomain" value="Error">
David Zeuthen's avatar
David Zeuthen committed
173
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Errors"/>
David Zeuthen's avatar
David Zeuthen committed
174
      <annotation name="org.gtk.EggDBus.DocString" value="Errors that can be returned by various method calls."/>
David Zeuthen's avatar
David Zeuthen committed
175

176
      <annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.Failed">
David Zeuthen's avatar
David Zeuthen committed
177
        <annotation name="org.gtk.EggDBus.DocString" value="The operation failed."/>
178
      </annotation>
179 180 181
      <annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.Cancelled">
        <annotation name="org.gtk.EggDBus.DocString" value="The operation was cancelled."/>
      </annotation>
182
      <annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.NotSupported">
David Zeuthen's avatar
David Zeuthen committed
183
        <annotation name="org.gtk.EggDBus.DocString" value="The operation is not supported."/>
184 185
      </annotation>
      <annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.NotAuthorized">
David Zeuthen's avatar
David Zeuthen committed
186
        <annotation name="org.gtk.EggDBus.DocString" value="You are not authorized to perform the requested operation."/>
187
      </annotation>
188 189 190 191 192 193

      <!-- errors not exposed in GObject library follows here -->
      <annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique">
        <annotation name="org.gtk.EggDBus.ErrorDomain.Member.Value" value="1000"/>
        <annotation name="org.gtk.EggDBus.DocString" value="The passed @cancellation_id is already in use."/>
      </annotation>
194
    </annotation>
David Zeuthen's avatar
David Zeuthen committed
195

196 197
    <!-- ---------------------------------------------------------------------------------------------------- -->

198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
    <!-- Flags describing what features the Authority implementation supports -->
    <annotation name="org.gtk.EggDBus.DeclareFlags" value="AuthorityFeatures">
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Authority Features"/>
      <annotation name="org.gtk.EggDBus.DocString" value="Flags describing features supported by the Authority implementation."/>

      <annotation name="org.gtk.EggDBus.Flags.Member" value="TemporaryAuthorization">
        <annotation name="org.gtk.EggDBus.DocString" value="The authority supports temporary authorizations that can be obtained through authentication."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Flags.Member" value="Lockdown">
        <annotation name="org.gtk.EggDBus.DocString" value="The authority supports the XXX method."/>
      </annotation>
    </annotation>

    <!-- ---------------------------------------------------------------------------------------------------- -->

    <property name="BackendName" type="s" access="read">
      <annotation name="org.gtk.EggDBus.DocString" value="The name of the currently used Authority backend."/>
    </property>

    <property name="BackendVersion" type="s" access="read">
      <annotation name="org.gtk.EggDBus.DocString" value="The version of the currently used Authority backend."/>
    </property>

    <property name="BackendFeatures" type="u" access="read">
      <annotation name="org.gtk.EggDBus.Type" value="AuthorityFeatures"/>
      <annotation name="org.gtk.EggDBus.DocString" value="The features supported by the currently used Authority backend."/>
    </property>

    <!-- ---------------------------------------------------------------------------------------------------- -->

229
    <method name="EnumerateActions">
230 231 232 233 234 235
      <annotation name="org.gtk.EggDBus.DocString" value="Enumerates all registered PolicyKit actions."/>

      <arg name="locale" direction="in" type="s">
        <annotation name="org.gtk.EggDBus.DocString" value="The locale to get descriptions in or the blank string to use the system locale."/>
      </arg>

236 237
      <arg name="action_descriptions" direction="out" type="a(ssssssuuua{ss})">
        <annotation name="org.gtk.EggDBus.Type" value="Array<ActionDescription>"/>
David Zeuthen's avatar
David Zeuthen committed
238
        <annotation name="org.gtk.EggDBus.DocString" value="An array of #ActionDescription structs."/>
239
      </arg>
240 241
    </method>

242 243
    <!-- ---------------------------------------------------------------------------------------------------- -->

244
    <method name="CheckAuthorization">
245
      <annotation name="org.gtk.EggDBus.DocString" value="<para>Checks if @subject is authorized to perform the action with identifier @action_id.</para><para>If @cancellation_id is non-empty and already in use for the caller, the %org.freedesktop.PolicyKit1.Error.CancellationIdNotUnique error is returned.</para><para>Note that %CheckAuthorizationFlags.AllowUserInteraction SHOULD be passed ONLY if the event that triggered the authorization check is stemming from an user action, e.g. the user pressing a button or attaching a device.</para>"/>
246

247
      <arg name="subject" direction="in" type="(sa{sv})">
David Zeuthen's avatar
David Zeuthen committed
248
        <annotation name="org.gtk.EggDBus.DocString" value="A #Subject struct."/>
249
        <annotation name="org.gtk.EggDBus.Type" value="Subject"/>
250
      </arg>
251 252 253 254 255

      <arg name="action_id" direction="in" type="s">
        <annotation name="org.gtk.EggDBus.DocString" value="Identifier for the action that @subject is attempting to do."/>
      </arg>

256
      <arg name="details" direction="in" type="a{ss}">
257
        <annotation name="org.gtk.EggDBus.DocString" value="Details describing the action. Keys starting with <literal>polkit.</literal> are reserved for internal use and cannot be used."/>
258 259
      </arg>

260 261
      <arg name="flags" direction="in" type="u">
        <annotation name="org.gtk.EggDBus.Type" value="CheckAuthorizationFlags"/>
262
        <annotation name="org.gtk.EggDBus.DocString" value="A set of #CheckAuthorizationFlags."/>
263
      </arg>
264

265 266 267 268
      <arg name="cancellation_id" direction="in" type="s">
        <annotation name="org.gtk.EggDBus.DocString" value="A unique id used to cancel the the authentication check via org.freedesktop.PolicyKit1.Authority.CancelCheckAuthorization() or the empty string if cancellation is not needed."/>
      </arg>

269
      <arg name="result" direction="out" type="(bba{ss})">
270
        <annotation name="org.gtk.EggDBus.Type" value="AuthorizationResult"/>
271
        <annotation name="org.gtk.EggDBus.DocString" value="An #AuthorizationResult structure."/>
272 273 274
      </arg>
    </method>

275 276 277 278 279 280 281 282
    <method name="CancelCheckAuthorization">
      <annotation name="org.gtk.EggDBus.DocString" value="Cancels an authorization check."/>

      <arg name="cancellation_id" direction="in" type="s">
        <annotation name="org.gtk.EggDBus.DocString" value="The @cancellation_id passed to org.freedesktop.PolicyKit1.Authority.CheckAuthorization()."/>
      </arg>
    </method>

283 284
    <!-- ---------------------------------------------------------------------------------------------------- -->

285
    <method name="RegisterAuthenticationAgent">
286 287
      <annotation name="org.gtk.EggDBus.DocString" value="<para>Register an authentication agent.</para><para>Note that current versions of PolicyKit will only work if @session_id is set to the empty string. In the future it might work for non-empty strings if the caller is sufficiently privileged.</para>"/>

288 289 290
      <arg name="subject" direction="in" type="(sa{sv})">
        <annotation name="org.gtk.EggDBus.Type" value="Subject"/>
        <annotation name="org.gtk.EggDBus.DocString" value="The subject to register the authentication agent for, typically a session subject."/>
291
      </arg>
292

293 294 295 296
      <arg name="locale" direction="in" type="s">
        <annotation name="org.gtk.EggDBus.DocString" value="The locale of the authentication agent."/>
      </arg>

297
      <arg name="object_path" direction="in" type="s">
298
        <annotation name="org.gtk.EggDBus.DocString" value="The object path of authentication agent object on the unique name of the caller."/>
299 300 301 302
      </arg>
    </method>

    <method name="UnregisterAuthenticationAgent">
303 304
      <annotation name="org.gtk.EggDBus.DocString" value="Unregister an authentication agent."/>

305 306 307
      <arg name="subject" direction="in" type="(sa{sv})">
        <annotation name="org.gtk.EggDBus.Type" value="Subject"/>
        <annotation name="org.gtk.EggDBus.DocString" value="The @subject passed to org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()."/>
308 309
      </arg>

310
      <arg name="object_path" direction="in" type="s">
311
        <annotation name="org.gtk.EggDBus.DocString" value="The @object_path passed to org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()."/>
312 313 314
      </arg>
    </method>

315
    <method name="AuthenticationAgentResponse">
316 317
      <annotation name="org.gtk.EggDBus.DocString" value="Method for authentication agents to invoke on successful authentication. This method will fail unless a sufficiently privileged caller invokes it."/>

318
      <arg name="cookie" direction="in" type="s">
319
        <annotation name="org.gtk.EggDBus.DocString" value="The cookie identifying the authentication request that was passed to the authentication agent."/>
320 321 322
      </arg>

      <arg name="identity" direction="in" type="(sa{sv})">
323
        <annotation name="org.gtk.EggDBus.Type" value="Identity"/>
David Zeuthen's avatar
David Zeuthen committed
324
        <annotation name="org.gtk.EggDBus.DocString" value="A #Identity struct describing what identity was authenticated."/>
325 326 327
      </arg>
    </method>

328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381
    <!-- ---------------------------------------------------------------------------------------------------- -->

    <!-- TemporaryAuthorization struct -->
    <annotation name="org.gtk.EggDBus.DeclareStruct" value="TemporaryAuthorization">
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Temporary Authorizations"/>
      <annotation name="org.gtk.EggDBus.DocString" value="This struct describes a temporary authorization."/>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:id">
        <annotation name="org.gtk.EggDBus.DocString" value="An opaque identifier for the temporary authorization."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:action_id">
        <annotation name="org.gtk.EggDBus.DocString" value="The action the temporary authorization is for."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Subject:subject">
        <annotation name="org.gtk.EggDBus.Type" value="Subject"/>
        <annotation name="org.gtk.EggDBus.DocString" value="The subject the temporary authorization is for."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="UInt64:time_obtained">
        <annotation name="org.gtk.EggDBus.DocString" value="When the temporary authorization was obtained, in seconds since the Epoch Jan 1, 1970 0:00 UTC."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="UInt64:time_expires">
        <annotation name="org.gtk.EggDBus.DocString" value="When the temporary authorization is set to expire, in seconds since the Epoch Jan 1, 1970 0:00 UTC."/>
      </annotation>
    </annotation>

    <!-- ---------------------------------------------------------------------------------------------------- -->

    <method name="EnumerateTemporaryAuthorizations">
      <annotation name="org.gtk.EggDBus.DocString" value="Retrieves all temporary authorizations that applies to @subject."/>

      <arg name="subject" direction="in" type="(sa{sv})">
        <annotation name="org.gtk.EggDBus.Type" value="Subject"/>
        <annotation name="org.gtk.EggDBus.DocString" value="The subject to get temporary authorizations for."/>
      </arg>

      <arg name="temporary_authorizations" direction="out" type="a(ss(sa{sv})tt)">
        <annotation name="org.gtk.EggDBus.Type" value="Array<TemporaryAuthorization>"/>
        <annotation name="org.gtk.EggDBus.DocString" value="An array of #TemporaryAuthorization structs."/>
      </arg>
    </method>

    <method name="RevokeTemporaryAuthorizations">
      <annotation name="org.gtk.EggDBus.DocString" value="Revokes all temporary authorizations that applies to @subject."/>

      <arg name="subject" direction="in" type="(sa{sv})">
        <annotation name="org.gtk.EggDBus.Type" value="Subject"/>
        <annotation name="org.gtk.EggDBus.DocString" value="The subject to revoke temporary authorizations from."/>
      </arg>
    </method>

382 383 384 385 386 387 388 389
    <method name="RevokeTemporaryAuthorizationById">
      <annotation name="org.gtk.EggDBus.DocString" value="Revokes all temporary authorizations that applies to @subject."/>

      <arg name="id" direction="in" type="s">
        <annotation name="org.gtk.EggDBus.DocString" value="The opaque identifier of the temporary authorization."/>
      </arg>
    </method>

390 391
    <!-- ---------------------------------------------------------------------------------------------------- -->

392
    <signal name="Changed">
David Zeuthen's avatar
David Zeuthen committed
393
      <annotation name="org.gtk.EggDBus.DocString" value="This signal is emitted when actions and/or authorizations change"/>
394 395
    </signal>

David Zeuthen's avatar
David Zeuthen committed
396 397
  </interface>
</node>