File Coverage

blib/lib/Microsoft/AdCenter/V8/BulkService.pm
Criterion Covered Total %
statement 9 9 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 12 12 100.0


line stmt bran cond sub pod time code
1             package Microsoft::AdCenter::V8::BulkService;
2             # Copyright (C) 2012 Xerxes Tsang
3             # This program is free software; you can redistribute it and/or modify it
4             # under the terms of Perl Artistic License.
5              
6 11     11   721706 use strict;
  11         30  
  11         456  
7 11     11   72 use warnings;
  11         26  
  11         486  
8              
9             =head1 NAME
10              
11             Microsoft::AdCenter::V8::BulkService - Service client for Microsoft AdCenter Bulk Service.
12              
13             =head1 SYNOPSIS
14              
15             use Microsoft::AdCenter::V8::BulkService;
16              
17             my $service_client = Microsoft::AdCenter::V8::BulkService->new
18             ->ApplicationToken("application token")
19             ->CustomerAccountId("customer account id")
20             ->CustomerId("customer id")
21             ->DeveloperToken("developer token")
22             ->Password("password")
23             ->UserName("user name");
24              
25             my $response = $service_client->DownloadCampaignsByAccountIds(
26             AccountIds => ...
27             AdditionalEntities => ...
28             LastSyncTimeInUTC => ...
29             LocationTargetVersion => ...
30             );
31              
32             See L for detailed documentation for this service.
33              
34             =head1 METHODS
35              
36             =head2 EndPoint
37              
38             Changes the end point for this service client.
39              
40             Default value: https://adcenterapi.microsoft.com/Api/Advertiser/V8/CampaignManagement/BulkService.svc
41              
42             =head2 ApplicationToken
43              
44             Gets/sets ApplicationToken (string) in the request header
45              
46             =head2 CustomerAccountId
47              
48             Gets/sets CustomerAccountId (string) in the request header
49              
50             =head2 CustomerId
51              
52             Gets/sets CustomerId (string) in the request header
53              
54             =head2 DeveloperToken
55              
56             Gets/sets DeveloperToken (string) in the request header
57              
58             =head2 Password
59              
60             Gets/sets Password (string) in the request header
61              
62             =head2 UserName
63              
64             Gets/sets UserName (string) in the request header
65              
66             =head2 TrackingId
67              
68             Gets TrackingId (string) in the response header
69              
70             =cut
71              
72 11     11   66 use base qw/Microsoft::AdCenter::Service/;
  11         27  
  11         17813  
