1syntax = "proto2";
2
3message Credential {
4    optional string facebook_uid = 0x1;
5    optional string access_token = 0x2;
6}
7
8message EnableRequest {
9    optional Credential credential = 0x1;
10}
11
12message EnableReply {
13    optional Credential credential = 0x1;
14}
15
16message DisableRequest {
17    optional Credential credential = 0x1;
18}
19
20message RevokeRequest {
21    optional Credential credential = 0x1;
22}
23
24message InspectCredentialRequest {
25    optional Credential credential = 0x1;
26}
27
28message InspectCredentialReply {
29    optional Credential alternative_credential = 0x1;
30    optional bool app_user = 0x2;
31    optional bool permanent_error = 0x3;
32    optional bool transient_error = 0x4;
33}
34
35message UserState {
36    optional Credential credential = 0x1;
37}
38
39message UpdateUserStateRequest {
40    optional Credential credential = 0x1;
41}
42
43message OpenGraphError {
44    repeated string permanent = 0x1;
45    repeated string invalid_token = 0x2;
46    repeated string retries = 0x3;
47}
48
49message OpenGraphScrobble {
50    optional int32 create_delay = 0x1;
51}
52
53message OpenGraphConfig {
54    optional OpenGraphError error = 0x1;
55    optional OpenGraphScrobble scrobble = 0x2;
56}
57
58message AuthConfig {
59    optional string url = 0x1;
60    repeated string permissions = 0x2;
61    repeated string blacklist = 0x3;
62    repeated string whitelist = 0x4;
63    repeated string cancel = 0x5;
64}
65
66message ConfigReply {
67    optional string domain = 0x1;
68    optional string app_id = 0x2;
69    optional string app_namespace = 0x3;
70    optional AuthConfig auth = 0x4;
71    optional OpenGraphConfig og = 0x5;
72}
73
74message UserFields {
75    optional bool app_user = 0x1;
76    optional bool display_name = 0x2;
77    optional bool first_name = 0x3;
78    optional bool middle_name = 0x4;
79    optional bool last_name = 0x5;
80    optional bool picture_large = 0x6;
81    optional bool picture_square = 0x7;
82    optional bool gender = 0x8;
83    optional bool email = 0x9;
84}
85
86message UserOptions {
87    optional bool cache_is_king = 0x1;
88}
89
90message UserRequest {
91    optional UserOptions options = 0x1;
92    optional UserFields fields = 0x2;
93}
94
95message User {
96    optional string spotify_username = 0x1;
97    optional string facebook_uid = 0x2;
98    optional bool app_user = 0x3;
99    optional string display_name = 0x4;
100    optional string first_name = 0x5;
101    optional string middle_name = 0x6;
102    optional string last_name = 0x7;
103    optional string picture_large = 0x8;
104    optional string picture_square = 0x9;
105    optional string gender = 0xa;
106    optional string email = 0xb;
107}
108
109message FriendsFields {
110    optional bool app_user = 0x1;
111    optional bool display_name = 0x2;
112    optional bool picture_large = 0x6;
113}
114
115message FriendsOptions {
116    optional int32 limit = 0x1;
117    optional int32 offset = 0x2;
118    optional bool cache_is_king = 0x3;
119    optional bool app_friends = 0x4;
120    optional bool non_app_friends = 0x5;
121}
122
123message FriendsRequest {
124    optional FriendsOptions options = 0x1;
125    optional FriendsFields fields = 0x2;
126}
127
128message FriendsReply {
129    repeated User friends = 0x1;
130    optional bool more = 0x2;
131}
132
133message ShareRequest {
134    optional Credential credential = 0x1;
135    optional string uri = 0x2;
136    optional string message_text = 0x3;
137}
138
139message ShareReply {
140    optional string post_id = 0x1;
141}
142
143message InboxRequest {
144    optional Credential credential = 0x1;
145    repeated string facebook_uids = 0x3;
146    optional string message_text = 0x4;
147    optional string message_link = 0x5;
148}
149
150message InboxReply {
151    optional string message_id = 0x1;
152    optional string thread_id = 0x2;
153}
154
155message PermissionsOptions {
156    optional bool cache_is_king = 0x1;
157}
158
159message PermissionsRequest {
160    optional Credential credential = 0x1;
161    optional PermissionsOptions options = 0x2;
162}
163
164message PermissionsReply {
165    repeated string permissions = 0x1;
166}
167
168message GrantPermissionsRequest {
169    optional Credential credential = 0x1;
170    repeated string permissions = 0x2;
171}
172
173message GrantPermissionsReply {
174    repeated string granted = 0x1;
175    repeated string failed = 0x2;
176}
177
178message TransferRequest {
179    optional Credential credential = 0x1;
180    optional string source_username = 0x2;
181    optional string target_username = 0x3;
182}
183
184