sem4r 0.1.3 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/.gemtest +0 -0
  2. data/Gemfile +2 -22
  3. data/Gemfile.lock +43 -20
  4. data/Rakefile +4 -2
  5. data/bin/sem +2 -6
  6. data/lib/sem4r/adwords.rb +8 -142
  7. data/lib/sem4r/campaign/campaign_account_extension.rb +4 -5
  8. data/lib/sem4r/profile.rb +173 -0
  9. data/lib/sem4r/sem4r_utilities.rb +113 -0
  10. data/lib/sem4r/v13_report/report.rb +5 -0
  11. data/lib/sem4r/version.rb +27 -0
  12. data/lib/sem4r.rb +5 -26
  13. data/lib/sem4r_cli/cli_sem.rb +116 -170
  14. data/lib/sem4r_cli/commands/{cli_ads.rb → cmd_ads.rb} +4 -4
  15. data/lib/sem4r_cli/commands/{cli_campaign.rb → cmd_campaign.rb} +7 -7
  16. data/lib/sem4r_cli/commands/{cli_clients.rb → cmd_clients.rb} +4 -5
  17. data/lib/sem4r_cli/commands/{cli_ideas.rb → cmd_ideas.rb} +7 -5
  18. data/lib/sem4r_cli/commands/{cli_info.rb → cmd_info.rb} +6 -6
  19. data/lib/sem4r_cli/commands/{cli_job.rb → cmd_job.rb} +4 -2
  20. data/lib/sem4r_cli/commands/{cli_keywords.rb → cmd_keywords.rb} +4 -4
  21. data/lib/sem4r_cli/commands/{cli_profile.rb → cmd_profile.rb} +23 -19
  22. data/lib/sem4r_cli/commands/{cli_repdef.rb → cmd_repdef.rb} +6 -4
  23. data/lib/sem4r_cli/commands/{cli_report.rb → cmd_report.rb} +8 -6
  24. data/lib/sem4r_cli.rb +6 -4
  25. data/lib/sem4r_debug_client/client.rb +200 -0
  26. data/lib/sem4r_debug_client.rb +31 -0
  27. data/lib/sem4r_sinatra/cli_server.rb +45 -0
  28. data/lib/sem4r_sinatra/helpers.rb +60 -0
  29. data/lib/sem4r_sinatra/web_server.rb +46 -0
  30. data/lib/sem4r_sinatra.rb +13 -0
  31. data/lib/sem4r_soap/http_connector.rb +5 -6
  32. data/lib/sem4r_soap/soap_dumper.rb +3 -14
  33. data/lib/sem4r_soap/soap_service.rb +5 -5
  34. data/lib/sem4r_soap/soap_service_v2010.rb +2 -2
  35. data/lib/sem4r_soap.rb +24 -0
  36. data/sem4r.gemspec +75 -313
  37. data/spec/fixtures/password.example.yml +5 -3
  38. data/spec/helpers/rspec_matchers.rb +2 -19
  39. data/spec/helpers/rspec_sem4r_helper.rb +25 -9
  40. data/spec/rspec_helper.rb +7 -0
  41. data/spec/sem4r/ad_group/ad_group_spec.rb +2 -3
  42. data/spec/sem4r/ad_group_ad/fixtures/mutate_add_mobile_ad-req.xml +8 -11
  43. data/spec/sem4r/ad_group_criterion/fixtures/mutate_add_negative_keyword-req.xml +1 -3
  44. data/spec/sem4r/adwords_spec.rb +0 -5
  45. data/spec/sem4r/bulk_mutate_job/fixtures/get-list_job-req.xml +18 -33
  46. data/spec/sem4r/bulk_mutate_job/fixtures/get-list_job-res.xml +232 -416
  47. data/spec/sem4r/bulk_mutate_job/fixtures/mutate-add_job-req.xml +55 -104
  48. data/spec/sem4r/bulk_mutate_job/fixtures/mutate-add_job-res.xml +25 -47
  49. data/spec/sem4r/geo_location/fixtures/get-req.xml +23 -40
  50. data/spec/sem4r/geo_location/fixtures/get-res.xml +31 -59
  51. data/spec/sem4r/info/fixtures/get-req.xml +19 -32
  52. data/spec/sem4r/info/fixtures/get-res.xml +16 -26
  53. data/spec/sem4r/profiles_spec.rb +52 -0
  54. data/spec/sem4r/report_definition/fixtures/get-list-repdef-req.xml +13 -20
  55. data/spec/sem4r/report_definition/fixtures/get-list-repdef-res.xml +34 -72
  56. data/spec/sem4r/report_definition/fixtures/getReportFields-req.xml +13 -22
  57. data/spec/sem4r/report_definition/fixtures/getReportFields-res.xml +476 -1198
  58. data/spec/sem4r/report_definition/fixtures/mutate-add-report-req.xml +30 -61
  59. data/spec/sem4r/report_definition/fixtures/mutate-add-report-res.xml +31 -67
  60. data/spec/sem4r/report_definition/report_definition_spec.rb +1 -1
  61. data/spec/sem4r/v13_report/fixtures/schedule_report_job-req.xml +11 -33
  62. data/spec/sem4r_cli/cli_spec.rb +4 -22
  63. data/tasks/sem4r.rake +0 -3
  64. data/tasks/yard.rake +2 -2
  65. metadata +188 -177
  66. data/VERSION.yml +0 -5
  67. data/lib/sem4r_cli/cli_helpers.rb +0 -59
  68. data/lib/sem4r_cli/cli_mini_framework.rb +0 -147
  69. data/tasks/jeweler.rake +0 -66
