summaryrefslogtreecommitdiff
path: root/data/org.freedesktop.PolicyKit1.Authority.xml
blob: 85826d97291b8e87ef3bfd2b3d1da184a2ec28b5 (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
<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
<node>

  <!-- User defined struct for Subjects -->
  <annotation name="org.gtk.EggDBus.DeclareStruct" value="Subject">
    <annotation name="org.gtk.EggDBus.Struct.Signature" value="(sa{sv})"/>

    <!-- element 0: string:          the subject type; known values: "unix-user", "unix-group", "unix-process" -->

    <!-- element 1: map<string,any>: key/value pairs depending on the subject type -->

    <!-- TODO: document values in hash table for each subject type-->

  </annotation>

  <!-- User defined struct for ActionDescription -->
  <annotation name="org.gtk.EggDBus.DeclareStruct" value="ActionDescription">
    <annotation name="org.gtk.EggDBus.Struct.Signature" value="(ssssssa{ss})"/>

    <!-- element 0: string:              action-id -->
    <!-- element 1: string:              description -->
    <!-- element 2: string:              message -->
    <!-- element 3: string:              vendor name -->
    <!-- element 4: string:              vendor url -->
    <!-- element 5: string:              icon name -->
    <!-- element 6: map<string,string>:  annotations -->

    <!-- TODO: also include defaults -->

  </annotation>

  <!-- User defined struct for AuthorizationClaim -->
  <annotation name="org.gtk.EggDBus.DeclareStruct" value="AuthorizationClaim">
    <annotation name="org.gtk.EggDBus.Struct.Signature" value="((sa{sv})sa{ss})"/>

    <!-- element 0: (sa{sv}):            subject -->
    <!-- element 1: string:              action-id -->
    <!-- element 2: map<string,string>:  attributes -->

  </annotation>

  <!-- The error domain used for reporting errors -->
  <annotation name="org.gtk.EggDBus.DeclareErrorDomain" value="Error">
    <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.NotSupported">
      <annotation name="org.gtk.EggDBus.DocString" value="Operation is not supported"/>
    </annotation>
  </annotation>

  <!-- An enumeration for results of CheckClaim() (TODO: implement this method) -->
  <annotation name="org.gtk.EggDBus.DeclareEnum" value="AuthorizationResult">
    <annotation name="org.gtk.EggDBus.Enum.Member" value="NotAuthorized">
      <annotation name="org.gtk.EggDBus.DocString" value="The subject is not authorized for the specified action"/>
    </annotation>
    <annotation name="org.gtk.EggDBus.Enum.Member" value="Authorized">
      <annotation name="org.gtk.EggDBus.DocString" value="The subject is authorized for the specified action"/>
    </annotation>
    <annotation name="org.gtk.EggDBus.Enum.Member" value="Challenge">
      <annotation name="org.gtk.EggDBus.DocString" value="The subject is authorized if more information is provided"/>
    </annotation>
  </annotation>


  <interface name="org.freedesktop.PolicyKit1.Authority">

    <method name="SayHello">
      <arg name="message" direction="in" type="s"/>
      <arg name="result" direction="out" type="s"/>
    </method>

    <method name="EnumerateUsers">
      <arg name="users" direction="out" type="a(sa{sv})"/>
    </method>

    <method name="EnumerateActions">
      <arg name="locale" direction="in" type="s"/>
      <arg name="action_descriptions" direction="out" type="a(ssssssa{ss})"/>
    </method>

    <method name="CheckClaim">
      <arg name="claim" direction="in" type="((sa{sv})sa{ss})">
        <annotation name="org.gtk.EggDBus.StructType" value="AuthorizationClaim"/>
      </arg>
      <arg name="result" direction="out" type="i">
        <annotation name="org.gtk.EggDBus.EnumType" value="AuthorizationResult"/>
      </arg>
    </method>

  </interface>
</node>