File Coverage

blib/lib/Microsoft/AdCenter/V7/CustomerManagementService.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::V7::CustomerManagementService;
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 34     34   8486208 use strict;
  34         159  
  34         1454  
7 34     34   214 use warnings;
  34         73  
  34         1728  
8              
9             =head1 NAME
10              
11             Microsoft::AdCenter::V7::CustomerManagementService - Service client for Microsoft AdCenter Customer Management Service.
12              
13             =head1 SYNOPSIS
14              
15             use Microsoft::AdCenter::V7::CustomerManagementService;
16              
17             my $service_client = Microsoft::AdCenter::V7::CustomerManagementService->new
18             ->ApplicationToken("application token")
19             ->DeveloperToken("developer token")
20             ->Password("password")
21             ->UserName("user name");
22              
23             my $response = $service_client->AddAccount(
24             Account => ...
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/CustomerManagement/v7/CustomerManagementService.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 34     34   208 use base qw/Microsoft::AdCenter::Service/;
  34         68  
  34         30069  
60              
61             sub _service_name {
62             return 'CustomerManagementService';
63             }
64              
65             sub _service_version {
66             return 'V7';
67             }
68              
69             sub _class_name {
70             return 'CustomerManagementService';
71             }
72              
73             sub _namespace_uri {
74             return 'https://adcenter.microsoft.com/api/customermanagement';
75             }
76              
77             sub _default_location {
78             return 'https://sharedservices.adcenterapi.microsoft.com/Api/CustomerManagement/v7/CustomerManagementService.svc';
79             }
80              
81             sub _wsdl {
82             return 'https://sharedservices.adcenterapi.microsoft.com/Api/CustomerManagement/v7/CustomerManagementService.svc?wsdl';
83             }
84              
85             our $_request_headers = [
86             { name => 'ApplicationToken', type => 'string', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
87             { name => 'DeveloperToken', type => 'string', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
88             { name => 'Password', type => 'string', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
89             { name => 'UserName', type => 'string', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
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/customermanagement' }
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 AddAccount
124              
125             =over
126              
127             =item Parameters:
128              
129             Account (Account)
130              
131             =item Returns:
132              
133             AddAccountResponse
134              
135             =back
136              
137             =cut
138              
139             sub AddAccount {
140             my ($self, %args) = @_;
141             return $self->_invoke(
142             soap_action => 'AddAccount',
143             request => {
144             name => 'AddAccountRequest',
145             parameters => [
146             { name => 'Account', type => 'Account', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
147             ]
148             },
149             response => {
150             name => 'AddAccountResponse'
151             },
152             parameters => \%args
153             );
154             }
155              
156             =head2 AddUser
157              
158             =over
159              
160             =item Parameters:
161              
162             User (User)
163             Role (UserRole)
164             AccountIds (ArrayOflong)
165              
166             =item Returns:
167              
168             AddUserResponse
169              
170             =back
171              
172             =cut
173              
174             sub AddUser {
175             my ($self, %args) = @_;
176             return $self->_invoke(
177             soap_action => 'AddUser',
178             request => {
179             name => 'AddUserRequest',
180             parameters => [
181             { name => 'User', type => 'User', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
182             { name => 'Role', type => 'UserRole', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
183             { name => 'AccountIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
184             ]
185             },
186             response => {
187             name => 'AddUserResponse'
188             },
189             parameters => \%args
190             );
191             }
192              
193             =head2 DeleteAccount
194              
195             =over
196              
197             =item Parameters:
198              
199             AccountId (long)
200             TimeStamp (base64Binary)
201              
202             =item Returns:
203              
204             DeleteAccountResponse
205              
206             =back
207              
208             =cut
209              
210             sub DeleteAccount {
211             my ($self, %args) = @_;
212             return $self->_invoke(
213             soap_action => 'DeleteAccount',
214             request => {
215             name => 'DeleteAccountRequest',
216             parameters => [
217             { name => 'AccountId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
218             { name => 'TimeStamp', type => 'base64Binary', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
219             ]
220             },
221             response => {
222             name => 'DeleteAccountResponse'
223             },
224             parameters => \%args
225             );
226             }
227              
228             =head2 DeleteCustomer
229              
230             =over
231              
232             =item Parameters:
233              
234             CustomerId (long)
235             TimeStamp (base64Binary)
236              
237             =item Returns:
238              
239             DeleteCustomerResponse
240              
241             =back
242              
243             =cut
244              
245             sub DeleteCustomer {
246             my ($self, %args) = @_;
247             return $self->_invoke(
248             soap_action => 'DeleteCustomer',
249             request => {
250             name => 'DeleteCustomerRequest',
251             parameters => [
252             { name => 'CustomerId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
253             { name => 'TimeStamp', type => 'base64Binary', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
254             ]
255             },
256             response => {
257             name => 'DeleteCustomerResponse'
258             },
259             parameters => \%args
260             );
261             }
262              
263             =head2 DeleteUser
264              
265             =over
266              
267             =item Parameters:
268              
269             UserId (long)
270             TimeStamp (base64Binary)
271              
272             =item Returns:
273              
274             DeleteUserResponse
275              
276             =back
277              
278             =cut
279              
280             sub DeleteUser {
281             my ($self, %args) = @_;
282             return $self->_invoke(
283             soap_action => 'DeleteUser',
284             request => {
285             name => 'DeleteUserRequest',
286             parameters => [
287             { name => 'UserId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
288             { name => 'TimeStamp', type => 'base64Binary', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
289             ]
290             },
291             response => {
292             name => 'DeleteUserResponse'
293             },
294             parameters => \%args
295             );
296             }
297              
298             =head2 GetAccount
299              
300             =over
301              
302             =item Parameters:
303              
304             AccountId (long)
305              
306             =item Returns:
307              
308             GetAccountResponse
309              
310             =back
311              
312             =cut
313              
314             sub GetAccount {
315             my ($self, %args) = @_;
316             return $self->_invoke(
317             soap_action => 'GetAccount',
318             request => {
319             name => 'GetAccountRequest',
320             parameters => [
321             { name => 'AccountId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
322             ]
323             },
324             response => {
325             name => 'GetAccountResponse'
326             },
327             parameters => \%args
328             );
329             }
330              
331             =head2 GetAccountsInfo
332              
333             =over
334              
335             =item Parameters:
336              
337             CustomerId (long)
338              
339             =item Returns:
340              
341             GetAccountsInfoResponse
342              
343             =back
344              
345             =cut
346              
347             sub GetAccountsInfo {
348             my ($self, %args) = @_;
349             return $self->_invoke(
350             soap_action => 'GetAccountsInfo',
351             request => {
352             name => 'GetAccountsInfoRequest',
353             parameters => [
354             { name => 'CustomerId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
355             ]
356             },
357             response => {
358             name => 'GetAccountsInfoResponse'
359             },
360             parameters => \%args
361             );
362             }
363              
364             =head2 GetCustomer
365              
366             =over
367              
368             =item Parameters:
369              
370             CustomerId (long)
371              
372             =item Returns:
373              
374             GetCustomerResponse
375              
376             =back
377              
378             =cut
379              
380             sub GetCustomer {
381             my ($self, %args) = @_;
382             return $self->_invoke(
383             soap_action => 'GetCustomer',
384             request => {
385             name => 'GetCustomerRequest',
386             parameters => [
387             { name => 'CustomerId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
388             ]
389             },
390             response => {
391             name => 'GetCustomerResponse'
392             },
393             parameters => \%args
394             );
395             }
396              
397             =head2 GetCustomerPilotFeature
398              
399             =over
400              
401             =item Parameters:
402              
403             CustomerId (long)
404              
405             =item Returns:
406              
407             GetCustomerPilotFeatureResponse
408              
409             =back
410              
411             =cut
412              
413             sub GetCustomerPilotFeature {
414             my ($self, %args) = @_;
415             return $self->_invoke(
416             soap_action => 'GetCustomerPilotFeature',
417             request => {
418             name => 'GetCustomerPilotFeatureRequest',
419             parameters => [
420             { name => 'CustomerId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
421             ]
422             },
423             response => {
424             name => 'GetCustomerPilotFeatureResponse'
425             },
426             parameters => \%args
427             );
428             }
429              
430             =head2 GetCustomersInfo
431              
432             =over
433              
434             =item Parameters:
435              
436             CustomerNameFilter (string)
437             TopN (int)
438             ApplicationScope (ApplicationType)
439              
440             =item Returns:
441              
442             GetCustomersInfoResponse
443              
444             =back
445              
446             =cut
447              
448             sub GetCustomersInfo {
449             my ($self, %args) = @_;
450             return $self->_invoke(
451             soap_action => 'GetCustomersInfo',
452             request => {
453             name => 'GetCustomersInfoRequest',
454             parameters => [
455             { name => 'CustomerNameFilter', type => 'string', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
456             { name => 'TopN', type => 'int', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
457             { name => 'ApplicationScope', type => 'ApplicationType', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
458             ]
459             },
460             response => {
461             name => 'GetCustomersInfoResponse'
462             },
463             parameters => \%args
464             );
465             }
466              
467             =head2 GetUser
468              
469             =over
470              
471             =item Parameters:
472              
473             UserId (long)
474              
475             =item Returns:
476              
477             GetUserResponse
478              
479             =back
480              
481             =cut
482              
483             sub GetUser {
484             my ($self, %args) = @_;
485             return $self->_invoke(
486             soap_action => 'GetUser',
487             request => {
488             name => 'GetUserRequest',
489             parameters => [
490             { name => 'UserId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
491             ]
492             },
493             response => {
494             name => 'GetUserResponse'
495             },
496             parameters => \%args
497             );
498             }
499              
500             =head2 GetUsersInfo
501              
502             =over
503              
504             =item Parameters:
505              
506             CustomerId (long)
507             StatusFilter (UserStatus)
508              
509             =item Returns:
510              
511             GetUsersInfoResponse
512              
513             =back
514              
515             =cut
516              
517             sub GetUsersInfo {
518             my ($self, %args) = @_;
519             return $self->_invoke(
520             soap_action => 'GetUsersInfo',
521             request => {
522             name => 'GetUsersInfoRequest',
523             parameters => [
524             { name => 'CustomerId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
525             { name => 'StatusFilter', type => 'UserStatus', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
526             ]
527             },
528             response => {
529             name => 'GetUsersInfoResponse'
530             },
531             parameters => \%args
532             );
533             }
534              
535             =head2 SignupCustomer
536              
537             =over
538              
539             =item Parameters:
540              
541             Customer (Customer)
542             User (User)
543             Account (Account)
544             ParentCustomerId (long)
545             ApplicationScope (ApplicationType)
546              
547             =item Returns:
548              
549             SignupCustomerResponse
550              
551             =back
552              
553             =cut
554              
555             sub SignupCustomer {
556             my ($self, %args) = @_;
557             return $self->_invoke(
558             soap_action => 'SignupCustomer',
559             request => {
560             name => 'SignupCustomerRequest',
561             parameters => [
562             { name => 'Customer', type => 'Customer', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
563             { name => 'User', type => 'User', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
564             { name => 'Account', type => 'Account', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
565             { name => 'ParentCustomerId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
566             { name => 'ApplicationScope', type => 'ApplicationType', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
567             ]
568             },
569             response => {
570             name => 'SignupCustomerResponse'
571             },
572             parameters => \%args
573             );
574             }
575              
576             =head2 UpdateAccount
577              
578             =over
579              
580             =item Parameters:
581              
582             Account (Account)
583              
584             =item Returns:
585              
586             UpdateAccountResponse
587              
588             =back
589              
590             =cut
591              
592             sub UpdateAccount {
593             my ($self, %args) = @_;
594             return $self->_invoke(
595             soap_action => 'UpdateAccount',
596             request => {
597             name => 'UpdateAccountRequest',
598             parameters => [
599             { name => 'Account', type => 'Account', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
600             ]
601             },
602             response => {
603             name => 'UpdateAccountResponse'
604             },
605             parameters => \%args
606             );
607             }
608              
609             =head2 UpdateCustomer
610              
611             =over
612              
613             =item Parameters:
614              
615             Customer (Customer)
616              
617             =item Returns:
618              
619             UpdateCustomerResponse
620              
621             =back
622              
623             =cut
624              
625             sub UpdateCustomer {
626             my ($self, %args) = @_;
627             return $self->_invoke(
628             soap_action => 'UpdateCustomer',
629             request => {
630             name => 'UpdateCustomerRequest',
631             parameters => [
632             { name => 'Customer', type => 'Customer', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
633             ]
634             },
635             response => {
636             name => 'UpdateCustomerResponse'
637             },
638             parameters => \%args
639             );
640             }
641              
642             =head2 UpdateUser
643              
644             =over
645              
646             =item Parameters:
647              
648             User (User)
649              
650             =item Returns:
651              
652             UpdateUserResponse
653              
654             =back
655              
656             =cut
657              
658             sub UpdateUser {
659             my ($self, %args) = @_;
660             return $self->_invoke(
661             soap_action => 'UpdateUser',
662             request => {
663             name => 'UpdateUserRequest',
664             parameters => [
665             { name => 'User', type => 'User', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
666             ]
667             },
668             response => {
669             name => 'UpdateUserResponse'
670             },
671             parameters => \%args
672             );
673             }
674              
675             =head2 UpdateUserRoles
676              
677             =over
678              
679             =item Parameters:
680              
681             CustomerId (long)
682             UserId (long)
683             NewRoleId (int)
684             NewAccountIds (ArrayOflong)
685             NewCustomerIds (ArrayOflong)
686             DeleteRoleId (int)
687             DeleteAccountIds (ArrayOflong)
688             DeleteCustomerIds (ArrayOflong)
689              
690             =item Returns:
691              
692             UpdateUserRolesResponse
693              
694             =back
695              
696             =cut
697              
698             sub UpdateUserRoles {
699             my ($self, %args) = @_;
700             return $self->_invoke(
701             soap_action => 'UpdateUserRoles',
702             request => {
703             name => 'UpdateUserRolesRequest',
704             parameters => [
705             { name => 'CustomerId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
706             { name => 'UserId', type => 'long', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
707             { name => 'NewRoleId', type => 'int', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
708             { name => 'NewAccountIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
709             { name => 'NewCustomerIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
710             { name => 'DeleteRoleId', type => 'int', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
711             { name => 'DeleteAccountIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/api/customermanagement' },
712             { name => 'DeleteCustomerIds', type => 'ArrayOflong', namespace => 'https://adcenter.microsoft.com/api/customermanagement' }
713             ]
714             },
715             response => {
716             name => 'UpdateUserRolesResponse'
717             },
718             parameters => \%args
719             );
720             }
721              
722             our %_simple_types = (
723             AccountFinancialStatus => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
724             AccountLifeCycleStatus => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
725             AccountType => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
726             ApplicationType => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
727             CurrencyType => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
728             CustomerFinancialStatus => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
729             CustomerLifeCycleStatus => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
730             EmailFormat => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
731             Industry => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
732             LCID => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
733             LanguageType => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
734             Market => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
735             PaymentMethodType => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
736             SecretQuestion => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
737             ServiceLevel => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
738             TimeZoneType => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
739             UserRole => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
740             UserStatus => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
741             char => 'http://schemas.microsoft.com/2003/10/Serialization/',
742             duration => 'http://schemas.microsoft.com/2003/10/Serialization/',
743             guid => 'http://schemas.microsoft.com/2003/10/Serialization/',
744             );
745              
746             sub _simple_types {
747             return %_simple_types;
748             }
749              
750             our @_complex_types = (qw/
751             Account
752             AccountInfo
753             AdApiError
754             AdApiFaultDetail
755             AddAccountResponse
756             AddUserResponse
757             Address
758             AdvertiserAccount
759             ApiFault
760             ApplicationFault
761             ContactInfo
762             Customer
763             CustomerInfo
764             DeleteAccountResponse
765             DeleteCustomerResponse
766             DeleteUserResponse
767             GetAccountResponse
768             GetAccountsInfoResponse
769             GetCustomerPilotFeatureResponse
770             GetCustomerResponse
771             GetCustomersInfoResponse
772             GetUserResponse
773             GetUsersInfoResponse
774             OperationError
775             PersonName
776             PublisherAccount
777             SignupCustomerResponse
778             UpdateAccountResponse
779             UpdateCustomerResponse
780             UpdateUserResponse
781             UpdateUserRolesResponse
782             User
783             UserInfo
784             /);
785              
786             sub _complex_types {
787             return @_complex_types;
788             }
789              
790             our %_array_types = (
791             ArrayOfAccountInfo => {
792             namespace_uri => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
793             element_name => 'AccountInfo',
794             element_type => 'AccountInfo'
795             },
796             ArrayOfAdApiError => {
797             namespace_uri => 'https://adapi.microsoft.com',
798             element_name => 'AdApiError',
799             element_type => 'AdApiError'
800             },
801             ArrayOfCustomerInfo => {
802             namespace_uri => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
803             element_name => 'CustomerInfo',
804             element_type => 'CustomerInfo'
805             },
806             ArrayOfOperationError => {
807             namespace_uri => 'https://adcenter.microsoft.com/api/customermanagement/Exception',
808             element_name => 'OperationError',
809             element_type => 'OperationError'
810             },
811             ArrayOfUserInfo => {
812             namespace_uri => 'https://adcenter.microsoft.com/api/customermanagement/Entities',
813             element_name => 'UserInfo',
814             element_type => 'UserInfo'
815             },
816             ArrayOfint => {
817             namespace_uri => 'http://schemas.microsoft.com/2003/10/Serialization/Arrays',
818             element_name => 'int',
819             element_type => 'int'
820             },
821             ArrayOflong => {
822             namespace_uri => 'http://schemas.microsoft.com/2003/10/Serialization/Arrays',
823             element_name => 'long',
824             element_type => 'long'
825             },
826             );
827              
828             sub _array_types {
829             return %_array_types;
830             }
831              
832             __PACKAGE__->mk_accessors(qw/
833             ApplicationToken
834             DeveloperToken
835             Password
836             UserName
837             TrackingId
838             /);
839              
840             1;