raml_parser 0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +14 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +39 -0
  8. data/Rakefile +7 -0
  9. data/lib/raml_parser.rb +270 -0
  10. data/lib/raml_parser/model.rb +146 -0
  11. data/lib/raml_parser/version.rb +3 -0
  12. data/lib/raml_parser/yaml_helper.rb +122 -0
  13. data/raml_parser.gemspec +26 -0
  14. data/spec/examples/raml/documentation.raml +11 -0
  15. data/spec/examples/raml/external/box.raml +8473 -0
  16. data/spec/examples/raml/external/bug.raml +12 -0
  17. data/spec/examples/raml/external/github.raml +21650 -0
  18. data/spec/examples/raml/external/groups_and_nesting.raml +22 -0
  19. data/spec/examples/raml/external/instagram.yml +3369 -0
  20. data/spec/examples/raml/external/json_schema.json +18 -0
  21. data/spec/examples/raml/external/jukebox-api.raml +191 -0
  22. data/spec/examples/raml/external/jukebox-include-album-new.sample +8 -0
  23. data/spec/examples/raml/external/jukebox-include-album-retrieve.sample +30 -0
  24. data/spec/examples/raml/external/jukebox-include-album-songs.sample +14 -0
  25. data/spec/examples/raml/external/jukebox-include-album.schema +36 -0
  26. data/spec/examples/raml/external/jukebox-include-albums.sample +32 -0
  27. data/spec/examples/raml/external/jukebox-include-artist-albums.sample +42 -0
  28. data/spec/examples/raml/external/jukebox-include-artist-new.sample +5 -0
  29. data/spec/examples/raml/external/jukebox-include-artist-retrieve.sample +52 -0
  30. data/spec/examples/raml/external/jukebox-include-artist.schema +20 -0
  31. data/spec/examples/raml/external/jukebox-include-artists.sample +32 -0
  32. data/spec/examples/raml/external/jukebox-include-song-new.sample +5 -0
  33. data/spec/examples/raml/external/jukebox-include-song-retrieve.sample +15 -0
  34. data/spec/examples/raml/external/jukebox-include-song.schema +24 -0
  35. data/spec/examples/raml/external/jukebox-include-songs.sample +14 -0
  36. data/spec/examples/raml/external/linkedin-v1-single.yml +2671 -0
  37. data/spec/examples/raml/external/mule_sales_enablement.raml +148 -0
  38. data/spec/examples/raml/external/multiple-methods.raml +11 -0
  39. data/spec/examples/raml/external/named_parameters.raml +85 -0
  40. data/spec/examples/raml/external/requests-responses.raml +47 -0
  41. data/spec/examples/raml/external/resource_summary_spacing.raml +42 -0
  42. data/spec/examples/raml/external/simple.raml +233 -0
  43. data/spec/examples/raml/external/stripe.raml +12226 -0
  44. data/spec/examples/raml/external/test.raml +11 -0
  45. data/spec/examples/raml/external/twitter.raml +34284 -0
  46. data/spec/examples/raml/external/xml_example.xml +25 -0
  47. data/spec/examples/raml/external/xml_schema.xsd +50 -0
  48. data/spec/examples/raml/formparameters.raml +23 -0
  49. data/spec/examples/raml/headers.raml +15 -0
  50. data/spec/examples/raml/issue2.raml +51 -0
  51. data/spec/examples/raml/methods.raml +9 -0
  52. data/spec/examples/raml/parameters.raml +21 -0
  53. data/spec/examples/raml/parametersinflection.raml +21 -0
  54. data/spec/examples/raml/queryparameters.raml +14 -0
  55. data/spec/examples/raml/requestbodies.raml +21 -0
  56. data/spec/examples/raml/resources.raml +15 -0
  57. data/spec/examples/raml/resourcetypes.raml +16 -0
  58. data/spec/examples/raml/responses.raml +25 -0
  59. data/spec/examples/raml/securedby1.raml +20 -0
  60. data/spec/examples/raml/securedby2.raml +21 -0
  61. data/spec/examples/raml/securityschemes.raml +47 -0
  62. data/spec/examples/raml/simple.raml +6 -0
  63. data/spec/examples/raml/traits.raml +34 -0
  64. data/spec/examples/raml/uriparameters.raml +16 -0
  65. data/spec/examples/yaml/include1.yml +2 -0
  66. data/spec/examples/yaml/include2.yml +1 -0
  67. data/spec/examples/yaml/simple.yml +2 -0
  68. data/spec/examples/yaml/traversing.yml +11 -0
  69. data/spec/lib/raml_parser/yaml_parser_spec.rb +38 -0
  70. data/spec/lib/raml_parser_spec.rb +196 -0
  71. data/spec/spec_helper.rb +91 -0
  72. metadata +229 -0
