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

  <!-- Subject struct -->
  <annotation name="org.gtk.EggDBus.DeclareStruct" value="Subject">

    <annotation name="org.gtk.EggDBus.Struct.Member"  value="s:subject_kind">
      <annotation name="org.gtk.EggDBus.DocString" value="Kind of subject"/>
    </annotation>

    <annotation name="org.gtk.EggDBus.Struct.Member"  value="a{sv}:subject_details">
      <annotation name="org.gtk.EggDBus.DocString" value="Details about the subject"/>
    </annotation>

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

  </annotation>

  <!-- ActionDescription struct -->
  <annotation name="org.gtk.EggDBus.DeclareStruct" value="ActionDescription">

    <annotation name="org.gtk.EggDBus.Struct.Member"  value="s:action_id">
      <annotation name="org.gtk.EggDBus.DocString" value="Action Identifier"/>
    </annotation>
    <annotation name="org.gtk.EggDBus.Struct.Member"  value="s:description">
      <annotation name="org.gtk.EggDBus.DocString" value="Action Description"/>
    </annotation>
    <annotation name="org.gtk.EggDBus.Struct.Member"  value="s:message">
      <annotation name="org.gtk.EggDBus.DocString" value="Action Message"/>
    </annotation>
    <annotation name="org.gtk.EggDBus.Struct.Member"  value="s:vendor_name">
      <annotation name="org.gtk.EggDBus.DocString" value="Vendor Name"/>
    </annotation>
    <annotation name="org.gtk.EggDBus.Struct.Member"  value="s:vendor_url">
      <annotation name="org.gtk.EggDBus.DocString" value="Vendor URL"/>
    </annotation>
    <annotation name="org.gtk.EggDBus.Struct.Member"  value="s:icon_name">
      <annotation name="org.gtk.EggDBus.DocString" value="Icon Name"/>
    </annotation>
    <annotation name="org.gtk.EggDBus.Struct.Member"  value="a{ss}:annotations">
      <annotation name="org.gtk.EggDBus.DocString" value="Annotations"/>
    </annotation>

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

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

  <!-- An enumeration for results when checking for an authorization -->
  <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>

  <!-- Flags used for checking authorizations -->
  <annotation name="org.gtk.EggDBus.DeclareFlags" value="CheckAuthorizationFlags">
    <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 #CheckAuthorization() method is likely to block for a long time."/>
    </annotation>
  </annotation>

  <!-- Authorization struct -->
  <annotation name="org.gtk.EggDBus.DeclareStruct" value="Authorization">
    <annotation name="org.gtk.EggDBus.Struct.Member"  value="s:action_id">
      <annotation name="org.gtk.EggDBus.DocString" value="Action Identifier for the authorization"/>
    </annotation>

    <annotation name="org.gtk.EggDBus.Struct.Member"  value="a{sv}:attributes">
      <annotation name="org.gtk.EggDBus.DocString" value="Attributes of the authorization"/>
    </annotation>
  </annotation>

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

    <method name="EnumerateUsers">
      <arg name="users" direction="out" type="a(sa{sv})">
        <annotation name="org.gtk.EggDBus.StructType" value="Subject"/>
      </arg>
    </method>

    <method name="EnumerateGroups">
      <arg name="groups" direction="out" type="a(sa{sv})">
        <annotation name="org.gtk.EggDBus.StructType" value="Subject"/>
      </arg>
    </method>

    <method name="EnumerateSessions">
      <arg name="sessions" direction="out" type="a(sa{sv})">
        <annotation name="org.gtk.EggDBus.StructType" value="Subject"/>
      </arg>
    </method>

    <method name="EnumerateActions">
      <arg name="locale" direction="in" type="s"/>
      <arg name="action_descriptions" direction="out" type="a(ssssssa{ss})">
        <annotation name="org.gtk.EggDBus.StructType" value="ActionDescription"/>
      </arg>
    </method>

    <method name="CheckAuthorization">
      <arg name="subject" direction="in" type="(sa{sv})">
        <annotation name="org.gtk.EggDBus.StructType" value="Subject"/>
      </arg>
      <arg name="action_id" direction="in" type="s"/>
      <arg name="flags" direction="in" type="i">
        <annotation name="org.gtk.EggDBus.FlagsType" value="CheckAuthorizationFlags"/>
      </arg>

      <arg name="result" direction="out" type="i">
        <annotation name="org.gtk.EggDBus.EnumType" value="AuthorizationResult"/>
      </arg>
    </method>

    <method name="GrantAuthorization">
      <arg name="subject" direction="in" type="(sa{sv})">
        <annotation name="org.gtk.EggDBus.StructType" value="Subject"/>
      </arg>
      <arg name="action_id" direction="in" type="s"/>
    </method>

    <method name="RevokeAuthorization">
      <arg name="subject" direction="in" type="(sa{sv})">
        <annotation name="org.gtk.EggDBus.StructType" value="Subject"/>
      </arg>
      <arg name="action_id" direction="in" type="s"/>
    </method>

    <method name="EnumerateAuthorizations">
      <arg name="subject" direction="in" type="(sa{sv})">
        <annotation name="org.gtk.EggDBus.StructType" value="Subject"/>
      </arg>
      <arg name="authorizations" direction="out" type="a(sa{sv})">
        <annotation name="org.gtk.EggDBus.StructType" value="Authorization"/>
      </arg>
    </method>


  </interface>
</node>