@@ -1,417 +1,233 @@
1
- <soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'>
2
- <soap:Header>
3
- <ResponseHeader xmlns='https://adwords.google.com/api/adwords/cm/v201008'>
4
- <requestId>
5
- 8faa099843707c0516849fa58eefdee0
6
- </requestId>
7
- <operations>
8
- 15
9
- </operations>
10
- <responseTime>
11
- 707
12
- </responseTime>
13
- <units>
14
- 15
15
- </units>
16
- </ResponseHeader>
17
- </soap:Header>
18
- <soap:Body>
19
- <getResponse xmlns='https://adwords.google.com/api/adwords/cm/v201008'>
20
- <rval>
21
- <context>
22
- <authenticatedUserEmail>
23
- sem4ruby@gmail.com
24
- </authenticatedUserEmail>
25
- <effectiveCustomerId>
26
- 0
27
- </effectiveCustomerId>
28
- </context>
29
- <Job.Type>
30
- BulkMutateJob
31
- </Job.Type>
32
- <id>
33
- 39169
34
- </id>
35
- <policy/>
36
- <status>
37
- PENDING
38
- </status>
39
- <numRequestParts>
40
- 2
41
- </numRequestParts>
42
- <numRequestPartsReceived>
43
- 1
44
- </numRequestPartsReceived>
45
- </rval>
46
- <rval>
47
- <context>
48
- <authenticatedUserEmail>
49
- sem4ruby@gmail.com
50
- </authenticatedUserEmail>
51
- <effectiveCustomerId>
52
- 0
53
- </effectiveCustomerId>
54
- </context>
55
- <Job.Type>
56
- BulkMutateJob
57
- </Job.Type>
58
- <id>
59
- 33669
60
- </id>
61
- <policy/>
62
- <status>
63
- COMPLETED
64
- </status>
65
- <numRequestParts>
66
- 1
67
- </numRequestParts>
68
- <numRequestPartsReceived>
69
- 1
70
- </numRequestPartsReceived>
71
- </rval>
72
- <rval>
73
- <context>
74
- <authenticatedUserEmail>
75
- sem4ruby@gmail.com
76
- </authenticatedUserEmail>
77
- <effectiveCustomerId>
78
- 0
79
- </effectiveCustomerId>
80
- </context>
81
- <Job.Type>
82
- BulkMutateJob
83
- </Job.Type>
84
- <id>
85
- 33693
86
- </id>
87
- <policy/>
88
- <status>
89
- COMPLETED
90
- </status>
91
- <numRequestParts>
92
- 1
93
- </numRequestParts>
94
- <numRequestPartsReceived>
95
- 1
96
- </numRequestPartsReceived>
97
- </rval>
98
- <rval>
99
- <context>
100
- <authenticatedUserEmail>
101
- sem4ruby@gmail.com
102
- </authenticatedUserEmail>
103
- <effectiveCustomerId>
104
- 0
105
- </effectiveCustomerId>
106
- </context>
107
- <Job.Type>
108
- BulkMutateJob
109
- </Job.Type>
110
- <id>
111
- 35859
112
- </id>
113
- <policy/>
114
- <status>
115
- COMPLETED
116
- </status>
117
- <numRequestParts>
118
- 1
119
- </numRequestParts>
120
- <numRequestPartsReceived>
121
- 1
122
- </numRequestPartsReceived>
123
- </rval>
124
- <rval>
125
- <context>
126
- <authenticatedUserEmail>
127
- sem4ruby@gmail.com
128
- </authenticatedUserEmail>
129
- <effectiveCustomerId>
130
- 0
131
- </effectiveCustomerId>
132
- </context>
133
- <Job.Type>
134
- BulkMutateJob
135
- </Job.Type>
136
- <id>
137
- 35967
138
- </id>
139
- <policy/>
140
- <status>
141
- COMPLETED
142
- </status>
143
- <numRequestParts>
144
- 1
145
- </numRequestParts>
146
- <numRequestPartsReceived>
147
- 1
148
- </numRequestPartsReceived>
149
- </rval>
150
- <rval>
151
- <context>
152
- <authenticatedUserEmail>
153
- sem4ruby@gmail.com
154
- </authenticatedUserEmail>
155
- <effectiveCustomerId>
156
- 0
157
- </effectiveCustomerId>
158
- </context>
159
- <Job.Type>
160
- BulkMutateJob
161
- </Job.Type>
162
- <id>
163
- 38429
164
- </id>
165
- <policy/>
166
- <status>
167
- COMPLETED
168
- </status>
169
- <numRequestParts>
170
- 1
171
- </numRequestParts>
172
- <numRequestPartsReceived>
173
- 1
174
- </numRequestPartsReceived>
175
- </rval>
176
- <rval>
177
- <context>
178
- <authenticatedUserEmail>
179
- sem4ruby@gmail.com
180
- </authenticatedUserEmail>
181
- <effectiveCustomerId>
182
- 0
183
- </effectiveCustomerId>
184
- </context>
185
- <Job.Type>
186
- BulkMutateJob
187
- </Job.Type>
188
- <id>
189
- 38444
190
- </id>
191
- <policy/>
192
- <status>
193
- COMPLETED
194
- </status>
195
- <numRequestParts>
196
- 1
197
- </numRequestParts>
198
- <numRequestPartsReceived>
199
- 1
200
- </numRequestPartsReceived>
201
- </rval>
202
- <rval>
203
- <context>
204
- <authenticatedUserEmail>
205
- sem4ruby@gmail.com
206
- </authenticatedUserEmail>
207
- <effectiveCustomerId>
208
- 0
209
- </effectiveCustomerId>
210
- </context>
211
- <Job.Type>
212
- BulkMutateJob
213
- </Job.Type>
214
- <id>
215
- 38486
216
- </id>
217
- <policy/>
218
- <status>
219
- COMPLETED
220
- </status>
221
- <numRequestParts>
222
- 1
223
- </numRequestParts>
224
- <numRequestPartsReceived>
225
- 1
226
- </numRequestPartsReceived>
227
- </rval>
228
- <rval>
229
- <context>
230
- <authenticatedUserEmail>
231
- sem4ruby@gmail.com
232
- </authenticatedUserEmail>
233
- <effectiveCustomerId>
234
- 0
235
- </effectiveCustomerId>
236
- </context>
237
- <Job.Type>
238
- BulkMutateJob
239
- </Job.Type>
240
- <id>
241
- 38612
242
- </id>
243
- <policy/>
244
- <status>
245
- COMPLETED
246
- </status>
247
- <numRequestParts>
248
- 1
249
- </numRequestParts>
250
- <numRequestPartsReceived>
251
- 1
252
- </numRequestPartsReceived>
253
- </rval>
254
- <rval>
255
- <context>
256
- <authenticatedUserEmail>
257
- sem4ruby@gmail.com
258
- </authenticatedUserEmail>
259
- <effectiveCustomerId>
260
- 0
261
- </effectiveCustomerId>
262
- </context>
263
- <Job.Type>
264
- BulkMutateJob
265
- </Job.Type>
266
- <id>
267
- 38642
268
- </id>
269
- <policy/>
270
- <status>
271
- COMPLETED
272
- </status>
273
- <numRequestParts>
274
- 1
275
- </numRequestParts>
276
- <numRequestPartsReceived>
277
- 1
278
- </numRequestPartsReceived>
279
- </rval>
280
- <rval>
281
- <context>
282
- <authenticatedUserEmail>
283
- sem4ruby@gmail.com
284
- </authenticatedUserEmail>
285
- <effectiveCustomerId>
286
- 0
287
- </effectiveCustomerId>
288
- </context>
289
- <Job.Type>
290
- BulkMutateJob
291
- </Job.Type>
292
- <id>
293
- 38648
294
- </id>
295
- <policy/>
296
- <status>
297
- COMPLETED
298
- </status>
299
- <numRequestParts>
300
- 1
301
- </numRequestParts>
302
- <numRequestPartsReceived>
303
- 1
304
- </numRequestPartsReceived>
305
- </rval>
306
- <rval>
307
- <context>
308
- <authenticatedUserEmail>
309
- sem4ruby@gmail.com
310
- </authenticatedUserEmail>
311
- <effectiveCustomerId>
312
- 0
313
- </effectiveCustomerId>
314
- </context>
315
- <Job.Type>
316
- BulkMutateJob
317
- </Job.Type>
318
- <id>
319
- 38654
320
- </id>
321
- <policy/>
322
- <status>
323
- COMPLETED
324
- </status>
325
- <numRequestParts>
326
- 1
327
- </numRequestParts>
328
- <numRequestPartsReceived>
329
- 1
330
- </numRequestPartsReceived>
331
- </rval>
332
- <rval>
333
- <context>
334
- <authenticatedUserEmail>
335
- sem4ruby@gmail.com
336
- </authenticatedUserEmail>
337
- <effectiveCustomerId>
338
- 0
339
- </effectiveCustomerId>
340
- </context>
341
- <Job.Type>
342
- BulkMutateJob
343
- </Job.Type>
344
- <id>
345
- 39081
346
- </id>
347
- <policy/>
348
- <status>
349
- COMPLETED
350
- </status>
351
- <numRequestParts>
352
- 1
353
- </numRequestParts>
354
- <numRequestPartsReceived>
355
- 1
356
- </numRequestPartsReceived>
357
- </rval>
358
- <rval>
359
- <context>
360
- <authenticatedUserEmail>
361
- sem4ruby@gmail.com
362
- </authenticatedUserEmail>
363
- <effectiveCustomerId>
364
- 0
365
- </effectiveCustomerId>
366
- </context>
367
- <Job.Type>
368
- BulkMutateJob
369
- </Job.Type>
370
- <id>
371
- 39147
372
- </id>
373
- <policy/>
374
- <status>
375
- COMPLETED
376
- </status>
377
- <numRequestParts>
378
- 1
379
- </numRequestParts>
380
- <numRequestPartsReceived>
381
- 1
382
- </numRequestPartsReceived>
383
- </rval>
384
- <rval>
385
- <context>
386
- <authenticatedUserEmail>
387
- sem4ruby@gmail.com
388
- </authenticatedUserEmail>
389
- <effectiveCustomerId>
390
- 0
391
- </effectiveCustomerId>
392
- </context>
393
- <failureReason>
394
- <JobErrorReason>
395
- USER_CANCELED_JOB
396
- </JobErrorReason>
397
- </failureReason>
398
- <Job.Type>
399
- BulkMutateJob
400
- </Job.Type>
401
- <id>
402
- 38666
403
- </id>
404
- <policy/>
405
- <status>
406
- FAILED
407
- </status>
408
- <numRequestParts>
409
- 2
410
- </numRequestParts>
411
- <numRequestPartsReceived>
412
- 1
413
- </numRequestPartsReceived>
414
- </rval>
415
- </getResponse>
416
- </soap:Body>
1
+ <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
2
+ <soap:Header>
3
+ <ResponseHeader xmlns="https://adwords.google.com/api/adwords/cm/v201008">
4
+ <requestId>7ddbee49064ab8d6b0c0cdc36cacf3b6</requestId>
5
+ <operations>18</operations>
6
+ <responseTime>1019</responseTime>
7
+ <units>18</units>
8
+ </ResponseHeader>
9
+ </soap:Header>
10
+ <soap:Body>
11
+ <getResponse xmlns="https://adwords.google.com/api/adwords/cm/v201008">
12
+ <rval>
13
+ <context>
14
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
15
+ <effectiveCustomerId>0</effectiveCustomerId>
16
+ </context>
17
+ <Job.Type>BulkMutateJob</Job.Type>
18
+ <id>39169</id>
19
+ <policy/>
20
+ <status>PENDING</status>
21
+ <numRequestParts>2</numRequestParts>
22
+ <numRequestPartsReceived>1</numRequestPartsReceived>
23
+ </rval>
24
+ <rval>
25
+ <context>
26
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
27
+ <effectiveCustomerId>0</effectiveCustomerId>
28
+ </context>
29
+ <Job.Type>BulkMutateJob</Job.Type>
30
+ <id>45550</id>
31
+ <policy/>
32
+ <status>PENDING</status>
33
+ <numRequestParts>2</numRequestParts>
34
+ <numRequestPartsReceived>1</numRequestPartsReceived>
35
+ </rval>
36
+ <rval>
37
+ <context>
38
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
39
+ <effectiveCustomerId>0</effectiveCustomerId>
40
+ </context>
41
+ <Job.Type>BulkMutateJob</Job.Type>
42
+ <id>33669</id>
43
+ <policy/>
44
+ <status>COMPLETED</status>
45
+ <numRequestParts>1</numRequestParts>
46
+ <numRequestPartsReceived>1</numRequestPartsReceived>
47
+ </rval>
48
+ <rval>
49
+ <context>
50
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
51
+ <effectiveCustomerId>0</effectiveCustomerId>
52
+ </context>
53
+ <Job.Type>BulkMutateJob</Job.Type>
54
+ <id>33693</id>
55
+ <policy/>
56
+ <status>COMPLETED</status>
57
+ <numRequestParts>1</numRequestParts>
58
+ <numRequestPartsReceived>1</numRequestPartsReceived>
59
+ </rval>
60
+ <rval>
61
+ <context>
62
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
63
+ <effectiveCustomerId>0</effectiveCustomerId>
64
+ </context>
65
+ <Job.Type>BulkMutateJob</Job.Type>
66
+ <id>35859</id>
67
+ <policy/>
68
+ <status>COMPLETED</status>
69
+ <numRequestParts>1</numRequestParts>
70
+ <numRequestPartsReceived>1</numRequestPartsReceived>
71
+ </rval>
72
+ <rval>
73
+ <context>
74
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
75
+ <effectiveCustomerId>0</effectiveCustomerId>
76
+ </context>
77
+ <Job.Type>BulkMutateJob</Job.Type>
78
+ <id>35967</id>
79
+ <policy/>
80
+ <status>COMPLETED</status>
81
+ <numRequestParts>1</numRequestParts>
82
+ <numRequestPartsReceived>1</numRequestPartsReceived>
83
+ </rval>
84
+ <rval>
85
+ <context>
86
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
87
+ <effectiveCustomerId>0</effectiveCustomerId>
88
+ </context>
89
+ <Job.Type>BulkMutateJob</Job.Type>
90
+ <id>38429</id>
91
+ <policy/>
92
+ <status>COMPLETED</status>
93
+ <numRequestParts>1</numRequestParts>
94
+ <numRequestPartsReceived>1</numRequestPartsReceived>
95
+ </rval>
96
+ <rval>
97
+ <context>
98
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
99
+ <effectiveCustomerId>0</effectiveCustomerId>
100
+ </context>
101
+ <Job.Type>BulkMutateJob</Job.Type>
102
+ <id>38444</id>
103
+ <policy/>
104
+ <status>COMPLETED</status>
105
+ <numRequestParts>1</numRequestParts>
106
+ <numRequestPartsReceived>1</numRequestPartsReceived>
107
+ </rval>
108
+ <rval>
109
+ <context>
110
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
111
+ <effectiveCustomerId>0</effectiveCustomerId>
112
+ </context>
113
+ <Job.Type>BulkMutateJob</Job.Type>
114
+ <id>38486</id>
115
+ <policy/>
116
+ <status>COMPLETED</status>
117
+ <numRequestParts>1</numRequestParts>
118
+ <numRequestPartsReceived>1</numRequestPartsReceived>
119
+ </rval>
120
+ <rval>
121
+ <context>
122
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
123
+ <effectiveCustomerId>0</effectiveCustomerId>
124
+ </context>
125
+ <Job.Type>BulkMutateJob</Job.Type>
126
+ <id>38612</id>
127
+ <policy/>
128
+ <status>COMPLETED</status>
129
+ <numRequestParts>1</numRequestParts>
130
+ <numRequestPartsReceived>1</numRequestPartsReceived>
131
+ </rval>
132
+ <rval>
133
+ <context>
134
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
135
+ <effectiveCustomerId>0</effectiveCustomerId>
136
+ </context>
137
+ <Job.Type>BulkMutateJob</Job.Type>
138
+ <id>38642</id>
139
+ <policy/>
140
+ <status>COMPLETED</status>
141
+ <numRequestParts>1</numRequestParts>
142
+ <numRequestPartsReceived>1</numRequestPartsReceived>
143
+ </rval>
144
+ <rval>
145
+ <context>
146
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
147
+ <effectiveCustomerId>0</effectiveCustomerId>
148
+ </context>
149
+ <Job.Type>BulkMutateJob</Job.Type>
150
+ <id>38648</id>
151
+ <policy/>
152
+ <status>COMPLETED</status>
153
+ <numRequestParts>1</numRequestParts>
154
+ <numRequestPartsReceived>1</numRequestPartsReceived>
155
+ </rval>
156
+ <rval>
157
+ <context>
158
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
159
+ <effectiveCustomerId>0</effectiveCustomerId>
160
+ </context>
161
+ <Job.Type>BulkMutateJob</Job.Type>
162
+ <id>38654</id>
163
+ <policy/>
164
+ <status>COMPLETED</status>
165
+ <numRequestParts>1</numRequestParts>
166
+ <numRequestPartsReceived>1</numRequestPartsReceived>
167
+ </rval>
168
+ <rval>
169
+ <context>
170
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
171
+ <effectiveCustomerId>0</effectiveCustomerId>
172
+ </context>
173
+ <Job.Type>BulkMutateJob</Job.Type>
174
+ <id>39081</id>
175
+ <policy/>
176
+ <status>COMPLETED</status>
177
+ <numRequestParts>1</numRequestParts>
178
+ <numRequestPartsReceived>1</numRequestPartsReceived>
179
+ </rval>
180
+ <rval>
181
+ <context>
182
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
183
+ <effectiveCustomerId>0</effectiveCustomerId>
184
+ </context>
185
+ <Job.Type>BulkMutateJob</Job.Type>
186
+ <id>39147</id>
187
+ <policy/>
188
+ <status>COMPLETED</status>
189
+ <numRequestParts>1</numRequestParts>
190
+ <numRequestPartsReceived>1</numRequestPartsReceived>
191
+ </rval>
192
+ <rval>
193
+ <context>
194
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
195
+ <effectiveCustomerId>0</effectiveCustomerId>
196
+ </context>
197
+ <Job.Type>BulkMutateJob</Job.Type>
198
+ <id>39197</id>
199
+ <policy/>
200
+ <status>COMPLETED</status>
201
+ <numRequestParts>1</numRequestParts>
202
+ <numRequestPartsReceived>1</numRequestPartsReceived>
203
+ </rval>
204
+ <rval>
205
+ <context>
206
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
207
+ <effectiveCustomerId>0</effectiveCustomerId>
208
+ </context>
209
+ <Job.Type>BulkMutateJob</Job.Type>
210
+ <id>41446</id>
211
+ <policy/>
212
+ <status>COMPLETED</status>
213
+ <numRequestParts>1</numRequestParts>
214
+ <numRequestPartsReceived>1</numRequestPartsReceived>
215
+ </rval>
216
+ <rval>
217
+ <context>
218
+ <authenticatedUserEmail>sem4ruby@gmail.com</authenticatedUserEmail>
219
+ <effectiveCustomerId>0</effectiveCustomerId>
220
+ </context>
221
+ <failureReason>
222
+ <JobErrorReason>USER_CANCELED_JOB</JobErrorReason>
223
+ </failureReason>
224
+ <Job.Type>BulkMutateJob</Job.Type>
225
+ <id>38666</id>
226
+ <policy/>
227
+ <status>FAILED</status>
228
+ <numRequestParts>2</numRequestParts>
229
+ <numRequestPartsReceived>1</numRequestPartsReceived>
230
+ </rval>
231
+ </getResponse>
232
+ </soap:Body>
417
233
  </soap:Envelope>