@@ -0,0 +1,32 @@
1
+ [
2
+ {
3
+ "artistId": "110e8300-e32b-41d4-a716-664400445500",
4
+ "artistName": "Daft Punk",
5
+ "description": "French electronic music duo consisting of musicians Guy-Manuel de Homem-Christo and Thomas Bangalter",
6
+ "imageURL": "http://travelhymns.com/wp-content/uploads/2013/06/random-access-memories1.jpg",
7
+ "nationality": {
8
+ "countryCode": "FRA",
9
+ "countryName": "France"
10
+ }
11
+ },
12
+ {
13
+ "artistId": "110e8300-e32b-41d4-a716-229932554400",
14
+ "artistName": "Pink Floyd",
15
+ "description": "English rock band that achieved international acclaim with their progressive and psychedelic music.",
16
+ "imageURL": "http://www.billboard.com/files/styles/promo_650/public/stylus/1251869-pink-floyd-reunions-617-409.jpg",
17
+ "nationality": {
18
+ "countryCode": "ENG",
19
+ "countryName": "England"
20
+ }
21
+ },
22
+ {
23
+ "artistId": "11032be3-41d4-4455-a716-664400a71600",
24
+ "artistName": "Radiohead",
25
+ "description": " English rock band from Abingdon, Oxfordshire, formed in 1985",
26
+ "imageURL": "http://www.wired.com/images_blogs/photos/uncategorized/2007/10/01/radiohead.jpg",
27
+ "nationality": {
28
+ "countryCode": "ENG",
29
+ "countryName": "England"
30
+ }
31
+ }
32
+ ]
@@ -0,0 +1,5 @@
1
+ {
2
+ "songId": "550e8400-e29b-41d4-a716-446655440000",
3
+ "songTitle": "Get Lucky",
4
+ "albumId": "183100e3-0e2b-4404-a716-66104d440550"
5
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "songId": "550e8400-e29b-41d4-a716-446655440000",
3
+ "songTitle": "Get Lucky",
4
+ "duration": "6:07",
5
+ "artist": {
6
+ "artistId": "110e8300-e32b-41d4-a716-664400445500"
7
+ "artistName": "Daft Punk",
8
+ "imageURL": "http://travelhymns.com/wp-content/uploads/2013/06/random-access-memories1.jpg"
9
+ },
10
+ "album": {
11
+ "albumId": "183100e3-0e2b-4404-a716-66104d440550",
12
+ "albumName": "Random Access Memories",
13
+ "imageURL": "http://upload.wikimedia.org/wikipedia/en/a/a7/Random_Access_Memories.jpg"
14
+ }
15
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "type": "object",
3
+ "$schema": "http://json-schema.org/draft-03/schema",
4
+ "id": "http://jsonschema.net",
5
+ "required": true,
6
+ "properties": {
7
+ "songId": {
8
+ "type": "string",
9
+ "required": true,
10
+ "minLength": 36,
11
+ "maxLength": 36
12
+ },
13
+ "songTitle": {
14
+ "type": "string",
15
+ "required": true
16
+ },
17
+ "albumId": {
18
+ "type": "string",
19
+ "required": true,
20
+ "minLength": 36,
21
+ "maxLength": 36
22
+ }
23
+ }
24
+ }
@@ -0,0 +1,14 @@
1
+ [
2
+ {
3
+ "songId": "550e8400-e29b-41d4-a716-446655440000",
4
+ "songTitle": "Get Lucky"
5
+ },
6
+ {
7
+ "songId": "550e8400-e29b-41d4-a716-446655440111",
8
+ "songTitle": "Loose yourself to dance"
9
+ },
10
+ {
11
+ "songId": "550e8400-e29b-41d4-a716-446655440222",
12
+ "songTitle": "Gio sorgio by Morodera"
13
+ }
14
+ ]
@@ -0,0 +1,2671 @@
1
+ #%RAML 0.8
2
+ ---
3
+ title: LinkedIn REST API
4
+ version: v1
5
+ baseUri: https://api.linkedin.com/{version}
6
+ resourceTypes:
7
+ - fieldSelectors:
8
+ usage: |
9
+ Use this resource type when field selectors exist in resource path
10
+ type: baseResource
11
+ description: |
12
+ Describes field selectors uri path parameter
13
+ uriParameters:
14
+ fieldSelectors:
15
+ displayName: Field Selectors
16
+ description: |
17
+ Many of our resources allow you to specify what fields you want returned. We call this syntax field selectors.
18
+ By indicating exactly the information you need, we can optimize the amount of time needed to return your results.
19
+ It also reduces the amount of data passing across the wire. The two combine to make our APIs speedy and efficient,
20
+ a critical factor in any web application, and more so for anyone relying on external APIs.
21
+
22
+ Field selectors are specified after the resource identifiers and path components of a resource, prefixed by a colon,
23
+ contained within parenthesis, and separated by commas. Fields will be returned in the order specified. When URL-encoding
24
+ your resource URLs, ensure that the parenthesis used in selectors remain unescaped.
25
+
26
+ Examples
27
+ --------
28
+ To get a member's ID, first name, last name, and industry:
29
+ `http://api.linkedin.com/v1/people/~:(id,first-name,last-name,industry)`
30
+
31
+ Or the same set of information for their connections:
32
+ `http://api.linkedin.com/v1/people/~/connections:(id,first-name,last-name,industry)`
33
+
34
+ Fields selectors can also be nested to access individual fields from a larger collection. For example, to get just the
35
+ job titles and not the rest of the information about positions:
36
+ `http://api.linkedin.com/v1/people/~/connections:(id,first-name,last-name,positions:(title))`
37
+
38
+ Field selectors with resource identifiers allow you to request information about multiple entities at once. Specify them
39
+ similarly, but append a double colon - here's an example getting profile information about thee members: the first is the
40
+ current member, indicated by a tilde; the next has an id of 12345; and the last has a public profile URL
41
+
42
+ `http://api.linkedin.com/v1/people::(~, id=12345,url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fadamnash)`
43
+ type: string
44
+ example: :(id,first-name,last-name,industry)
45
+ #TODO: add validation for URI path parameter, probably pattern
46
+ - baseResource:
47
+ usage: |
48
+ All LinkedIn resources should use it
49
+ description: |
50
+ This is base resource type described common request and response headers and error response codes
51
+ get?: &common
52
+ headers:
53
+ x-li-format:
54
+ description: |
55
+ Type of data
56
+ type: string
57
+ enum: [ xml, json, jsonp ]
58
+ responses:
59
+ 400:
60
+ description: |
61
+ Bad Request
62
+ body: &errorSchemas
63
+ text/xml:
64
+ schema: |
65
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
66
+ <xs:element name="error">
67
+ <xs:complexType>
68
+ <xs:sequence>
69
+ <xs:element type="xs:short" name="status"/>
70
+ <xs:element type="xs:long" name="timestamp"/>
71
+ <xs:element type="xs:string" name="request-id"/>
72
+ <xs:element type="xs:byte" name="error-code"/>
73
+ <xs:element type="xs:string" name="message"/>
74
+ </xs:sequence>
75
+ </xs:complexType>
76
+ </xs:element>
77
+ </xs:schema>
78
+ example: |
79
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
80
+ <error>
81
+ <status>401</status>
82
+ <timestamp>1378122242574</timestamp>
83
+ <request-id>8PQJRYO7JK</request-id>
84
+ <error-code>0</error-code>
85
+ <message>Invalid access token.</message>
86
+ </error>
87
+ application/json:
88
+ schema: |
89
+ {
90
+ "type":"object",
91
+ "$schema": "http://json-schema.org/draft-03/schema",
92
+ "id": "http://jsonschema.net",
93
+ "required":false,
94
+ "properties":{
95
+ "errorCode": {
96
+ "type":"number",
97
+ "id": "http://jsonschema.net/errorCode",
98
+ "required":false
99
+ },
100
+ "message": {
101
+ "type":"string",
102
+ "id": "http://jsonschema.net/message",
103
+ "required":false
104
+ },
105
+ "requestId": {
106
+ "type":"string",
107
+ "id": "http://jsonschema.net/requestId",
108
+ "required":false
109
+ },
110
+ "status": {
111
+ "type":"number",
112
+ "id": "http://jsonschema.net/status",
113
+ "required":false
114
+ },
115
+ "timestamp": {
116
+ "type":"number",
117
+ "id": "http://jsonschema.net/timestamp",
118
+ "required":false
119
+ }
120
+ }
121
+ }
122
+ example: |
123
+ {
124
+ "errorCode": 0,
125
+ "message": "Invalid access token.",
126
+ "requestId": "Y703T8HXBF",
127
+ "status": 401,
128
+ "timestamp": 1378122137646
129
+ }
130
+ application/javascript:
131
+ # schema: TODO ???
132
+ example: |
133
+ callback({
134
+ "errorCode": 0,
135
+ "message": "Invalid access token.",
136
+ "requestId": "3W65MK0G8R",
137
+ "status": 401,
138
+ "timestamp": 1378120873591
139
+ })
140
+ 401:
141
+ description: |
142
+ Unauthorized
143
+ body: *errorSchemas
144
+ 403:
145
+ description: |
146
+ Forbidden
147
+ body: *errorSchemas
148
+ 503:
149
+ description: |
150
+ Service Unavailable
151
+ body: *errorSchemas
152
+ put?: *common
153
+ post?: *common
154
+ delete?: *common
155
+ traits:
156
+ - secureUrlParam:
157
+ description: |
158
+ This trait should be used for indicate that you want the URLs in your response to be HTTPS
159
+ queryParameters:
160
+ secure-urls:
161
+ description: |
162
+ secure-urls query parameter indicates that you want the URLs in your response to be HTTPS
163
+ type: boolean
164
+ securitySchemes:
165
+ - oauth_2_0:
166
+ description: |
167
+ LinkedIn supports OAuth 2.0 for authenticating all API requests.
168
+ type: OAuth 2.0
169
+ describedBy:
170
+ queryParameters:
171
+ oauth2_access_token:
172
+ description: |
173
+ Used to send a valid OAuth 2 access token
174
+ type: string
175
+ settings:
176
+ authorizationUri: https://www.linkedin.com/uas/oauth2/authorization
177
+ accessTokenUri: https://www.linkedin.com/uas/oauth2/accessToken
178
+ authorizationGrants: code
179
+ - oauth_1_0:
180
+ description: |
181
+ OAuth 1.0 continues to be supported for all API requests, but OAuth 2.0 is now preferred.
182
+ type: OAuth 1.0
183
+ settings:
184
+ requestTokenUri: https://api.linkedin.com/uas/oauth/requestToken
185
+ authorizationUri: https//www.linkedin.com/uas/oauth/authenticate
186
+ tokenCredentialsUri: https://api.linkedin.com/uas/oauth/accessToken
187
+ securedBy: [oauth_2_0, oauth_1_0]
188
+ /people:
189
+ displayName: People
190
+ /~{fieldSelectors}:
191
+ displayName: Profile API
192
+ type: fieldSelectors
193
+ get:
194
+ is: [secureUrlParam]
195
+ description: |
196
+ Returns profile of the current user
197
+ responses:
198
+ 200:
199
+ body:
200
+ text/xml:
201
+ schema: |
202
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
203
+ <xs:element name="person">
204
+ <xs:complexType>
205
+ <xs:sequence>
206
+ <xs:element type="xs:int" name="id"/>
207
+ <xs:element type="xs:string" name="first-name"/>
208
+ <xs:element type="xs:string" name="last-name"/>
209
+ <xs:element type="xs:string" name="headline"/>
210
+ <xs:element name="location">
211
+ <xs:complexType>
212
+ <xs:sequence>
213
+ <xs:element type="xs:string" name="name"/>
214
+ <xs:element name="country">
215
+ <xs:complexType>
216
+ <xs:sequence>
217
+ <xs:element type="xs:short" name="code"/>
218
+ </xs:sequence>
219
+ </xs:complexType>
220
+ </xs:element>
221
+ </xs:sequence>
222
+ </xs:complexType>
223
+ </xs:element>
224
+ <xs:element type="xs:string" name="industry"/>
225
+ <xs:element type="xs:byte" name="distance"/>
226
+ <xs:element name="relation-to-viewer">
227
+ <xs:complexType>
228
+ <xs:sequence>
229
+ <xs:element type="xs:byte" name="distance"/>
230
+ </xs:sequence>
231
+ </xs:complexType>
232
+ </xs:element>
233
+ <xs:element type="xs:byte" name="num-recommenders"/>
234
+ <xs:element type="xs:string" name="current-status"/>
235
+ <xs:element type="xs:long" name="current-status-timestamp"/>
236
+ <xs:element name="connections">
237
+ <xs:complexType>
238
+ <xs:simpleContent>
239
+ <xs:extension base="xs:string">
240
+ <xs:attribute type="xs:byte" name="total"/>
241
+ </xs:extension>
242
+ </xs:simpleContent>
243
+ </xs:complexType>
244
+ </xs:element>
245
+ <xs:element type="xs:string" name="summary"/>
246
+ <xs:element name="positions">
247
+ <xs:complexType>
248
+ <xs:sequence>
249
+ <xs:element name="position" maxOccurs="unbounded" minOccurs="0">
250
+ <xs:complexType>
251
+ <xs:sequence>
252
+ <xs:element type="xs:string" name="id"/>
253
+ <xs:element type="xs:string" name="title"/>
254
+ <xs:element type="xs:string" name="summary"/>
255
+ <xs:element name="start-date">
256
+ <xs:complexType>
257
+ <xs:sequence>
258
+ <xs:element type="xs:short" name="year"/>
259
+ <xs:element type="xs:string" name="month"/>
260
+ </xs:sequence>
261
+ </xs:complexType>
262
+ </xs:element>
263
+ <xs:element type="xs:string" name="is-current"/>
264
+ <xs:element name="company">
265
+ <xs:complexType>
266
+ <xs:sequence>
267
+ <xs:element type="xs:string" name="name"/>
268
+ </xs:sequence>
269
+ </xs:complexType>
270
+ </xs:element>
271
+ </xs:sequence>
272
+ </xs:complexType>
273
+ </xs:element>
274
+ </xs:sequence>
275
+ <xs:attribute type="xs:byte" name="total"/>
276
+ </xs:complexType>
277
+ </xs:element>
278
+ <xs:element name="educations">
279
+ <xs:complexType>
280
+ <xs:sequence>
281
+ <xs:element name="education" maxOccurs="unbounded" minOccurs="0">
282
+ <xs:complexType>
283
+ <xs:sequence>
284
+ <xs:element type="xs:string" name="id"/>
285
+ <xs:element type="xs:string" name="school-name"/>
286
+ <xs:element type="xs:string" name="degree"/>
287
+ <xs:element name="start-date">
288
+ <xs:complexType>
289
+ <xs:sequence>
290
+ <xs:element type="xs:short" name="year"/>
291
+ </xs:sequence>
292
+ </xs:complexType>
293
+ </xs:element>
294
+ <xs:element name="end-date">
295
+ <xs:complexType>
296
+ <xs:sequence>
297
+ <xs:element type="xs:short" name="year"/>
298
+ </xs:sequence>
299
+ </xs:complexType>
300
+ </xs:element>
301
+ </xs:sequence>
302
+ </xs:complexType>
303
+ </xs:element>
304
+ </xs:sequence>
305
+ <xs:attribute type="xs:byte" name="total"/>
306
+ </xs:complexType>
307
+ </xs:element>
308
+ <xs:element name="member-url-resources">
309
+ <xs:complexType>
310
+ <xs:sequence>
311
+ <xs:element name="member-url" maxOccurs="unbounded" minOccurs="0">
312
+ <xs:complexType>
313
+ <xs:sequence>
314
+ <xs:element type="xs:anyURI" name="url"/>
315
+ <xs:element type="xs:string" name="name"/>
316
+ </xs:sequence>
317
+ </xs:complexType>
318
+ </xs:element>
319
+ </xs:sequence>
320
+ </xs:complexType>
321
+ </xs:element>
322
+ <xs:element name="api-standard-profile-request">
323
+ <xs:complexType>
324
+ <xs:sequence>
325
+ <xs:element type="xs:anyURI" name="url"/>
326
+ <xs:element name="headers">
327
+ <xs:complexType>
328
+ <xs:sequence>
329
+ <xs:element name="http-header" maxOccurs="unbounded" minOccurs="0">
330
+ <xs:complexType>
331
+ <xs:sequence>
332
+ <xs:element type="xs:string" name="name"/>
333
+ <xs:element type="xs:string" name="value"/>
334
+ </xs:sequence>
335
+ </xs:complexType>
336
+ </xs:element>
337
+ </xs:sequence>
338
+ </xs:complexType>
339
+ </xs:element>
340
+ </xs:sequence>
341
+ </xs:complexType>
342
+ </xs:element>
343
+ <xs:element name="site-standard-profile-request">
344
+ <xs:complexType>
345
+ <xs:sequence>
346
+ <xs:element type="xs:anyURI" name="url"/>
347
+ </xs:sequence>
348
+ </xs:complexType>
349
+ </xs:element>
350
+ <xs:element type="xs:anyURI" name="picture-url"/>
351
+ </xs:sequence>
352
+ </xs:complexType>
353
+ </xs:element>
354
+ </xs:schema>
355
+ example: |
356
+ <person>
357
+ <id>123456</id>
358
+ <first-name>first name</first-name>
359
+ <last-name>last name</last-name>
360
+ <headline>headline</headline>
361
+ <location>
362
+ <name>name</name>
363
+ <country>
364
+ <code>804</code>
365
+ </country>
366
+ </location>
367
+ <industry>industry</industry>
368
+ <distance>50</distance>
369
+ <relation-to-viewer>
370
+ <distance>100</distance>
371
+ </relation-to-viewer>
372
+ <num-recommenders>10</num-recommenders>
373
+ <current-status>online</current-status>
374
+ <current-status-timestamp>12367123678</current-status-timestamp>
375
+ <connections total="10" />
376
+ <summary>summary</summary>
377
+ <positions total="2">
378
+ <position>
379
+ <id>id1</id>
380
+ <title>title1</title>
381
+ <summary>summary1</summary>
382
+ <start-date>
383
+ <year>2013</year>
384
+ <month>Jan</month>
385
+ </start-date>
386
+ <is-current>false</is-current>
387
+ <company>
388
+ <name>Company1</name>
389
+ </company>
390
+ </position>
391
+ <position>
392
+ <id>id2</id>
393
+ <title>title2</title>
394
+ <summary>summary2</summary>
395
+ <start-date>
396
+ <year>2013</year>
397
+ <month>Jun</month>
398
+ </start-date>
399
+ <is-current>true</is-current>
400
+ <company>
401
+ <name>Company2</name>
402
+ </company>
403
+ </position>
404
+ </positions>
405
+ <educations total="2">
406
+ <education>
407
+ <id>id1</id>
408
+ <school-name>school1</school-name>
409
+ <degree>degree1</degree>
410
+ <start-date>
411
+ <year>2000</year>
412
+ </start-date>
413
+ <end-date>
414
+ <year>2008</year>
415
+ </end-date>
416
+ </education>
417
+ <education>
418
+ <id>id2</id>
419
+ <school-name>university1</school-name>
420
+ <degree>degree2</degree>
421
+ <start-date>
422
+ <year>2008</year>
423
+ </start-date>
424
+ <end-date>
425
+ <year>2013</year>
426
+ </end-date>
427
+ </education>
428
+ </educations>
429
+ <member-url-resources>
430
+ <member-url>
431
+ <url>http://url1</url>
432
+ <name>name of url1</name>
433
+ </member-url>
434
+ <member-url>
435
+ <url>http://url2</url>
436
+ <name>name of url2</name>
437
+ </member-url>
438
+ </member-url-resources>
439
+ <api-standard-profile-request>
440
+ <url>http://url.com</url>
441
+ <headers>
442
+ <http-header>
443
+ <name>Date</name>
444
+ <value>237423472sdf</value>
445
+ </http-header>
446
+ <http-header>
447
+ <name>Acept-type</name>
448
+ <value>*/*</value>
449
+ </http-header>
450
+ </headers>
451
+ </api-standard-profile-request>
452
+ <site-standard-profile-request>
453
+ <url>http://url.com</url>
454
+ </site-standard-profile-request>
455
+ <picture-url>http://picture.url</picture-url>
456
+ </person>
457
+ application/json:
458
+ schema: |
459
+ {
460
+ "type":"object",
461
+ "$schema": "http://json-schema.org/draft-03/schema",
462
+ "id": "http://jsonschema.net",
463
+ "required":false,
464
+ "properties":{
465
+ "firstName": {
466
+ "type":"string",
467
+ "id": "http://jsonschema.net/firstName",
468
+ "required":false
469
+ },
470
+ "headline": {
471
+ "type":"string",
472
+ "id": "http://jsonschema.net/headline",
473
+ "required":false
474
+ },
475
+ "lastName": {
476
+ "type":"string",
477
+ "id": "http://jsonschema.net/lastName",
478
+ "required":false
479
+ },
480
+ "siteStandardProfileRequest": {
481
+ "type":"object",
482
+ "id": "http://jsonschema.net/siteStandardProfileRequest",
483
+ "required":false,
484
+ "properties":{
485
+ "url": {
486
+ "type":"string",
487
+ "id": "http://jsonschema.net/siteStandardProfileRequest/url",
488
+ "required":false
489
+ }
490
+ }
491
+ }
492
+ }
493
+ }
494
+ example: |
495
+ {
496
+ "firstName": "First Name",
497
+ "headline": "developer",
498
+ "lastName": "Last Name",
499
+ "siteStandardProfileRequest": {"url": "http://www.linkedin.com/profile/view?id=283834265"}
500
+ }
501
+ /connections{fieldSelectors} :
502
+ displayName: Connections API
503
+ type: fieldSelectors
504
+ get:
505
+ description: |
506
+ Returns a list of 1st degree connections for a user who has granted access to his/her account
507
+ queryParameters:
508
+ start:
509
+ description: |
510
+ Starting location within the result set for paginated returns. Ranges are specified with a starting index and a
511
+ number of results (count) to return.
512
+ type: integer
513
+ minimum: 0
514
+ default: 0
515
+ count:
516
+ description: |
517
+ Ranges are specified with a starting index and a number of results to return. You may specify any number.
518
+ Default and max page size is 500. Implement pagination to retrieve more than 500 connections.
519
+ type: integer
520
+ minimum: 1
521
+ maximum: 500
522
+ default: 500
523
+ modified:
524
+ description: |
525
+ Values are updated or new.
526
+ type: string
527
+ enum: [ updated, new ]
528
+ modified-since:
529
+ description: |
530
+ Value as a Unix time stamp of milliseconds since epoch.
531
+ type: integer
532
+ minimum: 0
533
+ example: 1267401600000
534
+ responses:
535
+ 200:
536
+ body:
537
+ text/xml:
538
+ schema: |
539
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
540
+ <xs:element name="connections">
541
+ <xs:complexType>
542
+ <xs:sequence>
543
+ <xs:element name="person">
544
+ <xs:complexType>
545
+ <xs:sequence>
546
+ <xs:element type="xs:string" name="id"/>
547
+ <xs:element type="xs:string" name="first-name"/>
548
+ <xs:element type="xs:string" name="last-name"/>
549
+ <xs:element type="xs:string" name="headline"/>
550
+ <xs:element name="location">
551
+ <xs:complexType>
552
+ <xs:sequence>
553
+ <xs:element type="xs:string" name="name"/>
554
+ <xs:element name="country">
555
+ <xs:complexType>
556
+ <xs:sequence>
557
+ <xs:element type="xs:short" name="code"/>
558
+ </xs:sequence>
559
+ </xs:complexType>
560
+ </xs:element>
561
+ </xs:sequence>
562
+ </xs:complexType>
563
+ </xs:element>
564
+ <xs:element type="xs:string" name="industry"/>
565
+ <xs:element name="api-standard-profile-request">
566
+ <xs:complexType>
567
+ <xs:sequence>
568
+ <xs:element type="xs:anyURI" name="url"/>
569
+ <xs:element name="headers">
570
+ <xs:complexType>
571
+ <xs:sequence>
572
+ <xs:element name="http-header">
573
+ <xs:complexType>
574
+ <xs:sequence>
575
+ <xs:element type="xs:string" name="name"/>
576
+ <xs:element type="xs:string" name="value"/>
577
+ </xs:sequence>
578
+ </xs:complexType>
579
+ </xs:element>
580
+ </xs:sequence>
581
+ </xs:complexType>
582
+ </xs:element>
583
+ </xs:sequence>
584
+ </xs:complexType>
585
+ </xs:element>
586
+ <xs:element name="site-standard-profile-request">
587
+ <xs:complexType>
588
+ <xs:sequence>
589
+ <xs:element type="xs:anyURI" name="url"/>
590
+ </xs:sequence>
591
+ </xs:complexType>
592
+ </xs:element>
593
+ <xs:element type="xs:anyURI" name="picture-url"/>
594
+ </xs:sequence>
595
+ </xs:complexType>
596
+ </xs:element>
597
+ </xs:sequence>
598
+ <xs:attribute type="xs:short" name="total"/>
599
+ </xs:complexType>
600
+ </xs:element>
601
+ </xs:schema>
602
+ example: |
603
+ <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
604
+ <connections total='154'>
605
+ <person>
606
+ <id>id</id>
607
+ <first-name>first name</first-name>
608
+ <last-name>last name</last-name>
609
+ <headline>head line</headline>
610
+ <location>
611
+ <name>location name</name>
612
+ <country>
613
+ <code>804</code>
614
+ </country>
615
+ </location>
616
+ <industry>industry</industry>
617
+ <api-standard-profile-request>
618
+ <url>http://profile.linkedin.com</url>
619
+ <headers>
620
+ <http-header>
621
+ <name>Content-Type</name>
622
+ <value>plain/text</value>
623
+ </http-header>
624
+ </headers>
625
+ </api-standard-profile-request>
626
+ <site-standard-profile-request>
627
+ <url>http://profile.linkedin.com</url>
628
+ </site-standard-profile-request>
629
+ <picture-url>http://photo.profile.linkedin.com</picture-url>
630
+ </person>
631
+ </connections>
632
+ application/json:
633
+ schema: |
634
+ example: |
635
+ /group-memberships{fieldSelectors}:
636
+ displayName: Groups API
637
+ type: fieldSelectors
638
+ get:
639
+ description: |
640
+ Returns Group Memberships for a User
641
+ queryParameters:
642
+ count:
643
+ description: |
644
+ Number of records to return.
645
+ type: integer
646
+ default: 5
647
+ start:
648
+ description: |
649
+ Record index at which to start pagination.
650
+ type: integer
651
+ default: 0
652
+ membership-state:
653
+ description: |
654
+ The state of the caller’s membership to the specified group. Use the value member to retrieve the groups to which a
655
+ user belongs.
656
+ type: string
657
+ enum: [ non-member, awaiting-confirmation, awaiting-parent-group-confirmation, member, moderator, manager, owner ]
658
+ responses:
659
+ 200:
660
+ body:
661
+ text/xml:
662
+ schema: |
663
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
664
+ <xs:element name="group-membership">
665
+ <xs:complexType>
666
+ <xs:sequence>
667
+ <xs:element name="group">
668
+ <xs:complexType>
669
+ <xs:sequence>
670
+ <xs:element type="xs:int" name="id"/>
671
+ <xs:element type="xs:string" name="name"/>
672
+ </xs:sequence>
673
+ </xs:complexType>
674
+ </xs:element>
675
+ <xs:element type="xs:string" name="show-group-logo-in-profile"/>
676
+ <xs:element name="email-digest-frequency">
677
+ <xs:complexType>
678
+ <xs:sequence>
679
+ <xs:element type="xs:string" name="code"/>
680
+ </xs:sequence>
681
+ </xs:complexType>
682
+ </xs:element>
683
+ <xs:element type="xs:string" name="email-announcements-from-managers"/>
684
+ <xs:element type="xs:string" name="allow-messages-from-members"/>
685
+ <xs:element type="xs:string" name="email-for-every-new-post"/>
686
+ <xs:element name="membership-state">
687
+ <xs:complexType>
688
+ <xs:sequence>
689
+ <xs:element type="xs:string" name="code"/>
690
+ </xs:sequence>
691
+ </xs:complexType>
692
+ </xs:element>
693
+ </xs:sequence>
694
+ </xs:complexType>
695
+ </xs:element>
696
+ </xs:schema>
697
+ example: |
698
+ <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
699
+ <group-membership>
700
+ <group>
701
+ <id>32423423</id>
702
+ </group>
703
+ <show-group-logo-in-profile>true</show-group-logo-in-profile>
704
+ <email-digest-frequency>
705
+ <code>daily</code>
706
+ </email-digest-frequency>
707
+ <email-announcements-from-managers>true</email-announcements-from-managers>
708
+ <allow-messages-from-members>true</allow-messages-from-members>
709
+ <email-for-every-new-post>false</email-for-every-new-post>
710
+ <membership-state>
711
+ <code>member</code>
712
+ </membership-state>
713
+ </group-membership>
714
+ application/json:
715
+ schema: |
716
+ example: |
717
+ post:
718
+ description: |
719
+ POSTs additional group settings information
720
+ body:
721
+ text/xml:
722
+ schema: |
723
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
724
+ <xs:element name="group-membership">
725
+ <xs:complexType>
726
+ <xs:sequence>
727
+ <xs:element name="group">
728
+ <xs:complexType>
729
+ <xs:sequence>
730
+ <xs:element type="xs:int" name="id"/>
731
+ <xs:element type="xs:string" name="name"/>
732
+ </xs:sequence>
733
+ </xs:complexType>
734
+ </xs:element>
735
+ <xs:element type="xs:string" name="show-group-logo-in-profile"/>
736
+ <xs:element name="email-digest-frequency">
737
+ <xs:complexType>
738
+ <xs:sequence>
739
+ <xs:element type="xs:string" name="code"/>
740
+ </xs:sequence>
741
+ </xs:complexType>
742
+ </xs:element>
743
+ <xs:element type="xs:string" name="email-announcements-from-managers"/>
744
+ <xs:element type="xs:string" name="allow-messages-from-members"/>
745
+ <xs:element type="xs:string" name="email-for-every-new-post"/>
746
+ <xs:element name="membership-state">
747
+ <xs:complexType>
748
+ <xs:sequence>
749
+ <xs:element type="xs:string" name="code"/>
750
+ </xs:sequence>
751
+ </xs:complexType>
752
+ </xs:element>
753
+ </xs:sequence>
754
+ </xs:complexType>
755
+ </xs:element>
756
+ </xs:schema>
757
+ example: |
758
+ <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
759
+ <group-membership>
760
+ <group>
761
+ <id>32423423</id>
762
+ </group>
763
+ <show-group-logo-in-profile>true</show-group-logo-in-profile>
764
+ <email-digest-frequency>
765
+ <code>daily</code>
766
+ </email-digest-frequency>
767
+ <email-announcements-from-managers>true</email-announcements-from-managers>
768
+ <allow-messages-from-members>true</allow-messages-from-members>
769
+ <email-for-every-new-post>false</email-for-every-new-post>
770
+ <membership-state>
771
+ <code>member</code>
772
+ </membership-state>
773
+ </group-membership>
774
+ application/json:
775
+ schema: |
776
+ example: |
777
+ responses:
778
+ 200:
779
+ description: OK
780
+ /{groupId}{fieldSelectors}:
781
+ displayName: Groups API
782
+ type: fieldSelectors
783
+ uriParameters:
784
+ groupId:
785
+ displayName: Numeric group ID
786
+ description: |
787
+ The unique identifier for a LinkedIn group
788
+ type: integer
789
+ required: true
790
+ get:
791
+ description: |
792
+ Returns Group settings
793
+ queryParameters:
794
+ membership-state:
795
+ description: |
796
+ The state of the caller’s membership to the specified group. Use the value member to retrieve the groups to which a
797
+ user belongs.
798
+ type: string
799
+ enum: [ non-member, awaiting-confirmation, awaiting-parent-group-confirmation, member, moderator, manager, owner ]
800
+ responses:
801
+ 200:
802
+ body:
803
+ text/xml:
804
+ schema: |
805
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
806
+ <xs:element name="group-membership">
807
+ <xs:complexType>
808
+ <xs:sequence>
809
+ <xs:element type="xs:string" name="show-group-logo-in-profile"/>
810
+ <xs:element name="email-digest-frequency">
811
+ <xs:complexType>
812
+ <xs:sequence>
813
+ <xs:element type="xs:string" name="code"/>
814
+ </xs:sequence>
815
+ </xs:complexType>
816
+ </xs:element>
817
+ <xs:element type="xs:string" name="email-announcements-from-managers"/>
818
+ <xs:element type="xs:string" name="allow-messages-from-members"/>
819
+ <xs:element type="xs:string" name="email-for-every-new-post"/>
820
+ </xs:sequence>
821
+ </xs:complexType>
822
+ </xs:element>
823
+ </xs:schema>
824
+ example: |
825
+ <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
826
+ <group-membership>
827
+ <show-group-logo-in-profile>true</show-group-logo-in-profile>
828
+ <email-digest-frequency>
829
+ <code>daily</code>
830
+ </email-digest-frequency>
831
+ <email-announcements-from-managers>true</email-announcements-from-managers>
832
+ <allow-messages-from-members>true</allow-messages-from-members>
833
+ <email-for-every-new-post>true</email-for-every-new-post>
834
+ </group-membership>
835
+ application/json:
836
+ schema: |
837
+ example: |
838
+ put:
839
+ description: |
840
+ Change Group settings
841
+ body:
842
+ text/xml:
843
+ schema: |
844
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
845
+ <xs:element name="group-membership">
846
+ <xs:complexType>
847
+ <xs:sequence>
848
+ <xs:element type="xs:string" name="show-group-logo-in-profile"/>
849
+ <xs:element name="email-digest-frequency">
850
+ <xs:complexType>
851
+ <xs:sequence>
852
+ <xs:element type="xs:string" name="code"/>
853
+ </xs:sequence>
854
+ </xs:complexType>
855
+ </xs:element>
856
+ <xs:element type="xs:string" name="email-announcements-from-managers"/>
857
+ <xs:element type="xs:string" name="allow-messages-from-members"/>
858
+ <xs:element type="xs:string" name="email-for-every-new-post"/>
859
+ </xs:sequence>
860
+ </xs:complexType>
861
+ </xs:element>
862
+ </xs:schema>
863
+ example: |
864
+ <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
865
+ <group-membership>
866
+ <show-group-logo-in-profile>true</show-group-logo-in-profile>
867
+ <email-digest-frequency>
868
+ <code>daily</code>
869
+ </email-digest-frequency>
870
+ <email-announcements-from-managers>true</email-announcements-from-managers>
871
+ <allow-messages-from-members>true</allow-messages-from-members>
872
+ <email-for-every-new-post>true</email-for-every-new-post>
873
+ </group-membership>
874
+ application/json:
875
+ schema: |
876
+ example: |
877
+ responses:
878
+ 200:
879
+ description: OK
880
+ delete:
881
+ description: Leave a Group
882
+ responses:
883
+ 200:
884
+ description: OK
885
+ /posts{fieldSelectors}:
886
+ type: fieldSelectors
887
+ get:
888
+ description: |
889
+ Returns a Group's Discussion Posts
890
+ queryParameters:
891
+ count:
892
+ description: |
893
+ Number of records to return. Supported for posts and post/comments.
894
+ type: integer
895
+ minimum: 0
896
+ start:
897
+ description: |
898
+ Record index to start pagination. Supported for posts and post/comments.
899
+ type: integer
900
+ minimum: 0
901
+ default: 0
902
+ order:
903
+ description: |
904
+ Sort order for posts.
905
+ type: string
906
+ enum: [ recency, popularity ]
907
+ role:
908
+ description: |
909
+ Filter for posts related to the caller. Valid only for group-memberships/{id}/posts resource.
910
+ type: string
911
+ enum: [ creator, commenter, follower ]
912
+ required: true
913
+ category:
914
+ description: |
915
+ Category of posts.
916
+ type: string
917
+ enum: [ discussion ]
918
+ modified-since:
919
+ description: |
920
+ Timestamp filter for posts created after the specified value.
921
+ type: integer
922
+ example: 1302727083000
923
+ responses:
924
+ 200:
925
+ body:
926
+ text/xml:
927
+ schema: |
928
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
929
+ <xs:element name="posts">
930
+ <xs:complexType>
931
+ <xs:sequence>
932
+ <xs:element name="post">
933
+ <xs:complexType>
934
+ <xs:sequence>
935
+ <xs:element type="xs:string" name="id"/>
936
+ <xs:element name="type">
937
+ <xs:complexType>
938
+ <xs:sequence>
939
+ <xs:element type="xs:string" name="code"/>
940
+ </xs:sequence>
941
+ </xs:complexType>
942
+ </xs:element>
943
+ <xs:element name="creator">
944
+ <xs:complexType>
945
+ <xs:sequence>
946
+ <xs:element type="xs:string" name="id"/>
947
+ <xs:element type="xs:string" name="first-name"/>
948
+ <xs:element type="xs:string" name="last-name"/>
949
+ <xs:element type="xs:string" name="headline"/>
950
+ </xs:sequence>
951
+ </xs:complexType>
952
+ </xs:element>
953
+ <xs:element type="xs:string" name="title"/>
954
+ </xs:sequence>
955
+ </xs:complexType>
956
+ </xs:element>
957
+ </xs:sequence>
958
+ <xs:attribute type="xs:byte" name="total"/>
959
+ </xs:complexType>
960
+ </xs:element>
961
+ </xs:schema>
962
+ example: |
963
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
964
+ <posts total="1">
965
+ <post>
966
+ <id>g-5161023-S-270459579</id>
967
+ <type>
968
+ <code>standard</code>
969
+ </type>
970
+ <creator>
971
+ <id>AGBKeo0Eup</id>
972
+ <first-name>first name</first-name>
973
+ <last-name>second name</last-name>
974
+ <headline>developer</headline>
975
+ </creator>
976
+ <title>first message</title>
977
+ </post>
978
+ </posts>
979
+ application/json:
980
+ schema: |
981
+ example: |
982
+ /suggestions:
983
+ displayName: Groups API
984
+ /groups{fieldSelectors}:
985
+ type: fieldSelectors
986
+ get:
987
+ description: |
988
+ Get Suggested Groups for a User
989
+ responses:
990
+ 200:
991
+ body:
992
+ text/xml:
993
+ schema: |
994
+ example: |
995
+ application/json:
996
+ schema: |
997
+ example: |
998
+ /{groupId}:
999
+ type: baseResource
1000
+ uriParameters:
1001
+ groupId:
1002
+ displayName: Numeric group ID
1003
+ description: |
1004
+ The unique identifier for a LinkedIn group
1005
+ type: integer
1006
+ required: true
1007
+ delete:
1008
+ description: |
1009
+ Remove a Group Suggestion for a Use
1010
+ responses:
1011
+ 200:
1012
+ description: OK
1013
+ /job-suggestions{fieldSelectors}:
1014
+ type: fieldSelectors
1015
+ get:
1016
+ description: |
1017
+ Retrieving a List of a Member’s Suggested Jobs
1018
+ responses:
1019
+ 200:
1020
+ body:
1021
+ text/xml:
1022
+ schema: |
1023
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
1024
+ <xs:element name="job-suggestions">
1025
+ <xs:complexType>
1026
+ <xs:sequence>
1027
+ <xs:element name="jobs">
1028
+ <xs:complexType>
1029
+ <xs:sequence>
1030
+ <xs:element name="job" maxOccurs="unbounded" minOccurs="0">
1031
+ <xs:complexType>
1032
+ <xs:sequence>
1033
+ <xs:element type="xs:int" name="id"/>
1034
+ <xs:element name="company">
1035
+ <xs:complexType mixed="true">
1036
+ <xs:sequence>
1037
+ <xs:element type="xs:short" name="id" minOccurs="0"/>
1038
+ <xs:element type="xs:string" name="name" minOccurs="0"/>
1039
+ </xs:sequence>
1040
+ </xs:complexType>
1041
+ </xs:element>
1042
+ <xs:element type="xs:string" name="salary" minOccurs="0"/>
1043
+ <xs:element name="job-poster">
1044
+ <xs:complexType>
1045
+ <xs:sequence>
1046
+ <xs:element type="xs:string" name="id"/>
1047
+ <xs:element type="xs:string" name="first-name"/>
1048
+ <xs:element type="xs:string" name="last-name"/>
1049
+ <xs:element type="xs:string" name="headline"/>
1050
+ </xs:sequence>
1051
+ </xs:complexType>
1052
+ </xs:element>
1053
+ <xs:element type="xs:string" name="description-snippet"/>
1054
+ <xs:element type="xs:string" name="location-description"/>
1055
+ </xs:sequence>
1056
+ </xs:complexType>
1057
+ </xs:element>
1058
+ </xs:sequence>
1059
+ <xs:attribute type="xs:byte" name="total"/>
1060
+ <xs:attribute type="xs:byte" name="count"/>
1061
+ <xs:attribute type="xs:byte" name="start"/>
1062
+ </xs:complexType>
1063
+ </xs:element>
1064
+ </xs:sequence>
1065
+ </xs:complexType>
1066
+ </xs:element>
1067
+ </xs:schema>
1068
+ example: |
1069
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
1070
+ <job-suggestions>
1071
+ <jobs total="50" count="10" start="0">
1072
+ <job>
1073
+ <id>1577323</id>
1074
+ <company>
1075
+ <id>1281</id>
1076
+ <name>Unisys</name>
1077
+ </company>
1078
+ <job-poster>
1079
+ <id>OHYinXGMKT</id>
1080
+ <first-name>Joanne</first-name>
1081
+ <last-name>Rawls</last-name>
1082
+ <headline>Recruiting Lead at Unisys Corporation</headline>
1083
+ </job-poster>
1084
+ <description-snippet>Unisys is expanding our Federal Proposal Development Center and looking for talented professionals to join our team. As a Senior Technical Writer, you will be responsible for: • Analyzing Request for Proposals (RFP) and work with Solution Architects to package company services into a technical proposal response; write technical proposals that spell out what the company can offer to the agency seek</description-snippet>
1085
+ <location-description>Reston, VA </location-description>
1086
+ </job>
1087
+ <job>
1088
+ <id>1579926</id>
1089
+ <company>
1090
+ <id>15759</id>
1091
+ <name>Velti</name>
1092
+ </company>
1093
+ <salary>Negotiable</salary>
1094
+ <job-poster>
1095
+ <id>UlfGF2nmYN</id>
1096
+ <first-name>Maria</first-name>
1097
+ <last-name>Maragoudakis-Gregoriou</last-name>
1098
+ <headline>Experienced Business Manager with extensive international and start-up experience</headline>
1099
+ </job-poster>
1100
+ <description-snippet>Senior Technical Writer (Job Code: SF-SRTCR) Velti is a leading global provider of mobile marketing and advertising software solutions that enable brands, advertising agencies, mobile operators, and media companies to implement highly targeted, interactive, and measurable campaigns by communicating with and engaging consumers via their mobile devices. Job DescriptionThe Senior Technical Writer pos</description-snippet>
1101
+ <location-description>San Francisco</location-description>
1102
+ </job>
1103
+ <job>
1104
+ <id>1609091</id>
1105
+ <company>
1106
+ </company>
1107
+ <salary>Annual Salary, Bonus</salary>
1108
+ <job-poster>
1109
+ <id>VLhDZNHMmG</id>
1110
+ <first-name>Ties</first-name>
1111
+ <last-name>van de Voort</last-name>
1112
+ <headline>International Corporate Recruiter at SDL Tridion</headline>
1113
+ </job-poster>
1114
+ <description-snippet>The Senior Technical Support Engineer works in a team of support engineers and reports to the Manager Customer Support. The Senior Technical Support Engineer is guarding and meeting service levels as agreed with customers, partners and the internal organization. The Senior Technical Support Engineer independently provides complex technical support to customers and partners, provides onsite support</description-snippet>
1115
+ <location-description>New York</location-description>
1116
+ </job>
1117
+ </jobs>
1118
+ </job-suggestions>
1119
+ application/json:
1120
+ schema: |
1121
+ example: |
1122
+ /job-bookmarks:
1123
+ displayName: Job Bookmarks and Suggestions API
1124
+ type: baseResource
1125
+ get:
1126
+ description: |
1127
+ Returns Job Bookmarks
1128
+ responses:
1129
+ 200:
1130
+ body:
1131
+ text/xml:
1132
+ schema: |
1133
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
1134
+ <xs:element name="job-bookmarks">
1135
+ <xs:complexType>
1136
+ <xs:sequence>
1137
+ <xs:element name="job-bookmark" maxOccurs="unbounded" minOccurs="0">
1138
+ <xs:complexType>
1139
+ <xs:sequence>
1140
+ <xs:element type="xs:string" name="is-applied"/>
1141
+ <xs:element type="xs:string" name="is-saved"/>
1142
+ <xs:element type="xs:long" name="saved-timestamp"/>
1143
+ <xs:element name="job">
1144
+ <xs:complexType>
1145
+ <xs:sequence>
1146
+ <xs:element type="xs:int" name="id"/>
1147
+ <xs:element type="xs:string" name="active"/>
1148
+ <xs:element name="company">
1149
+ <xs:complexType>
1150
+ <xs:sequence>
1151
+ <xs:element type="xs:int" name="id"/>
1152
+ <xs:element type="xs:string" name="name"/>
1153
+ </xs:sequence>
1154
+ </xs:complexType>
1155
+ </xs:element>
1156
+ <xs:element name="position">
1157
+ <xs:complexType>
1158
+ <xs:sequence>
1159
+ <xs:element type="xs:string" name="title"/>
1160
+ </xs:sequence>
1161
+ </xs:complexType>
1162
+ </xs:element>
1163
+ <xs:element type="xs:string" name="description-snippet"/>
1164
+ <xs:element type="xs:long" name="posting-timestamp"/>
1165
+ </xs:sequence>
1166
+ </xs:complexType>
1167
+ </xs:element>
1168
+ </xs:sequence>
1169
+ </xs:complexType>
1170
+ </xs:element>
1171
+ </xs:sequence>
1172
+ <xs:attribute type="xs:byte" name="total"/>
1173
+ </xs:complexType>
1174
+ </xs:element>
1175
+ </xs:schema>
1176
+ example: |
1177
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
1178
+ <job-bookmarks total="2">
1179
+ <job-bookmark>
1180
+ <is-applied>false</is-applied>
1181
+ <is-saved>true</is-saved>
1182
+ <saved-timestamp>1306261147000</saved-timestamp>
1183
+ <job>
1184
+ <id>1641165</id>
1185
+ <active>true</active>
1186
+ <company>
1187
+ <id>35876</id>
1188
+ <name>ClairMail</name>
1189
+ </company>
1190
+ <position>
1191
+ <title>Senior Technical Writer</title>
1192
+ </position>
1193
+ <description-snippet>The Technical Writer will be responsible for creating, maintaining and
1194
+ updating documentation, including internal and external facing technical documentation of ClairMail software,
1195
+ such as user guides, installation guides, configuration guides, and developer’s guides. The products are
1196
+ enterprise software products and the audience is technical, so the candidate must be able to understand highly tec</description-snippet>
1197
+ <posting-timestamp>1306256696000</posting-timestamp>
1198
+ </job>
1199
+ </job-bookmark>
1200
+ <job-bookmark>
1201
+ <is-applied>false</is-applied>
1202
+ <is-saved>true</is-saved>
1203
+ <saved-timestamp>1306261165000</saved-timestamp>
1204
+ <job>
1205
+ <id>1578133</id>
1206
+ <active>true</active>
1207
+ <company>
1208
+ <id>26909</id>
1209
+ <name>Greenplum</name>
1210
+ </company>
1211
+ <position>
1212
+ <title>Senior Manager Technical Publications</title>
1213
+ </position>
1214
+ <description-snippet>Greenplum is seeking an experienced Senior Manager, Technical Publications to
1215
+ support its worldwide technical content demand and generation efforts. The Senior Manager will report to the
1216
+ Vice-President of Engineering, and will be responsible for developing work plans, establishing technical and
1217
+ other functional objectives, assigning tasks, and managing groups/teams. Maintains schedules and coordi</description-snippet>
1218
+ <posting-timestamp>1303854887000</posting-timestamp>
1219
+ </job>
1220
+ </job-bookmark>
1221
+ </job-bookmarks>
1222
+ application/json:
1223
+ schema: |
1224
+ example: |
1225
+ post:
1226
+ description: |
1227
+ Bookmarking a Job
1228
+ body:
1229
+ text/xml:
1230
+ schema: |
1231
+ example: |
1232
+ application/json:
1233
+ schema: |
1234
+ example: |
1235
+ responses:
1236
+ 200:
1237
+ description: OK
1238
+ /{jobId}:
1239
+ type: baseResource
1240
+ uriParameters:
1241
+ jobId:
1242
+ displayName: Job ID
1243
+ description: |
1244
+ The unique identifier for a job.
1245
+ type: string
1246
+ required: true
1247
+ delete:
1248
+ description: |
1249
+ Deleting a Job Bookmark
1250
+ responses:
1251
+ 200:
1252
+ description: OK
1253
+ /id={peopleId}{fieldSelectors}:
1254
+ displayName: Profile API
1255
+ type: fieldSelectors
1256
+ uriParameters:
1257
+ peopleId:
1258
+ displayName: Profile ID
1259
+ type: string
1260
+ required: true
1261
+ get:
1262
+ is: [secureUrlParam]
1263
+ description: |
1264
+ Returns profile of user by ID
1265
+ responses:
1266
+ 200:
1267
+ body:
1268
+ text/xml:
1269
+ schema: |
1270
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
1271
+ <xs:element name="person">
1272
+ <xs:complexType>
1273
+ <xs:sequence>
1274
+ <xs:element type="xs:int" name="id"/>
1275
+ <xs:element type="xs:string" name="first-name"/>
1276
+ <xs:element type="xs:string" name="last-name"/>
1277
+ <xs:element type="xs:string" name="headline"/>
1278
+ <xs:element name="location">
1279
+ <xs:complexType>
1280
+ <xs:sequence>
1281
+ <xs:element type="xs:string" name="name"/>
1282
+ <xs:element name="country">
1283
+ <xs:complexType>
1284
+ <xs:sequence>
1285
+ <xs:element type="xs:short" name="code"/>
1286
+ </xs:sequence>
1287
+ </xs:complexType>
1288
+ </xs:element>
1289
+ </xs:sequence>
1290
+ </xs:complexType>
1291
+ </xs:element>
1292
+ <xs:element type="xs:string" name="industry"/>
1293
+ <xs:element type="xs:byte" name="distance"/>
1294
+ <xs:element type="xs:byte" name="num-recommenders"/>
1295
+ <xs:element type="xs:string" name="current-status"/>
1296
+ <xs:element type="xs:long" name="current-status-timestamp"/>
1297
+ <xs:element name="connections">
1298
+ <xs:complexType>
1299
+ <xs:simpleContent>
1300
+ <xs:extension base="xs:string">
1301
+ <xs:attribute type="xs:byte" name="total"/>
1302
+ </xs:extension>
1303
+ </xs:simpleContent>
1304
+ </xs:complexType>
1305
+ </xs:element>
1306
+ <xs:element type="xs:string" name="summary"/>
1307
+ <xs:element name="positions">
1308
+ <xs:complexType>
1309
+ <xs:sequence>
1310
+ <xs:element name="position" maxOccurs="unbounded" minOccurs="0">
1311
+ <xs:complexType>
1312
+ <xs:sequence>
1313
+ <xs:element type="xs:string" name="id"/>
1314
+ <xs:element type="xs:string" name="title"/>
1315
+ <xs:element type="xs:string" name="summary"/>
1316
+ <xs:element name="start-date">
1317
+ <xs:complexType>
1318
+ <xs:sequence>
1319
+ <xs:element type="xs:short" name="year"/>
1320
+ <xs:element type="xs:string" name="month"/>
1321
+ </xs:sequence>
1322
+ </xs:complexType>
1323
+ </xs:element>
1324
+ <xs:element type="xs:string" name="is-current"/>
1325
+ <xs:element name="company">
1326
+ <xs:complexType>
1327
+ <xs:sequence>
1328
+ <xs:element type="xs:string" name="name"/>
1329
+ </xs:sequence>
1330
+ </xs:complexType>
1331
+ </xs:element>
1332
+ </xs:sequence>
1333
+ </xs:complexType>
1334
+ </xs:element>
1335
+ </xs:sequence>
1336
+ <xs:attribute type="xs:byte" name="total"/>
1337
+ </xs:complexType>
1338
+ </xs:element>
1339
+ <xs:element name="member-url-resources">
1340
+ <xs:complexType>
1341
+ <xs:sequence>
1342
+ <xs:element name="member-url" maxOccurs="unbounded" minOccurs="0">
1343
+ <xs:complexType>
1344
+ <xs:sequence>
1345
+ <xs:element type="xs:anyURI" name="url"/>
1346
+ <xs:element type="xs:string" name="name"/>
1347
+ </xs:sequence>
1348
+ </xs:complexType>
1349
+ </xs:element>
1350
+ </xs:sequence>
1351
+ </xs:complexType>
1352
+ </xs:element>
1353
+ <xs:element name="api-standard-profile-request">
1354
+ <xs:complexType>
1355
+ <xs:sequence>
1356
+ <xs:element type="xs:anyURI" name="url"/>
1357
+ <xs:element name="headers">
1358
+ <xs:complexType>
1359
+ <xs:sequence>
1360
+ <xs:element name="http-header" maxOccurs="unbounded" minOccurs="0">
1361
+ <xs:complexType>
1362
+ <xs:sequence>
1363
+ <xs:element type="xs:string" name="name"/>
1364
+ <xs:element type="xs:string" name="value"/>
1365
+ </xs:sequence>
1366
+ </xs:complexType>
1367
+ </xs:element>
1368
+ </xs:sequence>
1369
+ </xs:complexType>
1370
+ </xs:element>
1371
+ </xs:sequence>
1372
+ </xs:complexType>
1373
+ </xs:element>
1374
+ <xs:element name="site-standard-profile-request">
1375
+ <xs:complexType>
1376
+ <xs:sequence>
1377
+ <xs:element type="xs:anyURI" name="url"/>
1378
+ </xs:sequence>
1379
+ </xs:complexType>
1380
+ </xs:element>
1381
+ <xs:element type="xs:anyURI" name="picture-url"/>
1382
+ </xs:sequence>
1383
+ </xs:complexType>
1384
+ </xs:element>
1385
+ </xs:schema>
1386
+ example: |
1387
+ <person>
1388
+ <id>123456</id>
1389
+ <first-name>first name</first-name>
1390
+ <last-name>last name</last-name>
1391
+ <headline>headline</headline>
1392
+ <location>
1393
+ <name>name</name>
1394
+ <country>
1395
+ <code>804</code>
1396
+ </country>
1397
+ </location>
1398
+ <industry>industry</industry>
1399
+ <distance>50</distance>
1400
+ <num-recommenders>10</num-recommenders>
1401
+ <current-status>online</current-status>
1402
+ <current-status-timestamp>12367123678</current-status-timestamp>
1403
+ <connections total="10" />
1404
+ <summary>summary</summary>
1405
+ <positions total="2">
1406
+ <position>
1407
+ <id>id1</id>
1408
+ <title>title1</title>
1409
+ <summary>summary1</summary>
1410
+ <start-date>
1411
+ <year>2013</year>
1412
+ <month>Jan</month>
1413
+ </start-date>
1414
+ <is-current>false</is-current>
1415
+ <company>
1416
+ <name>Company1</name>
1417
+ </company>
1418
+ </position>
1419
+ <position>
1420
+ <id>id2</id>
1421
+ <title>title2</title>
1422
+ <summary>summary2</summary>
1423
+ <start-date>
1424
+ <year>2013</year>
1425
+ <month>Jun</month>
1426
+ </start-date>
1427
+ <is-current>true</is-current>
1428
+ <company>
1429
+ <name>Company2</name>
1430
+ </company>
1431
+ </position>
1432
+ </positions>
1433
+ <member-url-resources>
1434
+ <member-url>
1435
+ <url>http://url1</url>
1436
+ <name>name of url1</name>
1437
+ </member-url>
1438
+ <member-url>
1439
+ <url>http://url2</url>
1440
+ <name>name of url2</name>
1441
+ </member-url>
1442
+ </member-url-resources>
1443
+ <api-standard-profile-request>
1444
+ <url>http://url.com</url>
1445
+ <headers>
1446
+ <http-header>
1447
+ <name>Date</name>
1448
+ <value>237423472sdf</value>
1449
+ </http-header>
1450
+ <http-header>
1451
+ <name>Acept-type</name>
1452
+ <value>*/*</value>
1453
+ </http-header>
1454
+ </headers>
1455
+ </api-standard-profile-request>
1456
+ <site-standard-profile-request>
1457
+ <url>http://url.com</url>
1458
+ </site-standard-profile-request>
1459
+ <picture-url>http://picture.url</picture-url>
1460
+ </person>
1461
+ application/json:
1462
+ schema: |
1463
+ {
1464
+ "type":"object",
1465
+ "$schema": "http://json-schema.org/draft-03/schema",
1466
+ "id": "http://jsonschema.net",
1467
+ "required":false,
1468
+ "properties":{
1469
+ "firstName": {
1470
+ "type":"string",
1471
+ "id": "http://jsonschema.net/firstName",
1472
+ "required":false
1473
+ },
1474
+ "headline": {
1475
+ "type":"string",
1476
+ "id": "http://jsonschema.net/headline",
1477
+ "required":false
1478
+ },
1479
+ "lastName": {
1480
+ "type":"string",
1481
+ "id": "http://jsonschema.net/lastName",
1482
+ "required":false
1483
+ },
1484
+ "siteStandardProfileRequest": {
1485
+ "type":"object",
1486
+ "id": "http://jsonschema.net/siteStandardProfileRequest",
1487
+ "required":false,
1488
+ "properties":{
1489
+ "url": {
1490
+ "type":"string",
1491
+ "id": "http://jsonschema.net/siteStandardProfileRequest/url",
1492
+ "required":false
1493
+ }
1494
+ }
1495
+ }
1496
+ }
1497
+ }
1498
+ example: |
1499
+ {
1500
+ "firstName": "First Name",
1501
+ "headline": "developer",
1502
+ "lastName": "Last Name",
1503
+ "siteStandardProfileRequest": {"url": "http://www.linkedin.com/profile/view?id=283834265"}
1504
+ }
1505
+ /connections{fieldSelectors} :
1506
+ displayName: Connections API
1507
+ type: fieldSelectors
1508
+ get:
1509
+ description: |
1510
+ Returns a list of 1st degree connections for a user who has granted access to his/her account
1511
+ queryParameters:
1512
+ start:
1513
+ description: |
1514
+ Starting location within the result set for paginated returns. Ranges are specified with a starting index and a
1515
+ number of results (count) to return.
1516
+ type: integer
1517
+ minimum: 0
1518
+ default: 0
1519
+ count:
1520
+ description: |
1521
+ Ranges are specified with a starting index and a number of results to return. You may specify any number.
1522
+ Default and max page size is 500. Implement pagination to retrieve more than 500 connections.
1523
+ type: integer
1524
+ minimum: 1
1525
+ maximum: 500
1526
+ default: 500
1527
+ modified:
1528
+ description: |
1529
+ Values are updated or new.
1530
+ type: string
1531
+ enum: [ updated, new ]
1532
+ modified-since:
1533
+ description: |
1534
+ Value as a Unix time stamp of milliseconds since epoch.
1535
+ type: integer
1536
+ minimum: 0
1537
+ example: 1267401600000
1538
+ responses:
1539
+ 200:
1540
+ body:
1541
+ text/xml:
1542
+ schema: |
1543
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
1544
+ <xs:element name="connections">
1545
+ <xs:complexType>
1546
+ <xs:sequence>
1547
+ <xs:element name="person">
1548
+ <xs:complexType>
1549
+ <xs:sequence>
1550
+ <xs:element type="xs:string" name="id"/>
1551
+ <xs:element type="xs:string" name="first-name"/>
1552
+ <xs:element type="xs:string" name="last-name"/>
1553
+ <xs:element type="xs:string" name="headline"/>
1554
+ <xs:element name="location">
1555
+ <xs:complexType>
1556
+ <xs:sequence>
1557
+ <xs:element type="xs:string" name="name"/>
1558
+ <xs:element name="country">
1559
+ <xs:complexType>
1560
+ <xs:sequence>
1561
+ <xs:element type="xs:short" name="code"/>
1562
+ </xs:sequence>
1563
+ </xs:complexType>
1564
+ </xs:element>
1565
+ </xs:sequence>
1566
+ </xs:complexType>
1567
+ </xs:element>
1568
+ <xs:element type="xs:string" name="industry"/>
1569
+ <xs:element name="api-standard-profile-request">
1570
+ <xs:complexType>
1571
+ <xs:sequence>
1572
+ <xs:element type="xs:anyURI" name="url"/>
1573
+ <xs:element name="headers">
1574
+ <xs:complexType>
1575
+ <xs:sequence>
1576
+ <xs:element name="http-header">
1577
+ <xs:complexType>
1578
+ <xs:sequence>
1579
+ <xs:element type="xs:string" name="name"/>
1580
+ <xs:element type="xs:string" name="value"/>
1581
+ </xs:sequence>
1582
+ </xs:complexType>
1583
+ </xs:element>
1584
+ </xs:sequence>
1585
+ </xs:complexType>
1586
+ </xs:element>
1587
+ </xs:sequence>
1588
+ </xs:complexType>
1589
+ </xs:element>
1590
+ <xs:element name="site-standard-profile-request">
1591
+ <xs:complexType>
1592
+ <xs:sequence>
1593
+ <xs:element type="xs:anyURI" name="url"/>
1594
+ </xs:sequence>
1595
+ </xs:complexType>
1596
+ </xs:element>
1597
+ <xs:element type="xs:anyURI" name="picture-url"/>
1598
+ </xs:sequence>
1599
+ </xs:complexType>
1600
+ </xs:element>
1601
+ </xs:sequence>
1602
+ <xs:attribute type="xs:short" name="total"/>
1603
+ </xs:complexType>
1604
+ </xs:element>
1605
+ </xs:schema>
1606
+ example: |
1607
+ <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
1608
+ <connections total='154'>
1609
+ <person>
1610
+ <id>id</id>
1611
+ <first-name>first name</first-name>
1612
+ <last-name>last name</last-name>
1613
+ <headline>head line</headline>
1614
+ <location>
1615
+ <name>location name</name>
1616
+ <country>
1617
+ <code>804</code>
1618
+ </country>
1619
+ </location>
1620
+ <industry>industry</industry>
1621
+ <api-standard-profile-request>
1622
+ <url>http://profile.linkedin.com</url>
1623
+ <headers>
1624
+ <http-header>
1625
+ <name>Content-Type</name>
1626
+ <value>plain/text</value>
1627
+ </http-header>
1628
+ </headers>
1629
+ </api-standard-profile-request>
1630
+ <site-standard-profile-request>
1631
+ <url>http://profile.linkedin.com</url>
1632
+ </site-standard-profile-request>
1633
+ <picture-url>http://photo.profile.linkedin.com</picture-url>
1634
+ </person>
1635
+ </connections>
1636
+ application/json:
1637
+ schema: |
1638
+ example: |
1639
+ /url={publicProfileUrl}{fieldSelectors}:
1640
+ displayName: Profile API
1641
+ type: fieldSelectors
1642
+ uriParameters:
1643
+ publicProfileUrl:
1644
+ displayName: Profile URL
1645
+ type: string
1646
+ required: true
1647
+ get:
1648
+ is: [secureUrlParam]
1649
+ description: |
1650
+ Returns profile of user by URL
1651
+ responses:
1652
+ 200:
1653
+ body:
1654
+ text/xml:
1655
+ schema: |
1656
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
1657
+ <xs:element name="person">
1658
+ <xs:complexType>
1659
+ <xs:sequence>
1660
+ <xs:element type="xs:int" name="id"/>
1661
+ <xs:element type="xs:string" name="first-name"/>
1662
+ <xs:element type="xs:string" name="last-name"/>
1663
+ <xs:element type="xs:string" name="headline"/>
1664
+ <xs:element name="location">
1665
+ <xs:complexType>
1666
+ <xs:sequence>
1667
+ <xs:element type="xs:string" name="name"/>
1668
+ <xs:element name="country">
1669
+ <xs:complexType>
1670
+ <xs:sequence>
1671
+ <xs:element type="xs:short" name="code"/>
1672
+ </xs:sequence>
1673
+ </xs:complexType>
1674
+ </xs:element>
1675
+ </xs:sequence>
1676
+ </xs:complexType>
1677
+ </xs:element>
1678
+ <xs:element type="xs:string" name="industry"/>
1679
+ <xs:element type="xs:byte" name="distance"/>
1680
+ <xs:element type="xs:byte" name="num-recommenders"/>
1681
+ <xs:element type="xs:string" name="current-status"/>
1682
+ <xs:element type="xs:long" name="current-status-timestamp"/>
1683
+ <xs:element name="connections">
1684
+ <xs:complexType>
1685
+ <xs:simpleContent>
1686
+ <xs:extension base="xs:string">
1687
+ <xs:attribute type="xs:byte" name="total"/>
1688
+ </xs:extension>
1689
+ </xs:simpleContent>
1690
+ </xs:complexType>
1691
+ </xs:element>
1692
+ <xs:element type="xs:string" name="summary"/>
1693
+ <xs:element name="positions">
1694
+ <xs:complexType>
1695
+ <xs:sequence>
1696
+ <xs:element name="position" maxOccurs="unbounded" minOccurs="0">
1697
+ <xs:complexType>
1698
+ <xs:sequence>
1699
+ <xs:element type="xs:string" name="id"/>
1700
+ <xs:element type="xs:string" name="title"/>
1701
+ <xs:element type="xs:string" name="summary"/>
1702
+ <xs:element name="start-date">
1703
+ <xs:complexType>
1704
+ <xs:sequence>
1705
+ <xs:element type="xs:short" name="year"/>
1706
+ <xs:element type="xs:string" name="month"/>
1707
+ </xs:sequence>
1708
+ </xs:complexType>
1709
+ </xs:element>
1710
+ <xs:element type="xs:string" name="is-current"/>
1711
+ <xs:element name="company">
1712
+ <xs:complexType>
1713
+ <xs:sequence>
1714
+ <xs:element type="xs:string" name="name"/>
1715
+ </xs:sequence>
1716
+ </xs:complexType>
1717
+ </xs:element>
1718
+ </xs:sequence>
1719
+ </xs:complexType>
1720
+ </xs:element>
1721
+ </xs:sequence>
1722
+ <xs:attribute type="xs:byte" name="total"/>
1723
+ </xs:complexType>
1724
+ </xs:element>
1725
+ <xs:element name="member-url-resources">
1726
+ <xs:complexType>
1727
+ <xs:sequence>
1728
+ <xs:element name="member-url" maxOccurs="unbounded" minOccurs="0">
1729
+ <xs:complexType>
1730
+ <xs:sequence>
1731
+ <xs:element type="xs:anyURI" name="url"/>
1732
+ <xs:element type="xs:string" name="name"/>
1733
+ </xs:sequence>
1734
+ </xs:complexType>
1735
+ </xs:element>
1736
+ </xs:sequence>
1737
+ </xs:complexType>
1738
+ </xs:element>
1739
+ <xs:element name="api-standard-profile-request">
1740
+ <xs:complexType>
1741
+ <xs:sequence>
1742
+ <xs:element type="xs:anyURI" name="url"/>
1743
+ <xs:element name="headers">
1744
+ <xs:complexType>
1745
+ <xs:sequence>
1746
+ <xs:element name="http-header" maxOccurs="unbounded" minOccurs="0">
1747
+ <xs:complexType>
1748
+ <xs:sequence>
1749
+ <xs:element type="xs:string" name="name"/>
1750
+ <xs:element type="xs:string" name="value"/>
1751
+ </xs:sequence>
1752
+ </xs:complexType>
1753
+ </xs:element>
1754
+ </xs:sequence>
1755
+ </xs:complexType>
1756
+ </xs:element>
1757
+ </xs:sequence>
1758
+ </xs:complexType>
1759
+ </xs:element>
1760
+ <xs:element name="site-standard-profile-request">
1761
+ <xs:complexType>
1762
+ <xs:sequence>
1763
+ <xs:element type="xs:anyURI" name="url"/>
1764
+ </xs:sequence>
1765
+ </xs:complexType>
1766
+ </xs:element>
1767
+ <xs:element type="xs:anyURI" name="picture-url"/>
1768
+ </xs:sequence>
1769
+ </xs:complexType>
1770
+ </xs:element>
1771
+ </xs:schema>
1772
+ example: |
1773
+ application/json:
1774
+ schema: |
1775
+ {
1776
+ "type":"object",
1777
+ "$schema": "http://json-schema.org/draft-03/schema",
1778
+ "id": "http://jsonschema.net",
1779
+ "required":false,
1780
+ "properties":{
1781
+ "firstName": {
1782
+ "type":"string",
1783
+ "id": "http://jsonschema.net/firstName",
1784
+ "required":false
1785
+ },
1786
+ "headline": {
1787
+ "type":"string",
1788
+ "id": "http://jsonschema.net/headline",
1789
+ "required":false
1790
+ },
1791
+ "lastName": {
1792
+ "type":"string",
1793
+ "id": "http://jsonschema.net/lastName",
1794
+ "required":false
1795
+ },
1796
+ "siteStandardProfileRequest": {
1797
+ "type":"object",
1798
+ "id": "http://jsonschema.net/siteStandardProfileRequest",
1799
+ "required":false,
1800
+ "properties":{
1801
+ "url": {
1802
+ "type":"string",
1803
+ "id": "http://jsonschema.net/siteStandardProfileRequest/url",
1804
+ "required":false
1805
+ }
1806
+ }
1807
+ }
1808
+ }
1809
+ }
1810
+ example: |
1811
+ {
1812
+ "firstName": "First Name",
1813
+ "headline": "developer",
1814
+ "lastName": "Last Name",
1815
+ "siteStandardProfileRequest": {"url": "http://www.linkedin.com/profile/view?id=283834265"}
1816
+ }
1817
+ /connections{fieldSelectors} :
1818
+ displayName: Connections API
1819
+ type: fieldSelectors
1820
+ get:
1821
+ description: |
1822
+ Returns a list of 1st degree connections for a user who has granted access to his/her account
1823
+ queryParameters:
1824
+ start:
1825
+ description: |
1826
+ Starting location within the result set for paginated returns. Ranges are specified with a starting index and a
1827
+ number of results (count) to return.
1828
+ type: integer
1829
+ minimum: 0
1830
+ default: 0
1831
+ count:
1832
+ description: |
1833
+ Ranges are specified with a starting index and a number of results to return. You may specify any number.
1834
+ Default and max page size is 500. Implement pagination to retrieve more than 500 connections.
1835
+ type: integer
1836
+ minimum: 1
1837
+ maximum: 500
1838
+ default: 500
1839
+ modified:
1840
+ description: |
1841
+ Values are updated or new.
1842
+ type: string
1843
+ enum: [ updated, new ]
1844
+ modified-since:
1845
+ description: |
1846
+ Value as a Unix time stamp of milliseconds since epoch.
1847
+ type: integer
1848
+ minimum: 0
1849
+ example: 1267401600000
1850
+ responses:
1851
+ 200:
1852
+ body:
1853
+ text/xml:
1854
+ schema: |
1855
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
1856
+ <xs:element name="connections">
1857
+ <xs:complexType>
1858
+ <xs:sequence>
1859
+ <xs:element name="person">
1860
+ <xs:complexType>
1861
+ <xs:sequence>
1862
+ <xs:element type="xs:string" name="id"/>
1863
+ <xs:element type="xs:string" name="first-name"/>
1864
+ <xs:element type="xs:string" name="last-name"/>
1865
+ <xs:element type="xs:string" name="headline"/>
1866
+ <xs:element name="location">
1867
+ <xs:complexType>
1868
+ <xs:sequence>
1869
+ <xs:element type="xs:string" name="name"/>
1870
+ <xs:element name="country">
1871
+ <xs:complexType>
1872
+ <xs:sequence>
1873
+ <xs:element type="xs:short" name="code"/>
1874
+ </xs:sequence>
1875
+ </xs:complexType>
1876
+ </xs:element>
1877
+ </xs:sequence>
1878
+ </xs:complexType>
1879
+ </xs:element>
1880
+ <xs:element type="xs:string" name="industry"/>
1881
+ <xs:element name="api-standard-profile-request">
1882
+ <xs:complexType>
1883
+ <xs:sequence>
1884
+ <xs:element type="xs:anyURI" name="url"/>
1885
+ <xs:element name="headers">
1886
+ <xs:complexType>
1887
+ <xs:sequence>
1888
+ <xs:element name="http-header">
1889
+ <xs:complexType>
1890
+ <xs:sequence>
1891
+ <xs:element type="xs:string" name="name"/>
1892
+ <xs:element type="xs:string" name="value"/>
1893
+ </xs:sequence>
1894
+ </xs:complexType>
1895
+ </xs:element>
1896
+ </xs:sequence>
1897
+ </xs:complexType>
1898
+ </xs:element>
1899
+ </xs:sequence>
1900
+ </xs:complexType>
1901
+ </xs:element>
1902
+ <xs:element name="site-standard-profile-request">
1903
+ <xs:complexType>
1904
+ <xs:sequence>
1905
+ <xs:element type="xs:anyURI" name="url"/>
1906
+ </xs:sequence>
1907
+ </xs:complexType>
1908
+ </xs:element>
1909
+ <xs:element type="xs:anyURI" name="picture-url"/>
1910
+ </xs:sequence>
1911
+ </xs:complexType>
1912
+ </xs:element>
1913
+ </xs:sequence>
1914
+ <xs:attribute type="xs:short" name="total"/>
1915
+ </xs:complexType>
1916
+ </xs:element>
1917
+ </xs:schema>
1918
+ example: |
1919
+ <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
1920
+ <connections total='154'>
1921
+ <person>
1922
+ <id>id</id>
1923
+ <first-name>first name</first-name>
1924
+ <last-name>last name</last-name>
1925
+ <headline>head line</headline>
1926
+ <location>
1927
+ <name>location name</name>
1928
+ <country>
1929
+ <code>804</code>
1930
+ </country>
1931
+ </location>
1932
+ <industry>industry</industry>
1933
+ <api-standard-profile-request>
1934
+ <url>http://profile.linkedin.com</url>
1935
+ <headers>
1936
+ <http-header>
1937
+ <name>Content-Type</name>
1938
+ <value>plain/text</value>
1939
+ </http-header>
1940
+ </headers>
1941
+ </api-standard-profile-request>
1942
+ <site-standard-profile-request>
1943
+ <url>http://profile.linkedin.com</url>
1944
+ </site-standard-profile-request>
1945
+ <picture-url>http://photo.profile.linkedin.com</picture-url>
1946
+ </person>
1947
+ </connections>
1948
+ application/json:
1949
+ schema: |
1950
+ example: |
1951
+ /people-search{fieldSelectors}:
1952
+ displayName: People Search API
1953
+ type: fieldSelectors
1954
+ get:
1955
+ description: |
1956
+ Returns information about people
1957
+ queryParameters:
1958
+ keywords:
1959
+ description: |
1960
+ Members who have all the keywords anywhere in their profile. Use this field when you don't know how to
1961
+ more accurately map the input to a more specific parameter. (Don't forget to URL encode this data.)
1962
+ type: string
1963
+ first-name:
1964
+ description: |
1965
+ Members with a matching first name. Matches must be exact. Multiple words should be separated by a space.
1966
+ type: string
1967
+ last-name:
1968
+ description: |
1969
+ Members with a matching last name. Matches must be exactly. Multiple words should be separated by a space.
1970
+ type: string
1971
+ company-name:
1972
+ description: |
1973
+ Members who have a matching company name on their profile. company-name can be combined with the current-company parameter
1974
+ to specifies whether the person is or is not still working at the company.
1975
+
1976
+ It's often valuable to not be too specific with the company name. LinkedIn has made great efforts at standardizing company names,
1977
+ but including suffixes such as "Inc" and "Company" may overly limit your search, missing people who did not include those suffixes
1978
+ on their company names. It's usually better to search for the basic name of the company and all different versions will be returned.
1979
+ This does increase the possibility of a false positive match return, though, so consider the most specific terms you can use.
1980
+ For example, consider using "Acme" instead of "Acme, Inc" to find people from a company called Acme, Inc. But this runs the risk
1981
+ of finding people from different companies with Acme in the title, such as "Acme Vending" and "Acme Services".
1982
+ type: string
1983
+ current-company:
1984
+ description: |
1985
+ Valid values are true or false. A value of true matches members who currently work at the company specified in the company-name parameter.
1986
+ A value of false matches members who once worked at the company. Omitting the parameter matches members who currently or once worked
1987
+ the company.
1988
+ type: boolean
1989
+ title:
1990
+ description: |
1991
+ Matches members with that title on their profile. Works with the current-title parameter.
1992
+ type: string
1993
+ current-title:
1994
+ description: |
1995
+ Valid values are true or false. A value of true matches members whose title is currently the one specified in the title-name parameter.
1996
+ A value of false matches members who once had that title. Omitting the parameter matches members who currently or once had that title.
1997
+ type: boolean
1998
+ school-name:
1999
+ description: |
2000
+ Members who have a matching school name on their profile. school-name can be combined with the current-school parameter to specifies
2001
+ whether the person is or is not still at the school.
2002
+
2003
+ It's often valuable to not be too specific with the school name. The same explation provided with company name applies:
2004
+ "Yale" vs. "Yale University".
2005
+ type: string
2006
+ current-school:
2007
+ description: |
2008
+ Valid values are true or false. A value of true matches members who currently attend the school specified in the school-name parameter.
2009
+ A value of false matches members who once attended the school. Omitting the parameter matches members who currently or once attended
2010
+ the school.
2011
+ type: boolean
2012
+ country-code:
2013
+ description: |
2014
+ Matches members with a location in a specific country. Values are defined in by ISO 3166 standard. Country codes must be in all lower case.
2015
+ type: string
2016
+ postal-code:
2017
+ description: |
2018
+ Matches members centered around a Postal Code. Must be combined with the country-code parameter. Not supported for all countries.
2019
+ type: string
2020
+ distance:
2021
+ description: |
2022
+ Matches members within a distance from a central point. This is measured in miles. This is best used in combination with both country-code
2023
+ and postal-code.
2024
+ type: string
2025
+ facet:
2026
+ description: |
2027
+ Facet values to search over.
2028
+ type: string
2029
+ facets:
2030
+ description: |
2031
+ Facet buckets to return.
2032
+ type: string
2033
+ start:
2034
+ description: |
2035
+ Start location within the result set for paginated returns. This is the zero-based ordinal number of the search return, not the number
2036
+ of the page. To see the second page of 10 results per page, specify 10, not 1. Ranges are specified with a starting index and a number
2037
+ of results (count) to return. The default value is 0.
2038
+ type: integer
2039
+ minimum: 0
2040
+ default: 0
2041
+ count:
2042
+ description: |
2043
+ The number of profiles to return. Values can range between 0 and 25. The default value is 10. The total results available to any
2044
+ user depends on their account level.
2045
+ type: integer
2046
+ minimum: 0
2047
+ maximum: 25
2048
+ default: 10
2049
+ sort:
2050
+ description: |
2051
+ Controls the search result order. There are four options:
2052
+ * **connections**: Number of connections per person, from largest to smallest.
2053
+ * **recommenders**: Number of recommendations per person, from largest to smallest.
2054
+ * **distance**: Degree of separation within the member's network, from first degree, then second degree, and then all others mixed together,
2055
+ including third degree and out-of-network.
2056
+ * **relevance**: Relevance of results based on the query, from most to least relevant.
2057
+
2058
+ By default, results are ordered by the number of connections.
2059
+ type: string
2060
+ enum: [connections, recommenders, distance, relevance]
2061
+ default: connections
2062
+ responses:
2063
+ 200:
2064
+ body:
2065
+ text/xml:
2066
+ schema: |
2067
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2068
+ <xs:element name="people-search">
2069
+ <xs:complexType>
2070
+ <xs:sequence>
2071
+ <xs:element name="people">
2072
+ <xs:complexType>
2073
+ <xs:sequence>
2074
+ <xs:element name="person" maxOccurs="unbounded" minOccurs="0">
2075
+ <xs:complexType>
2076
+ <xs:sequence>
2077
+ <xs:element type="xs:string" name="id"/>
2078
+ <xs:element type="xs:string" name="first-name"/>
2079
+ <xs:element type="xs:string" name="last-name"/>
2080
+ </xs:sequence>
2081
+ </xs:complexType>
2082
+ </xs:element>
2083
+ </xs:sequence>
2084
+ <xs:attribute type="xs:integer" name="total"/>
2085
+ <xs:attribute type="xs:integer" name="count"/>
2086
+ <xs:attribute type="xs:integer" name="start"/>
2087
+ </xs:complexType>
2088
+ </xs:element>
2089
+ <xs:element type="xs:integer" name="num-results"/>
2090
+ </xs:sequence>
2091
+ </xs:complexType>
2092
+ </xs:element>
2093
+ </xs:schema>
2094
+ example: |
2095
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2096
+ <people-search>
2097
+ <people total="100" count="10" start="0">
2098
+ <person>
2099
+ <id>tePXJ3SX1o</id>
2100
+ <first-name>Clair</first-name>
2101
+ <last-name>Standish</last-name>
2102
+ </person>
2103
+ <person>
2104
+ <id>pcfBxmL_Vv</id>
2105
+ <first-name>John</first-name>
2106
+ <last-name>Bender</last-name>
2107
+ </person>
2108
+ </people>
2109
+ <num-results>108</num-results>
2110
+ </people-search>
2111
+ application/json:
2112
+ schema: |
2113
+ example: |
2114
+ /groups:
2115
+ displayName: Groups API
2116
+ /{groupId}{fieldSelectors}:
2117
+ type: fieldSelectors
2118
+ uriParameters:
2119
+ groupId:
2120
+ displayName: Numeric group ID
2121
+ description: |
2122
+ The unique identifier for a LinkedIn group
2123
+ type: integer
2124
+ required: true
2125
+ get:
2126
+ description: |
2127
+ Returns Group's Profile Details
2128
+ responses:
2129
+ 200:
2130
+ body:
2131
+ text/xml:
2132
+ schema: |
2133
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2134
+ <xs:element name="group">
2135
+ <xs:complexType>
2136
+ <xs:sequence>
2137
+ <xs:element type="xs:int" name="id"/>
2138
+ <xs:element type="xs:string" name="name"/>
2139
+ <xs:element type="xs:string" name="short-description"/>
2140
+ <xs:element type="xs:string" name="description"/>
2141
+ <xs:element name="relation-to-viewer">
2142
+ <xs:complexType>
2143
+ <xs:sequence>
2144
+ <xs:element type="xs:string" name="membership-state"/>
2145
+ <xs:element type="xs:string" name="available-actions"/>
2146
+ </xs:sequence>
2147
+ </xs:complexType>
2148
+ </xs:element>
2149
+ <xs:element type="xs:string" name="posts"/>
2150
+ <xs:element type="xs:byte" name="counts-by-category"/>
2151
+ <xs:element type="xs:string" name="is-open-to-non-members"/>
2152
+ <xs:element type="xs:string" name="category"/>
2153
+ <xs:element type="xs:anyURI" name="website-url"/>
2154
+ <xs:element type="xs:string" name="locale"/>
2155
+ <xs:element name="location">
2156
+ <xs:complexType>
2157
+ <xs:sequence>
2158
+ <xs:element type="xs:string" name="name"/>
2159
+ <xs:element name="country">
2160
+ <xs:complexType>
2161
+ <xs:sequence>
2162
+ <xs:element type="xs:short" name="postal-code"/>
2163
+ </xs:sequence>
2164
+ </xs:complexType>
2165
+ </xs:element>
2166
+ </xs:sequence>
2167
+ </xs:complexType>
2168
+ </xs:element>
2169
+ <xs:element type="xs:string" name="allow-member-invites"/>
2170
+ <xs:element type="xs:anyURI" name="site-group-url"/>
2171
+ <xs:element type="xs:anyURI" name="small-logo-url"/>
2172
+ <xs:element type="xs:anyURI" name="large-logo-url"/>
2173
+ </xs:sequence>
2174
+ </xs:complexType>
2175
+ </xs:element>
2176
+ </xs:schema>
2177
+ example: |
2178
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2179
+ <group>
2180
+ <id>5161023</id>
2181
+ <name>group name</name>
2182
+ <short-description>short description</short-description>
2183
+ <description>description</description>
2184
+ <relation-to-viewer>
2185
+ <membership-state>state</membership-state>
2186
+ <available-actions>state</available-actions>
2187
+ </relation-to-viewer>
2188
+ <posts>none</posts>
2189
+ <counts-by-category>25</counts-by-category>
2190
+ <is-open-to-non-members>false</is-open-to-non-members>
2191
+ <category>category</category>
2192
+ <website-url>http://pragmasoft.com.ua</website-url>
2193
+ <locale>en-US</locale>
2194
+ <location>
2195
+ <name>name</name>
2196
+ <country>
2197
+ <postal-code>804</postal-code>
2198
+ </country>
2199
+ </location>
2200
+ <allow-member-invites>true</allow-member-invites>
2201
+ <site-group-url>http://site.group.com</site-group-url>
2202
+ <small-logo-url>http://small.logo.com</small-logo-url>
2203
+ <large-logo-url>http://large.logo.com</large-logo-url>
2204
+ </group>
2205
+ application/json:
2206
+ schema: |
2207
+ example: |
2208
+ /posts:
2209
+ type: fieldSelectors
2210
+ get:
2211
+ description: |
2212
+ Returns a Group's Discussion Posts
2213
+ queryParameters:
2214
+ count:
2215
+ description: |
2216
+ Number of records to return. Supported for posts and post/comments.
2217
+ type: integer
2218
+ minimum: 0
2219
+ start:
2220
+ description: |
2221
+ Record index to start pagination. Supported for posts and post/comments.
2222
+ type: integer
2223
+ minimum: 0
2224
+ default: 0
2225
+ order:
2226
+ description: |
2227
+ Sort order for posts.
2228
+ type: string
2229
+ enum: [ recency, popularity ]
2230
+ role:
2231
+ description: |
2232
+ Filter for posts related to the caller. Valid only for group-memberships/{id}/posts resource.
2233
+ type: string
2234
+ enum: [ creator, commenter, follower ]
2235
+ category:
2236
+ description: |
2237
+ Category of posts.
2238
+ type: string
2239
+ enum: [ discussion ]
2240
+ modified-since:
2241
+ description: |
2242
+ Timestamp filter for posts created after the specified value.
2243
+ type: integer
2244
+ example: 1302727083000
2245
+ responses:
2246
+ 200:
2247
+ body:
2248
+ text/xml:
2249
+ schema: |
2250
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2251
+ <xs:element name="posts">
2252
+ <xs:complexType>
2253
+ <xs:sequence>
2254
+ <xs:element name="post">
2255
+ <xs:complexType>
2256
+ <xs:sequence>
2257
+ <xs:element type="xs:string" name="id"/>
2258
+ <xs:element name="type">
2259
+ <xs:complexType>
2260
+ <xs:sequence>
2261
+ <xs:element type="xs:string" name="code"/>
2262
+ </xs:sequence>
2263
+ </xs:complexType>
2264
+ </xs:element>
2265
+ <xs:element name="creator">
2266
+ <xs:complexType>
2267
+ <xs:sequence>
2268
+ <xs:element type="xs:string" name="id"/>
2269
+ <xs:element type="xs:string" name="first-name"/>
2270
+ <xs:element type="xs:string" name="last-name"/>
2271
+ <xs:element type="xs:string" name="headline"/>
2272
+ </xs:sequence>
2273
+ </xs:complexType>
2274
+ </xs:element>
2275
+ <xs:element type="xs:string" name="title"/>
2276
+ </xs:sequence>
2277
+ </xs:complexType>
2278
+ </xs:element>
2279
+ </xs:sequence>
2280
+ <xs:attribute type="xs:byte" name="total"/>
2281
+ </xs:complexType>
2282
+ </xs:element>
2283
+ </xs:schema>
2284
+ example: |
2285
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2286
+ <posts total="1">
2287
+ <post>
2288
+ <id>g-5161023-S-270459579</id>
2289
+ <type>
2290
+ <code>standard</code>
2291
+ </type>
2292
+ <creator>
2293
+ <id>AGBKeo0Eup</id>
2294
+ <first-name>first name</first-name>
2295
+ <last-name>second name</last-name>
2296
+ <headline>developer</headline>
2297
+ </creator>
2298
+ <title>first message</title>
2299
+ </post>
2300
+ </posts>
2301
+ application/json:
2302
+ schema: |
2303
+ example: |
2304
+ /posts:
2305
+ displayName: Groups API
2306
+ /{postId}{fieldSelectors}:
2307
+ type: fieldSelectors
2308
+ uriParameters:
2309
+ postId:
2310
+ displayName: Post ID
2311
+ description: |
2312
+ The unique identifier for a post
2313
+ type: string
2314
+ required: true
2315
+ get:
2316
+ description: |
2317
+ Returns Discussion Post
2318
+ responses:
2319
+ 200:
2320
+ body:
2321
+ text/xml:
2322
+ schema: |
2323
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2324
+ <xs:element name="post">
2325
+ <xs:complexType>
2326
+ <xs:sequence>
2327
+ <xs:element type="xs:string" name="id"/>
2328
+ <xs:element name="parent-group">
2329
+ <xs:complexType>
2330
+ <xs:sequence>
2331
+ <xs:element type="xs:int" name="id"/>
2332
+ <xs:element type="xs:string" name="name"/>
2333
+ </xs:sequence>
2334
+ </xs:complexType>
2335
+ </xs:element>
2336
+ <xs:element name="type">
2337
+ <xs:complexType>
2338
+ <xs:sequence>
2339
+ <xs:element type="xs:string" name="code"/>
2340
+ </xs:sequence>
2341
+ </xs:complexType>
2342
+ </xs:element>
2343
+ <xs:element name="creator">
2344
+ <xs:complexType>
2345
+ <xs:sequence>
2346
+ <xs:element type="xs:string" name="id"/>
2347
+ <xs:element type="xs:string" name="first-name"/>
2348
+ <xs:element type="xs:string" name="last-name"/>
2349
+ <xs:element type="xs:string" name="headline"/>
2350
+ </xs:sequence>
2351
+ </xs:complexType>
2352
+ </xs:element>
2353
+ <xs:element type="xs:string" name="title"/>
2354
+ </xs:sequence>
2355
+ </xs:complexType>
2356
+ </xs:element>
2357
+ </xs:schema>
2358
+ example: |
2359
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2360
+ <post>
2361
+ <id>g-5161023-S-270459579</id>
2362
+ <parent-group>
2363
+ <id>5161023</id>
2364
+ <name>pragmasoft group</name>
2365
+ </parent-group>
2366
+ <type>
2367
+ <code>standard</code>
2368
+ </type>
2369
+ <creator>
2370
+ <id>AGBKeo0Eup</id>
2371
+ <first-name>first name</first-name>
2372
+ <last-name>last name</last-name>
2373
+ <headline>developer</headline>
2374
+ </creator>
2375
+ <title>first message</title>
2376
+ </post>
2377
+ application/json:
2378
+ schema: |
2379
+ example: |
2380
+ delete:
2381
+ description: |
2382
+ Deletes a Post
2383
+ responses:
2384
+ 200:
2385
+ description: OK
2386
+ #TODO: implement /comments{fieldSelectors}:
2387
+ #TODO: implement /relation-to-viewer:
2388
+ #TODO: implement /category:
2389
+ /comments:
2390
+ /{commentId}{fieldSelectors}:
2391
+ type: fieldSelectors
2392
+ uriParameters:
2393
+ commentId:
2394
+ displayName: Comment ID
2395
+ description: |
2396
+ The unique identifier for a comment
2397
+ type: integer
2398
+ required: true
2399
+ get:
2400
+ description: |
2401
+ Returns Comments
2402
+ responses:
2403
+ 200:
2404
+ body:
2405
+ text/xml:
2406
+ schema: |
2407
+ example: |
2408
+ application/json:
2409
+ schema: |
2410
+ example: |
2411
+ delete:
2412
+ description: |
2413
+ Deletes a Comment
2414
+ responses:
2415
+ 200:
2416
+ description: OK
2417
+ /jobs:
2418
+ displayName: Job Lookup API
2419
+ /{jobId}{fieldSelectors}:
2420
+ type: fieldSelectors
2421
+ uriParameters:
2422
+ jobId:
2423
+ displayName: Job ID
2424
+ description: |
2425
+ The unique identifier for a job.
2426
+ type: string
2427
+ required: true
2428
+ get:
2429
+ description: |
2430
+ Returns Job info
2431
+ responses:
2432
+ 200:
2433
+ body:
2434
+ text/xml:
2435
+ schema: |
2436
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2437
+ <xs:element name="job">
2438
+ <xs:complexType>
2439
+ <xs:sequence>
2440
+ <xs:element type="xs:int" name="id"/>
2441
+ <xs:element type="xs:long" name="expiration-timestamp"/>
2442
+ <xs:element name="company">
2443
+ <xs:complexType>
2444
+ <xs:sequence>
2445
+ <xs:element type="xs:int" name="id"/>
2446
+ <xs:element type="xs:string" name="name"/>
2447
+ </xs:sequence>
2448
+ </xs:complexType>
2449
+ </xs:element>
2450
+ <xs:element name="position">
2451
+ <xs:complexType>
2452
+ <xs:sequence>
2453
+ <xs:element type="xs:string" name="title"/>
2454
+ <xs:element name="location">
2455
+ <xs:complexType>
2456
+ <xs:sequence>
2457
+ <xs:element type="xs:string" name="name"/>
2458
+ <xs:element name="country">
2459
+ <xs:complexType>
2460
+ <xs:sequence>
2461
+ <xs:element type="xs:string" name="code"/>
2462
+ </xs:sequence>
2463
+ </xs:complexType>
2464
+ </xs:element>
2465
+ </xs:sequence>
2466
+ </xs:complexType>
2467
+ </xs:element>
2468
+ </xs:sequence>
2469
+ </xs:complexType>
2470
+ </xs:element>
2471
+ <xs:element type="xs:string" name="location-description"/>
2472
+ <xs:element name="job-poster">
2473
+ <xs:complexType>
2474
+ <xs:sequence>
2475
+ <xs:element type="xs:string" name="id"/>
2476
+ <xs:element type="xs:string" name="first-name"/>
2477
+ <xs:element type="xs:string" name="last-name"/>
2478
+ <xs:element type="xs:string" name="headline"/>
2479
+ </xs:sequence>
2480
+ </xs:complexType>
2481
+ </xs:element>
2482
+ </xs:sequence>
2483
+ </xs:complexType>
2484
+ </xs:element>
2485
+ </xs:schema>
2486
+ example: |
2487
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2488
+ <job>
2489
+ <id>1511685</id>
2490
+ <expiration-timestamp>1304030488000</expiration-timestamp>
2491
+ <company>
2492
+ <id>229433</id>
2493
+ <name>Cloudera</name>
2494
+ </company>
2495
+ <position>
2496
+ <title>Technical Writer</title>
2497
+ <location>
2498
+ <name>San Francisco Bay Area</name>
2499
+ <country>
2500
+ <code>us</code>
2501
+ </country>
2502
+ </location>
2503
+ </position>
2504
+ <location-description>San Francisco or Palo Alto, CA</location-description>
2505
+ <job-poster>
2506
+ <id>hQ4ruu3J2q</id>
2507
+ <first-name>Paul</first-name>
2508
+ <last-name>Battaglia</last-name>
2509
+ <headline>Technical Writer at Cloudera</headline>
2510
+ </job-poster>
2511
+ </job>
2512
+ application/json:
2513
+ schema: |
2514
+ example: |
2515
+ /job-search{fieldSelectors}:
2516
+ displayName: Job Search API
2517
+ type: fieldSelectors
2518
+ get:
2519
+ description: |
2520
+ Returns Jobs found by some criteria
2521
+ responses:
2522
+ 200:
2523
+ body:
2524
+ text/xml:
2525
+ schema: |
2526
+ <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
2527
+ <xs:element name="job-search">
2528
+ <xs:complexType>
2529
+ <xs:sequence>
2530
+ <xs:element name="jobs">
2531
+ <xs:complexType>
2532
+ <xs:sequence>
2533
+ <xs:element name="job" maxOccurs="unbounded" minOccurs="0">
2534
+ <xs:complexType>
2535
+ <xs:sequence>
2536
+ <xs:element type="xs:int" name="id"/>
2537
+ <xs:element name="position">
2538
+ <xs:complexType>
2539
+ <xs:sequence>
2540
+ <xs:element name="location">
2541
+ <xs:complexType>
2542
+ <xs:sequence>
2543
+ <xs:element type="xs:string" name="name"/>
2544
+ <xs:element name="country">
2545
+ <xs:complexType>
2546
+ <xs:sequence>
2547
+ <xs:element type="xs:string" name="code"/>
2548
+ </xs:sequence>
2549
+ </xs:complexType>
2550
+ </xs:element>
2551
+ </xs:sequence>
2552
+ </xs:complexType>
2553
+ </xs:element>
2554
+ </xs:sequence>
2555
+ </xs:complexType>
2556
+ </xs:element>
2557
+ <xs:element name="job-poster">
2558
+ <xs:complexType>
2559
+ <xs:sequence>
2560
+ <xs:element type="xs:string" name="first-name"/>
2561
+ <xs:element type="xs:string" name="last-name"/>
2562
+ <xs:element name="relation-to-viewer">
2563
+ <xs:complexType>
2564
+ <xs:sequence>
2565
+ <xs:element type="xs:byte" name="distance"/>
2566
+ </xs:sequence>
2567
+ </xs:complexType>
2568
+ </xs:element>
2569
+ </xs:sequence>
2570
+ </xs:complexType>
2571
+ </xs:element>
2572
+ <xs:element name="posting-date">
2573
+ <xs:complexType>
2574
+ <xs:sequence>
2575
+ <xs:element type="xs:short" name="year"/>
2576
+ <xs:element type="xs:byte" name="month"/>
2577
+ <xs:element type="xs:byte" name="day"/>
2578
+ </xs:sequence>
2579
+ </xs:complexType>
2580
+ </xs:element>
2581
+ </xs:sequence>
2582
+ </xs:complexType>
2583
+ </xs:element>
2584
+ </xs:sequence>
2585
+ <xs:attribute type="xs:byte" name="count"/>
2586
+ <xs:attribute type="xs:byte" name="start"/>
2587
+ </xs:complexType>
2588
+ </xs:element>
2589
+ </xs:sequence>
2590
+ </xs:complexType>
2591
+ </xs:element>
2592
+ </xs:schema>
2593
+ example: |
2594
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2595
+ <job-search>
2596
+ <jobs count="3" start="0">
2597
+ <job>
2598
+ <id>1550983</id>
2599
+ <position>
2600
+ <location>
2601
+ <name>San Francisco Bay Area</name>
2602
+ <country>
2603
+ <code>us</code>
2604
+ </country>
2605
+ </location>
2606
+ </position>
2607
+ <job-poster>
2608
+ <first-name>David</first-name>
2609
+ <last-name>Sides</last-name>
2610
+ <relation-to-viewer>
2611
+ <distance>-1</distance>
2612
+ </relation-to-viewer>
2613
+ </job-poster>
2614
+ <posting-date>
2615
+ <year>2011</year>
2616
+ <month>4</month>
2617
+ <day>14</day>
2618
+ </posting-date>
2619
+ </job>
2620
+ <job>
2621
+ <id>1550465</id>
2622
+ <position>
2623
+ <location>
2624
+ <name>San Francisco Bay Area</name>
2625
+ <country>
2626
+ <code>us</code>
2627
+ </country>
2628
+ </location>
2629
+ </position>
2630
+ <job-poster>
2631
+ <first-name>Jeanmarie</first-name>
2632
+ <last-name>Boben</last-name>
2633
+ <relation-to-viewer>
2634
+ <distance>3</distance>
2635
+ </relation-to-viewer>
2636
+ </job-poster>
2637
+ <posting-date>
2638
+ <year>2011</year>
2639
+ <month>4</month>
2640
+ <day>14</day>
2641
+ </posting-date>
2642
+ </job>
2643
+ <job>
2644
+ <id>1549868</id>
2645
+ <position>
2646
+ <location>
2647
+ <name>San Francisco Bay Area</name>
2648
+ <country>
2649
+ <code>us</code>
2650
+ </country>
2651
+ </location>
2652
+ </position>
2653
+ <job-poster>
2654
+ <first-name>Anne</first-name>
2655
+ <last-name>Woods, CPA</last-name>
2656
+ <relation-to-viewer>
2657
+ <distance>3</distance>
2658
+ </relation-to-viewer>
2659
+ </job-poster>
2660
+ <posting-date>
2661
+ <year>2011</year>
2662
+ <month>4</month>
2663
+ <day>14</day>
2664
+ </posting-date>
2665
+ </job>
2666
+ </jobs>
2667
+ </job-search>
2668
+ application/json:
2669
+ schema: |
2670
+ example: |
2671
+ #TODO: add Companies, Job Posting, Share and Social Stream, Communications sections