summaryrefslogtreecommitdiff
path: root/data/org.freedesktop.PolicyKit1.Authority.xml
blob: abe0d3fe35dd0e83188c0681399998b2a8f15367 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
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
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>

  <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."/>

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

    <!-- Subject struct -->
    <annotation name="org.gtk.EggDBus.DeclareStruct" value="Subject">
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Subjects"/>
      <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>TODO: document required/optional key/value pairs in @subject_details.</para>"/>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:subject_kind">
        <annotation name="org.gtk.EggDBus.DocString" value="The type of the subject."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Dict<String,Variant>:subject_details">
        <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."/>
      </annotation>

    </annotation>

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

    <!-- Identity struct -->
    <annotation name="org.gtk.EggDBus.DeclareStruct" value="Identity">
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Subjects"/>
      <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>TODO: document required/optional key/value pairs in @identity_details.</para>"/>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:identity_kind">
        <annotation name="org.gtk.EggDBus.DocString" value="Type of identity."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Dict<String,Variant>:identity_details">
        <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."/>
      </annotation>

      <!-- TODO: document values in hash map for each identity type-->

    </annotation>

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

    <!-- ActionDescription struct -->
    <annotation name="org.gtk.EggDBus.DeclareStruct" value="ActionDescription">
      <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."/>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:action_id">
        <annotation name="org.gtk.EggDBus.DocString" value="Action Identifier."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:description">
        <annotation name="org.gtk.EggDBus.DocString" value="Localized description of the action."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:message">
        <annotation name="org.gtk.EggDBus.DocString" value="Localized message to be displayed when making the user authenticate for an action."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:vendor_name">
        <annotation name="org.gtk.EggDBus.DocString" value="Name of the provider of the action or the empty string."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:vendor_url">
        <annotation name="org.gtk.EggDBus.DocString" value="A URL pointing to a place with more information about the action or the empty string."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="String:icon_name">
        <annotation name="org.gtk.EggDBus.DocString" value="The themed icon describing the action or the empty string if no icon is set."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="ImplicitAuthorization:implicit_any">
        <annotation name="org.gtk.EggDBus.Type" value="ImplicitAuthorization"/>
        <annotation name="org.gtk.EggDBus.DocString" value="A value from the #ImplicitAuthorization enumeration for implicit authorizations that apply to any #Subject."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="ImplicitAuthorization:implicit_inactive">
        <annotation name="org.gtk.EggDBus.Type" value="ImplicitAuthorization"/>
        <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."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="ImplicitAuthorization:implicit_active">
        <annotation name="org.gtk.EggDBus.Type" value="ImplicitAuthorization"/>
        <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."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Dict<String,String>:annotations">
        <annotation name="org.gtk.EggDBus.DocString" value="Annotations for the action."/>
      </annotation>

    </annotation>

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

    <!-- Flags used for checking authorizations -->
    <annotation name="org.gtk.EggDBus.DeclareFlags" value="CheckAuthorizationFlags">
      <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."/>

      <annotation name="org.gtk.EggDBus.Flags.Member" value="AllowUserInteraction">
        <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."/>
      </annotation>
    </annotation>

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

    <!-- An enumeration for results when checking for an authorization -->
    <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()."/>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Boolean:is_authorized">
        <annotation name="org.gtk.EggDBus.DocString" value="#TRUE if the given #Subject is authorized for the given action."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Boolean:is_challenge">
        <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."/>
      </annotation>

      <annotation name="org.gtk.EggDBus.Struct.Member"  value="Dict<String,String>:details">
        <annotation name="org.gtk.EggDBus.DocString" value="Details for the result or empty if not authorized."/>
      </annotation>
    </annotation>

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

    <!-- An enumeration for implicit authorizations -->
    <annotation name="org.gtk.EggDBus.DeclareEnum" value="ImplicitAuthorization">
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Implicit authorizations"/>
      <annotation name="org.gtk.EggDBus.DocString" value="An enumeration for granting implicit authorizations."/>

      <annotation name="org.gtk.EggDBus.Enum.Member" value="NotAuthorized">
        <annotation name="org.gtk.EggDBus.DocString" value="The #Subject is not authorized."/>
      </annotation>

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

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

      <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>

      <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">
        <annotation name="org.gtk.EggDBus.DocString" value="The subject is authorized."/>
      </annotation>

    </annotation>

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

    <!-- The error domain used for reporting errors -->
    <annotation name="org.gtk.EggDBus.DeclareErrorDomain" value="Error">
      <annotation name="org.gtk.EggDBus.DocString.Summary" value="Errors"/>
      <annotation name="org.gtk.EggDBus.DocString" value="Errors that can be returned."/>

      <annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.Failed">
        <annotation name="org.gtk.EggDBus.DocString" value="The operation failed."/>
      </annotation>
      <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>
      <annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.NotSupported">
        <annotation name="org.gtk.EggDBus.DocString" value="Operation is not supported."/>
      </annotation>
      <annotation name="org.gtk.EggDBus.ErrorDomain.Member" value="org.freedesktop.PolicyKit1.Error.NotAuthorized">
        <annotation name="org.gtk.EggDBus.DocString" value="Not authorized to perform operation."/>
      </annotation>

      <!-- 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>
    </annotation>

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

    <method name="EnumerateActions">
      <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>

      <arg name="action_descriptions" direction="out" type="a(ssssssuuua{ss})">
        <annotation name="org.gtk.EggDBus.Type" value="Array<ActionDescription>"/>
        <annotation name="org.gtk.EggDBus.DocString" value="An array of #ActionDescription structs."/>
      </arg>
    </method>

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

    <method name="CheckAuthorization">
      <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>"/>

      <arg name="subject" direction="in" type="(sa{sv})">
        <annotation name="org.gtk.EggDBus.DocString" value="A #Subject struct."/>
        <annotation name="org.gtk.EggDBus.Type" value="Subject"/>
      </arg>

      <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>

      <arg name="details" direction="in" type="a{ss}">
        <annotation name="org.gtk.EggDBus.DocString" value="Details describing the action."/>
      </arg>

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

      <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>

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

    <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>

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

    <method name="RegisterAuthenticationAgent">
      <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>"/>

      <arg name="session_id" direction="in" type="s">
        <annotation name="org.gtk.EggDBus.DocString" value="The session to register the authentication for or blank for the session the caller of the method is in."/>
      </arg>

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

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

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

      <arg name="session_id" direction="in" type="s">
        <annotation name="org.gtk.EggDBus.DocString" value="The session identifier passed to org.freedesktop.PolicyKit1.Authority.RegisterAuthenticationAgent()."/>
      </arg>

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

    <method name="AuthenticationAgentResponse">
      <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."/>

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

      <arg name="identity" direction="in" type="(sa{sv})">
        <annotation name="org.gtk.EggDBus.Type" value="Identity"/>
        <annotation name="org.gtk.EggDBus.DocString" value="A #Identity struct describing what identity was authenticated."/>
      </arg>
    </method>

    <signal name="Changed">
      <annotation name="org.gtk.EggDBus.DocString" value="This signal is emitted when actions and/or authorizations change"/>
    </signal>

  </interface>
</node>