File Coverage

blib/lib/Microsoft/AdCenter/V8/CustomerBillingService.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::CustomerBillingService;
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 19     19   2073783 use strict;
  19         52  
  19         1072  
7 19     19   117 use warnings;
  19         41  
  19         892  
8              
9             =head1 NAME
10              
11             Microsoft::AdCenter::V8::CustomerBillingService - Service client for Microsoft AdCenter Customer Billing Service.
12              
13             =head1 SYNOPSIS
14              
15             use Microsoft::AdCenter::V8::CustomerBillingService;
16              
17             my $service_client = Microsoft::AdCenter::V8::CustomerBillingService->new
18             ->ApplicationToken("application token")
19             ->DeveloperToken("developer token")
20             ->Password("password")
21             ->UserName("user name");
22              
23             my $response = $service_client->AddInsertionOrder(
24             InsertionOrder => ...
25             );
26              
27             See L for detailed documentation for this service.
28              
29             =head1 METHODS
30              
31             =head2 EndPoint
32              
33             Changes the end point for this service client.
34              
35             Default value: https://sharedservices.adcenterapi.microsoft.com/Api/Billing/v8/CustomerBillingService.svc
36              
37             =head2 ApplicationToken
38              
39             Gets/sets ApplicationToken (string) in the request header
40              
41             =head2 DeveloperToken
42              
43             Gets/sets DeveloperToken (string) in the request header
44              
45             =head2 Password
46              
47             Gets/sets Password (string) in the request header
48              
49             =head2 UserName
50              
51             Gets/sets UserName (string) in the request header
52              
53             =head2 TrackingId
54              
55             Gets TrackingId (string) in the response header
56              
57             =cut
58              
59 19     19   109 use base qw/Microsoft::AdCenter::Service/;
  19         41  
  19         13300  