73              
74             sub _service_name {
75             return 'BulkService';
76             }
77              
78             sub _service_version {
79             return 'V8';
80             }
81              
82             sub _class_name {
83             return 'BulkService';
84             }
85              
86             sub _namespace_uri {
87             return 'https://adcenter.microsoft.com/v8';
88             }
89              
90             sub _default_location {
91             return 'https://adcenterapi.microsoft.com/Api/Advertiser/V8/CampaignManagement/BulkService.svc';
92             }
93              
94             sub _wsdl {
95             return 'https://adcenterapi.microsoft.com/Api/Advertiser/v8/CampaignManagement/BulkService.svc?wsdl';
96             }
97              
98             our $_request_headers = [
99             { name => 'ApplicationToken', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
100             { name => 'CustomerAccountId', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
101             { name => 'CustomerId', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
102             { name => 'DeveloperToken', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
103             { name => 'Password', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' },
104             { name => 'UserName', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' }
105             ];
106              
107             our $_request_headers_expanded = {
108             ApplicationToken => 'string',
109             CustomerAccountId => 'string',
110             CustomerId => 'string',
111             DeveloperToken => 'string',
112             Password => 'string',
113             UserName => 'string'
114             };
115              
116             sub _request_headers {
117             return $_request_headers;
118             }
119              
120             sub _request_headers_expanded {
121             return $_request_headers_expanded;
122             }
123              
124             our $_response_headers = [
125             { name => 'TrackingId', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' }
126             ];
127              
128             our $_response_headers_expanded = {
129             TrackingId => 'string'
130             };
131              
132             sub _response_headers {
133             return $_response_headers;
134             }
135              
136             sub _response_headers_expanded {
137             return $_response_headers_expanded;
138             }
139              
140             =head2 DownloadCampaignsByAccountIds
141              
142             =over
143              
144             =item Parameters:
145              
146             AccountIds (ArrayOflong)
147             AdditionalEntities (AdditionalEntity)
148             LastSyncTimeInUTC (dateTime)
149             LocationTargetVersion (string)
150              
151             =item Returns:
152              
153             DownloadCampaignsByAccountIdsResponse
154              
155             =back
156              
157             =cut
158              
159             sub DownloadCampaignsByAccountIds {
160             my ($self, %args) = @_;
161             return $self->_invoke(
162             soap_action => 'DownloadCampaignsByAccountIds',
163             request => {
164             name => 'DownloadCampaignsByAccountIdsRequest',
165             parameters => [
166             { name => 'AccountIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/v8' },
167             { name => 'AdditionalEntities', type => 'AdditionalEntity', namespace => 'https://adcenter.microsoft.com/v8' },
168             { name => 'LastSyncTimeInUTC', type => 'dateTime', namespace => 'https://adcenter.microsoft.com/v8' },
169             { name => 'LocationTargetVersion', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' }
170             ]
171             },
172             response => {
173             name => 'DownloadCampaignsByAccountIdsResponse'
174             },
175             parameters => \%args
176             );
177             }
178              
179             =head2 DownloadCampaignsByCampaignIds
180              
181             =over
182              
183             =item Parameters:
184              
185             AdditionalEntities (AdditionalEntity)
186             Campaigns (ArrayOfCampaignScope)
187             LastSyncTimeInUTC (dateTime)
188             LocationTargetVersion (string)
189              
190             =item Returns:
191              
192             DownloadCampaignsByCampaignIdsResponse
193              
194             =back
195              
196             =cut
197              
198             sub DownloadCampaignsByCampaignIds {
199             my ($self, %args) = @_;
200             return $self->_invoke(
201             soap_action => 'DownloadCampaignsByCampaignIds',
202             request => {
203             name => 'DownloadCampaignsByCampaignIdsRequest',
204             parameters => [
205             { name => 'AdditionalEntities', type => 'AdditionalEntity', namespace => 'https://adcenter.microsoft.com/v8' },
206             { name => 'Campaigns', type => 'ArrayOfCampaignScope', namespace => 'https://adcenter.microsoft.com/v8' },
207             { name => 'LastSyncTimeInUTC', type => 'dateTime', namespace => 'https://adcenter.microsoft.com/v8' },
208             { name => 'LocationTargetVersion', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' }
209             ]
210             },
211             response => {
212             name => 'DownloadCampaignsByCampaignIdsResponse'
213             },
214             parameters => \%args
215             );
216             }
217              
218             =head2 GetDownloadStatus
219              
220             =over
221              
222             =item Parameters:
223              
224             DownloadRequestId (string)
225              
226             =item Returns:
227              
228             GetDownloadStatusResponse
229              
230             =back
231              
232             =cut
233              
234             sub GetDownloadStatus {
235             my ($self, %args) = @_;
236             return $self->_invoke(
237             soap_action => 'GetDownloadStatus',
238             request => {
239             name => 'GetDownloadStatusRequest',
240             parameters => [
241             { name => 'DownloadRequestId', type => 'string', namespace => 'https://adcenter.microsoft.com/v8' }
242             ]
243             },
244             response => {
245             name => 'GetDownloadStatusResponse'
246             },
247             parameters => \%args
248             );
249             }
250              
251             our %_simple_types = (
252             AdditionalEntity => 'https://adcenter.microsoft.com/v8',
253             DownloadStatus => 'https://adcenter.microsoft.com/v8',
254             char => 'http://schemas.microsoft.com/2003/10/Serialization/',
255             duration => 'http://schemas.microsoft.com/2003/10/Serialization/',
256             guid => 'http://schemas.microsoft.com/2003/10/Serialization/',
257             );
258              
259             sub _simple_types {
260             return %_simple_types;
261             }
262              
263             our @_complex_types = (qw/
264             AdApiError
265             AdApiFaultDetail
266             ApiFaultDetail
267             ApplicationFault
268             BatchError
269             CampaignScope
270             DownloadCampaignsByAccountIdsResponse
271             DownloadCampaignsByCampaignIdsResponse
272             GetDownloadStatusResponse
273             OperationError
274             /);
275              
276             sub _complex_types {
277             return @_complex_types;
278             }
279              
280             our %_array_types = (
281             ArrayOfAdApiError => {
282             namespace_uri => 'https://adapi.microsoft.com',
283             element_name => 'AdApiError',
284             element_type => 'AdApiError'
285             },
286             ArrayOfBatchError => {
287             namespace_uri => 'https://adcenter.microsoft.com/v8',
288             element_name => 'BatchError',
289             element_type => 'BatchError'
290             },
291             ArrayOfCampaignScope => {
292             namespace_uri => 'https://adcenter.microsoft.com/v8',
293             element_name => 'CampaignScope',
294             element_type => 'CampaignScope'
295             },
296             ArrayOfOperationError => {
297             namespace_uri => 'https://adcenter.microsoft.com/v8',
298             element_name => 'OperationError',
299             element_type => 'OperationError'
300             },
301             ArrayOflong => {
302             namespace_uri => 'http://schemas.microsoft.com/2003/10/Serialization/Arrays',
303             element_name => 'long',
304             element_type => 'long'
305             },
306             );
307              
308             sub _array_types {
309             return %_array_types;
310             }
311              
312             __PACKAGE__->mk_accessors(qw/
313             ApplicationToken
314             CustomerAccountId
315             CustomerId
316             DeveloperToken
317             Password
318             UserName
319             TrackingId
320             /);
321              
322             1;