60              
61             sub _service_name {
62             return 'CustomerBillingService';
63             }
64              
65             sub _service_version {
66             return 'V8';
67             }
68              
69             sub _class_name {
70             return 'CustomerBillingService';
71             }
72              
73             sub _namespace_uri {
74             return 'https://adcenter.microsoft.com/api/customerbilling';
75             }
76              
77             sub _default_location {
78             return 'https://sharedservices.adcenterapi.microsoft.com/Api/Billing/v8/CustomerBillingService.svc';
79             }
80              
81             sub _wsdl {
82             return 'https://sharedservices.adcenterapi.microsoft.com/Api/Billing/v8/CustomerBillingService.svc?wsdl';
83             }
84              
85             our $_request_headers = [
86             { name => 'ApplicationToken', type => 'string', namespace => 'https://adcenter.microsoft.com/api/customerbilling' },
87             { name => 'DeveloperToken', type => 'string', namespace => 'https://adcenter.microsoft.com/api/customerbilling' },
88             { name => 'Password', type => 'string', namespace => 'https://adcenter.microsoft.com/api/customerbilling' },
89             { name => 'UserName', type => 'string', namespace => 'https://adcenter.microsoft.com/api/customerbilling' }
90             ];
91              
92             our $_request_headers_expanded = {
93             ApplicationToken => 'string',
94             DeveloperToken => 'string',
95             Password => 'string',
96             UserName => 'string'
97             };
98              
99             sub _request_headers {
100             return $_request_headers;
101             }
102              
103             sub _request_headers_expanded {
104             return $_request_headers_expanded;
105             }
106              
107             our $_response_headers = [
108             { name => 'TrackingId', type => 'string', namespace => 'https://adcenter.microsoft.com/api/customerbilling' }
109             ];
110              
111             our $_response_headers_expanded = {
112             TrackingId => 'string'
113             };
114              
115             sub _response_headers {
116             return $_response_headers;
117             }
118              
119             sub _response_headers_expanded {
120             return $_response_headers_expanded;
121             }
122              
123             =head2 AddInsertionOrder
124              
125             =over
126              
127             =item Parameters:
128              
129             InsertionOrder (InsertionOrder)
130              
131             =item Returns:
132              
133             AddInsertionOrderResponse
134              
135             =back
136              
137             =cut
138              
139             sub AddInsertionOrder {
140             my ($self, %args) = @_;
141             return $self->_invoke(
142             soap_action => 'AddInsertionOrder',
143             request => {
144             name => 'AddInsertionOrderRequest',
145             parameters => [
146             { name => 'InsertionOrder', type => 'InsertionOrder', namespace => 'https://adcenter.microsoft.com/api/customerbilling' }
147             ]
148             },
149             response => {
150             name => 'AddInsertionOrderResponse'
151             },
152             parameters => \%args
153             );
154             }
155              
156             =head2 GetAccountMonthlySpend
157              
158             =over
159              
160             =item Parameters:
161              
162             AccountId (long)
163             MonthYear (dateTime)
164              
165             =item Returns:
166              
167             GetAccountMonthlySpendResponse
168              
169             =back
170              
171             =cut
172              
173             sub GetAccountMonthlySpend {
174             my ($self, %args) = @_;
175             return $self->_invoke(
176             soap_action => 'GetAccountMonthlySpend',
177             request => {
178             name => 'GetAccountMonthlySpendRequest',
179             parameters => [
180             { name => 'AccountId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customerbilling' },
181             { name => 'MonthYear', type => 'dateTime', namespace => 'https://adcenter.microsoft.com/api/customerbilling' }
182             ]
183             },
184             response => {
185             name => 'GetAccountMonthlySpendResponse'
186             },
187             parameters => \%args
188             );
189             }
190              
191             =head2 GetDisplayInvoices
192              
193             =over
194              
195             =item Parameters:
196              
197             InvoiceIds (ArrayOflong)
198             Type (DataType)
199              
200             =item Returns:
201              
202             GetDisplayInvoicesResponse
203              
204             =back
205              
206             =cut
207              
208             sub GetDisplayInvoices {
209             my ($self, %args) = @_;
210             return $self->_invoke(
211             soap_action => 'GetDisplayInvoices',
212             request => {
213             name => 'GetDisplayInvoicesRequest',
214             parameters => [
215             { name => 'InvoiceIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/api/customerbilling' },
216             { name => 'Type', type => 'DataType', namespace => 'https://adcenter.microsoft.com/api/customerbilling' }
217             ]
218             },
219             response => {
220             name => 'GetDisplayInvoicesResponse'
221             },
222             parameters => \%args
223             );
224             }
225              
226             =head2 GetInsertionOrdersByAccount
227              
228             =over
229              
230             =item Parameters:
231              
232             AccountId (long)
233             InsertionOrderIds (ArrayOflong)
234              
235             =item Returns:
236              
237             GetInsertionOrdersByAccountResponse
238              
239             =back
240              
241             =cut
242              
243             sub GetInsertionOrdersByAccount {
244             my ($self, %args) = @_;
245             return $self->_invoke(
246             soap_action => 'GetInsertionOrdersByAccount',
247             request => {
248             name => 'GetInsertionOrdersByAccountRequest',
249             parameters => [
250             { name => 'AccountId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customerbilling' },
251             { name => 'InsertionOrderIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/api/customerbilling' }
252             ]
253             },
254             response => {
255             name => 'GetInsertionOrdersByAccountResponse'
256             },
257             parameters => \%args
258             );
259             }
260              
261             =head2 GetInvoices
262              
263             =over
264              
265             =item Parameters:
266              
267             InvoiceIds (ArrayOflong)
268             Type (DataType)
269              
270             =item Returns:
271              
272             GetInvoicesResponse
273              
274             =back
275              
276             =cut
277              
278             sub GetInvoices {
279             my ($self, %args) = @_;
280             return $self->_invoke(
281             soap_action => 'GetInvoices',
282             request => {
283             name => 'GetInvoicesRequest',
284             parameters => [
285             { name => 'InvoiceIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/api/customerbilling' },
286             { name => 'Type', type => 'DataType', namespace => 'https://adcenter.microsoft.com/api/customerbilling' }
287             ]
288             },
289             response => {
290             name => 'GetInvoicesResponse'
291             },
292             parameters => \%args
293             );
294             }
295              
296             =head2 GetInvoicesInfo
297              
298             =over
299              
300             =item Parameters:
301              
302             AccountIds (ArrayOflong)
303             StartDate (dateTime)
304             EndDate (dateTime)
305              
306             =item Returns:
307              
308             GetInvoicesInfoResponse
309              
310             =back
311              
312             =cut
313              
314             sub GetInvoicesInfo {
315             my ($self, %args) = @_;
316             return $self->_invoke(
317             soap_action => 'GetInvoicesInfo',
318             request => {
319             name => 'GetInvoicesInfoRequest',
320             parameters => [
321             { name => 'AccountIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/api/customerbilling' },
322             { name => 'StartDate', type => 'dateTime', namespace => 'https://adcenter.microsoft.com/api/customerbilling' },
323             { name => 'EndDate', type => 'dateTime', namespace => 'https://adcenter.microsoft.com/api/customerbilling' }
324             ]
325             },
326             response => {
327             name => 'GetInvoicesInfoResponse'
328             },
329             parameters => \%args
330             );
331             }
332              
333             =head2 GetKOHIOInvoices
334              
335             =over
336              
337             =item Parameters:
338              
339             InvoiceIds (ArrayOfstring)
340              
341             =item Returns:
342              
343             GetKOHIOInvoicesResponse
344              
345             =back
346              
347             =cut
348              
349             sub GetKOHIOInvoices {
350             my ($self, %args) = @_;
351             return $self->_invoke(
352             soap_action => 'GetKOHIOInvoices',
353             request => {
354             name => 'GetKOHIOInvoicesRequest',
355             parameters => [
356             { name => 'InvoiceIds', type => 'ArrayOfstring', namespace => 'https://adcenter.microsoft.com/api/customerbilling' }
357             ]
358             },
359             response => {
360             name => 'GetKOHIOInvoicesResponse'
361             },
362             parameters => \%args
363             );
364             }
365              
366             =head2 UpdateInsertionOrder
367              
368             =over
369              
370             =item Parameters:
371              
372             InsertionOrder (InsertionOrder)
373              
374             =item Returns:
375              
376             UpdateInsertionOrderResponse
377              
378             =back
379              
380             =cut
381              
382             sub UpdateInsertionOrder {
383             my ($self, %args) = @_;
384             return $self->_invoke(
385             soap_action => 'UpdateInsertionOrder',
386             request => {
387             name => 'UpdateInsertionOrderRequest',
388             parameters => [
389             { name => 'InsertionOrder', type => 'InsertionOrder', namespace => 'https://adcenter.microsoft.com/api/customerbilling' }
390             ]
391             },
392             response => {
393             name => 'UpdateInsertionOrderResponse'
394             },
395             parameters => \%args
396             );
397             }
398              
399             our %_simple_types = (
400             DataType => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
401             char => 'http://schemas.microsoft.com/2003/10/Serialization/',
402             duration => 'http://schemas.microsoft.com/2003/10/Serialization/',
403             guid => 'http://schemas.microsoft.com/2003/10/Serialization/',
404             );
405              
406             sub _simple_types {
407             return %_simple_types;
408             }
409              
410             our @_complex_types = (qw/
411             AdApiError
412             AdApiFaultDetail
413             AddInsertionOrderResponse
414             ApiBatchFault
415             ApiFault
416             ApplicationFault
417             BatchError
418             GetAccountMonthlySpendResponse
419             GetDisplayInvoicesResponse
420             GetInsertionOrdersByAccountResponse
421             GetInvoicesInfoResponse
422             GetInvoicesResponse
423             GetKOHIOInvoicesResponse
424             InsertionOrder
425             Invoice
426             InvoiceInfo
427             OperationError
428             UpdateInsertionOrderResponse
429             /);
430              
431             sub _complex_types {
432             return @_complex_types;
433             }
434              
435             our %_array_types = (
436             ArrayOfAdApiError => {
437             namespace_uri => 'https://adapi.microsoft.com',
438             element_name => 'AdApiError',
439             element_type => 'AdApiError'
440             },
441             ArrayOfBatchError => {
442             namespace_uri => 'https://adcenter.microsoft.com/api/customermanagement/Exception',
443             element_name => 'BatchError',
444             element_type => 'BatchError'
445             },
446             ArrayOfInsertionOrder => {
447             namespace_uri => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
448             element_name => 'InsertionOrder',
449             element_type => 'InsertionOrder'
450             },
451             ArrayOfInvoice => {
452             namespace_uri => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
453             element_name => 'Invoice',
454             element_type => 'Invoice'
455             },
456             ArrayOfInvoiceInfo => {
457             namespace_uri => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
458             element_name => 'InvoiceInfo',
459             element_type => 'InvoiceInfo'
460             },
461             ArrayOfOperationError => {
462             namespace_uri => 'https://adcenter.microsoft.com/api/customermanagement/Exception',
463             element_name => 'OperationError',
464             element_type => 'OperationError'
465             },
466             ArrayOflong => {
467             namespace_uri => 'http://schemas.microsoft.com/2003/10/Serialization/Arrays',
468             element_name => 'long',
469             element_type => 'long'
470             },
471             ArrayOfstring => {
472             namespace_uri => 'http://schemas.microsoft.com/2003/10/Serialization/Arrays',
473             element_name => 'string',
474             element_type => 'string'
475             },
476             );
477              
478             sub _array_types {
479             return %_array_types;
480             }
481              
482             __PACKAGE__->mk_accessors(qw/
483             ApplicationToken
484             DeveloperToken
485             Password
486             UserName
487             TrackingId
488             /);
489              
490             1;