yieldmanager 0.0.2 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. data/README.rdoc +32 -5
  2. data/Rakefile +22 -0
  3. data/TODO +15 -0
  4. data/VERSION +1 -1
  5. data/lib/yieldmanager/builder.rb +73 -0
  6. data/lib/yieldmanager/client.rb +106 -0
  7. data/lib/yieldmanager.rb +11 -15
  8. data/spec/yieldmanager/builder_spec.rb +74 -0
  9. data/spec/yieldmanager/client_spec.rb +87 -0
  10. data/wsdls/1.30/prod/adjustment.wsdl +2 -0
  11. data/wsdls/1.30/prod/advertiser.wsdl +2 -0
  12. data/wsdls/1.30/prod/campaign.wsdl +2 -0
  13. data/wsdls/1.30/prod/contact.wsdl +2 -0
  14. data/wsdls/1.30/prod/creative.wsdl +2 -0
  15. data/wsdls/1.30/prod/dictionary.wsdl +2 -0
  16. data/wsdls/1.30/prod/entity.wsdl +2 -0
  17. data/wsdls/1.30/prod/insertion_order.wsdl +2 -0
  18. data/wsdls/1.30/prod/line_item.wsdl +2 -0
  19. data/wsdls/1.30/prod/linking.wsdl +2 -0
  20. data/wsdls/1.30/prod/pixel.wsdl +2 -0
  21. data/wsdls/1.30/prod/placement.wsdl +2 -0
  22. data/wsdls/1.30/prod/publisher.wsdl +2 -0
  23. data/wsdls/1.30/prod/report.wsdl +2 -0
  24. data/wsdls/1.30/prod/search.wsdl +2 -0
  25. data/wsdls/1.30/prod/section.wsdl +2 -0
  26. data/wsdls/1.30/prod/site.wsdl +2 -0
  27. data/wsdls/1.30/prod/target_profile.wsdl +2 -0
  28. data/wsdls/1.30/prod/xsd_gen.php +40 -0
  29. data/wsdls/1.30/test/adjustment.wsdl +2 -0
  30. data/wsdls/1.30/test/advertiser.wsdl +2 -0
  31. data/wsdls/1.30/test/campaign.wsdl +2 -0
  32. data/wsdls/1.30/test/contact.wsdl +2 -0
  33. data/wsdls/1.30/test/creative.wsdl +2 -0
  34. data/wsdls/1.30/test/dictionary.wsdl +2 -0
  35. data/wsdls/1.30/test/entity.wsdl +2 -0
  36. data/wsdls/1.30/test/insertion_order.wsdl +2 -0
  37. data/wsdls/1.30/test/line_item.wsdl +2 -0
  38. data/wsdls/1.30/test/linking.wsdl +2 -0
  39. data/wsdls/1.30/test/pixel.wsdl +2 -0
  40. data/wsdls/1.30/test/placement.wsdl +2 -0
  41. data/wsdls/1.30/test/publisher.wsdl +2 -0
  42. data/wsdls/1.30/test/report.wsdl +2 -0
  43. data/wsdls/1.30/test/search.wsdl +2 -0
  44. data/wsdls/1.30/test/section.wsdl +2 -0
  45. data/wsdls/1.30/test/site.wsdl +2 -0
  46. data/wsdls/1.30/test/target_profile.wsdl +2 -0
  47. data/wsdls/1.30/test/xsd_gen.php +40 -0
  48. data/yieldmanager.gemspec +47 -4
  49. metadata +47 -4
  50. data/spec/yieldmanager_spec.rb +0 -23
data/README.rdoc CHANGED
@@ -1,10 +1,37 @@
1
1
  = yieldmanager
2
2
 
3
- This gem offers full access to YieldManager's API tools (read/write) as well as
4
- ad-hoc reporting through the Reportware tool.
3
+ This gem offers full access to YieldManager's API tools (read/write) and
4
+ (eventually) ad-hoc reporting through the Reportware tool.
5
5
 
6
- This is very much alpha software, so don't expect it to accomplish much if
7
- anything for awhile.
6
+ Currently it generates a fresh wsdl from the api.yieldmanager.com site the
7
+ first time you use a service (in the future it will use locally-cached
8
+ copies) and re-uses that wsdl for the life of the Yieldmanager::Client object.
9
+
10
+ == Creating a Yieldmanager::Client
11
+
12
+ @ym = Yieldmanager::Client(
13
+ :user => "bob",
14
+ :pass => "secret",
15
+ :api_version => "1.30"
16
+ )
17
+
18
+ == Finding available services
19
+
20
+ @ym.available_services
21
+
22
+ == Using a service
23
+
24
+ @ym.session do |token|
25
+ currencies = @ym.dictionary.getCurrencies(token)
26
+ end
27
+
28
+ == session vs. start_session/end_session
29
+
30
+ The +session+ method opens a session, gives you a token to use in your service
31
+ calls, then closes the session when the block ends, even if an exception is
32
+ raised during processing. It's the recommended method to ensure you don't
33
+ hang connections when things go wrong. If you use start/end, make sure you
34
+ wrap your logic in a begin/ensure clause and call end_session from the ensure.
8
35
 
9
36
  == Note on Patches/Pull Requests
10
37
 
@@ -14,7 +41,7 @@ anything for awhile.
14
41
  future version unintentionally.
15
42
  * Commit, do not mess with rakefile, version, or history.
16
43
  (if you want to have your own version, that is fine but
17
- bump version in a commit by itself I can ignore when I pull)
44
+ bump version in a commit by itself I can ignore when I pull)
18
45
  * Send me a pull request. Bonus points for topic branches.
19
46
 
20
47
  == Copyright
data/Rakefile CHANGED
@@ -43,3 +43,25 @@ Rake::RDocTask.new do |rdoc|
43
43
  rdoc.rdoc_files.include('README*')
44
44
  rdoc.rdoc_files.include('lib/**/*.rb')
45
45
  end
46
+
47
+ namespace :yieldmanager do
48
+ desc "Build local wsdl repository for supplied version"
49
+ task :get_wsdls do
50
+ api_version = ENV['API_VERSION']
51
+ unless api_version
52
+ raise ArgumentError, "Please supply API_VERSION"
53
+ end
54
+ require 'lib/yieldmanager/builder'
55
+ Yieldmanager::Builder.build_wsdls_for(api_version)
56
+ end
57
+
58
+ desc "Delete wsdls for supplied version"
59
+ task :delete_wsdls do
60
+ api_version = ENV['API_VERSION']
61
+ unless api_version
62
+ raise ArgumentError, "Please supply API_VERSION"
63
+ end
64
+ require 'lib/yieldmanager/builder'
65
+ Yieldmanager::Builder.delete_wsdls_for(api_version)
66
+ end
67
+ end
data/TODO ADDED
@@ -0,0 +1,15 @@
1
+ * resolve bug using local wsdls (currently using remote)
2
+ "unknown element: {http://schemas.xmlsoap.org/wsdl/}definitions"
3
+ * throwing warning when running in autotest, but not spec?: monkeypatch net/http?
4
+ "warning: peer certificate won't be verified in this SSL session"
5
+ * DONE add session start/end
6
+ * DONE add session block
7
+ * DONE end session even after exception
8
+ * DONE add usage docs to README
9
+ * add pagination
10
+ * add error-handling (timeouts, too many connections?)
11
+ * add reporting
12
+ ** report(xml) method in Client
13
+ ** Yieldmanager::Report DTO
14
+ *** headers array (for proper column ordering)
15
+ *** data as array of hashes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.1.1
@@ -0,0 +1,73 @@
1
+ require 'open-uri'
2
+ require 'ftools'
3
+ require 'fileutils'
4
+
5
+ module Yieldmanager
6
+ # Builds local copies of the Yieldmanager wsdls.
7
+ # These are used to dynamically-generate the service methods
8
+ # and instance variables in Yieldmanager::Client.
9
+ #
10
+ # At some point, the wsdls themselves will actually be used
11
+ # to build the objects.
12
+ class Builder
13
+ TEST = true
14
+ BASE_URL = "https://api.yieldmanager.com/api-"
15
+ BASE_URL_TEST = "https://api-test.yieldmanager.com/api-"
16
+ WSDL_DIR = File.join(File.dirname(__FILE__), '..', '..', 'wsdls')
17
+ def self.build_wsdls_for api_version
18
+ unless api_version.match(/^\d\.\d{2}/)
19
+ raise ArgumentError, "Non-standard api version"
20
+ end
21
+ build_dirs_for api_version
22
+ store_wsdls(BASE_URL, api_version, lookup_services(api_version))
23
+ store_wsdls(BASE_URL_TEST, api_version, lookup_services(api_version), TEST)
24
+ end
25
+
26
+ def self.delete_wsdls_for api_version
27
+ FileUtils.rm_rf "#{WSDL_DIR}/#{api_version}"
28
+ end
29
+
30
+ private
31
+
32
+ def self.build_dirs_for api_version
33
+ ["test","prod"].each do |env|
34
+ dir = "#{WSDL_DIR}/#{api_version}/#{env}"
35
+ if File.exists?(dir)
36
+ FileUtils.rm_rf dir
37
+ end
38
+ File.makedirs(dir)
39
+ end
40
+ end
41
+
42
+ def self.lookup_services api_version, test = false
43
+ services = []
44
+ base_url = test ? BASE_URL_TEST : BASE_URL
45
+ open("#{base_url}#{api_version}/xsd_gen.php?wsdl") do |f|
46
+ f.each_line do |line|
47
+ if line.match(/xmlns:api=".*\/(\w+)Service"/)
48
+ services << camel_to_under($1) unless $1 == "CPMFloor"
49
+ end
50
+ end
51
+ end
52
+ services << "xsd_gen"
53
+ services
54
+ end
55
+
56
+ def self.store_wsdls base_url, api_version, services, test = false
57
+ wsdl_path = "#{WSDL_DIR}/#{api_version}/#{test ? 'test' : 'prod'}"
58
+ services.each do |s|
59
+ service_url = "#{base_url}#{api_version}/#{s}.php?wsdl"
60
+ dest_path = "#{wsdl_path}/#{s}#{s == 'xsd_gen' ? '.php' : '.wsdl'}"
61
+ open(service_url) do |f|
62
+ File.open(dest_path,"w") do |wsdl_file|
63
+ f.each_line { |l| wsdl_file.write(l) }
64
+ end
65
+ end
66
+ end
67
+ end
68
+
69
+ def self.camel_to_under s
70
+ s.gsub(/(.)([A-Z])/,'\1_\2').downcase
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,106 @@
1
+ #!/usr/bin/env ruby -w
2
+
3
+ require 'soap/wsdlDriver'
4
+ require 'open-uri'
5
+
6
+ module Yieldmanager
7
+ # This is the frontend for using Yieldmanager programmatically.
8
+ # It can be directly used by the user by creating a
9
+ # new instance and calling +service_name+ to access YM services.
10
+ # For example:
11
+ #
12
+ # ym = Yieldmanager::Client(
13
+ # :user => "bob",
14
+ # :pass => "secret",
15
+ # :api_version => "1.30"
16
+ # )
17
+ #
18
+ # ym.session do |token|
19
+ # currencies = @ym.dictionary.getCurrencies(token)
20
+ # end
21
+ class Client
22
+ # Yieldmanager user
23
+ attr_reader :user
24
+ # Yieldmanager password
25
+ attr_reader :pass
26
+ # Yieldmanager api version (i.e., "1.30")
27
+ attr_reader :api_version
28
+ # Yieldmanager environment ("prod" or "test", defaults to "prod")
29
+ attr_reader :env
30
+ BASE_URL = "https://api.yieldmanager.com/api-"
31
+ BASE_URL_TEST = "https://api-test.yieldmanager.com/api-"
32
+ WSDL_DIR = File.join(File.dirname(__FILE__), '..', '..', 'wsdls')
33
+
34
+ # Creates interface object.
35
+ #
36
+ # Options:
37
+ # * :user (required) - Yieldmanager user
38
+ # * :pass (required) - Yieldmanager pass
39
+ # * :api_version (required) - Yieldmanager API version (i.e., "1.30")
40
+ # * :env (optional) - Yieldmanager environment "prod" or "test" (defaults to prod)
41
+ def initialize(options = nil)
42
+ unless options && options[:user] && options[:pass] && options[:api_version]
43
+ raise ArgumentError, ":user, :pass and :api_version are required"
44
+ end
45
+ @user = options[:user]
46
+ @pass = options[:pass]
47
+ @api_version = options[:api_version]
48
+ @env = options[:env] ||= "prod"
49
+ @wsdl_dir = "#{WSDL_DIR}/#{@api_version}/#{@env}"
50
+ wrap_services
51
+ end
52
+
53
+ def available_services
54
+ Dir.entries(@wsdl_dir).map do |wsdl|
55
+ if wsdl.match(/wsdl/)
56
+ wsdl.sub(/\.wsdl/,'')
57
+ else
58
+ nil
59
+ end
60
+ end.compact
61
+ end
62
+
63
+ # Opens Yieldmanager session
64
+ def start_session
65
+ contact.login(@user,@pass,{'errors_level' => 'throw_errors','multiple_sessions' => '1'})
66
+ end
67
+
68
+ # Closes Yieldmanager session
69
+ def end_session token
70
+ contact.logout(token)
71
+ end
72
+
73
+ # Manages Yieldmanager session
74
+ def session
75
+ token = start_session
76
+ begin
77
+ yield token
78
+ ensure
79
+ end_session token
80
+ end
81
+ end
82
+
83
+ private
84
+
85
+ def wrap_services
86
+ available_services.each do |s|
87
+ self.instance_variable_set("@#{s}", nil)
88
+ # create wrapper method to load it when requested
89
+ self.class.send(:define_method, s) {
90
+ unless self.instance_variable_get("@#{s}")
91
+ self.instance_variable_set("@#{s}",load_service(s))
92
+ end
93
+ self.instance_variable_get("@#{s}")
94
+ }
95
+ end
96
+ end
97
+
98
+ def load_service name
99
+ # FIXME Local wsdl hit throws "unknown element: {http://schemas.xmlsoap.org/wsdl/}definitions"
100
+ # wsdl_path = "file://#{@wsdl_dir}/#{name}.wsdl"
101
+ wsdl_path = "#{BASE_URL}#{api_version}/#{name}.php?wsdl"
102
+ SOAP::WSDLDriverFactory.new(wsdl_path).create_rpc_driver
103
+ end
104
+ end
105
+
106
+ end
data/lib/yieldmanager.rb CHANGED
@@ -1,16 +1,12 @@
1
- #!/usr/bin/env ruby -w
1
+ dir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift dir unless $LOAD_PATH.include?(dir)
3
+ # The module that contains everything Yieldmanager-related:
4
+ #
5
+ # * Yieldmanager::Client is the class used to interact with Yieldmanager.
6
+ # * Yieldmanager::Builder creates local copies of the YM service wsdls.
7
+ #
8
+ module Yieldmanager
9
+ end
2
10
 
3
- require 'soap/wsdlDriver'
4
-
5
- class Yieldmanager
6
- attr_accessor :user, :pass, :base_url
7
-
8
- def initialize(opts = nil)
9
- unless opts && opts[:user] && opts[:pass] && opts[:base_url]
10
- raise ArgumentError, ":user, :pass and :base_url are required"
11
- end
12
- @user = opts[:user]
13
- @pass = opts[:pass]
14
- @base_url = opts[:base_url]
15
- end
16
- end
11
+ require 'yieldmanager/client'
12
+ require 'yieldmanager/builder'
@@ -0,0 +1,74 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "A build run" do
4
+ WSDL_DIR = File.join(File.dirname(__FILE__), '..', '..', 'wsdls')
5
+ API_VERSION = "1.30"
6
+ VERSION_DIR = "#{WSDL_DIR}/#{API_VERSION}"
7
+
8
+ it "rejects non-standard api version" do
9
+ ["", "a", "1"].each do |v|
10
+ lambda { Yieldmanager::Builder.build_wsdls_for(v) }.should raise_error(ArgumentError)
11
+ end
12
+ end
13
+
14
+ it "creates dir structure for new api version" do
15
+ Yieldmanager::Builder.should_receive(:store_wsdls).exactly(2).times
16
+ Yieldmanager::Builder.build_wsdls_for(API_VERSION)
17
+ File.directory?("#{VERSION_DIR}").should be_true
18
+ File.directory?("#{VERSION_DIR}/test").should be_true
19
+ File.directory?("#{VERSION_DIR}/prod").should be_true
20
+ end
21
+
22
+ it "clears out old wsdls" do
23
+ Yieldmanager::Builder.should_receive(:store_wsdls).exactly(4).times
24
+ ["test","prod"].each do |env|
25
+ dir = "#{WSDL_DIR}/#{API_VERSION}/#{env}"
26
+ bad_wsdl = "#{dir}/bad.wsdl"
27
+ File.makedirs(dir)
28
+ File.open(bad_wsdl, "w") { |file| file.write("bad.wsdl") }
29
+ Yieldmanager::Builder.build_wsdls_for(API_VERSION)
30
+ File.exists?(bad_wsdl).should be_false
31
+ end
32
+ end
33
+
34
+ it "collects available services" do
35
+ TEST = true
36
+ Yieldmanager::Builder.build_wsdls_for(API_VERSION)
37
+ Yieldmanager::Builder.lookup_services(API_VERSION).should include("contact")
38
+ Yieldmanager::Builder.lookup_services(API_VERSION, TEST).should include("contact")
39
+ end
40
+
41
+ it "stores wsdl files" do
42
+ Yieldmanager::Builder.build_wsdls_for(API_VERSION)
43
+ Yieldmanager::Builder.lookup_services(API_VERSION).each do |s|
44
+ unless s == "xsd_gen"
45
+ File.exists?("#{VERSION_DIR}/prod/#{s}.wsdl").should be_true
46
+ end
47
+ end
48
+ Yieldmanager::Builder.lookup_services(API_VERSION, TEST).each do |s|
49
+ unless s == "xsd_gen"
50
+ File.exists?("#{VERSION_DIR}/test/#{s}.wsdl").should be_true
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ describe "A delete run" do
57
+ it "removes directory structure" do
58
+ contact_wsdl = "#{VERSION_DIR}/prod/contact.wsdl"
59
+ contact_wsdl_test = "#{VERSION_DIR}/test/contact.wsdl"
60
+ need_rebuild = File.exists?(VERSION_DIR)
61
+ begin
62
+ Yieldmanager::Builder.build_wsdls_for(API_VERSION)
63
+ File.exists?(contact_wsdl).should be_true
64
+ File.exists?(contact_wsdl_test).should be_true
65
+ Yieldmanager::Builder.delete_wsdls_for(API_VERSION)
66
+ File.exists?(contact_wsdl).should be_false
67
+ File.exists?(contact_wsdl_test).should be_false
68
+ ensure
69
+ if need_rebuild
70
+ Yieldmanager::Builder.build_wsdls_for(API_VERSION)
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,87 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ NEED_ENV_ARGS_MSG = <<EOM
4
+ Please set these environment variables to match your Yieldmanager account:
5
+ * YIELDMANAGER_USER
6
+ * YIELDMANAGER_PASS
7
+ * YIELDMANAGER_API_VERSION
8
+ EOM
9
+
10
+ describe "A new Yieldmanager client" do
11
+ before(:each) do
12
+ @ym = Yieldmanager::Client.new(login_args)
13
+ end
14
+
15
+ it "requires :user, :pass and :api_version as args" do
16
+ @ym.user.should equal(login_args[:user])
17
+ @ym.pass.should equal(login_args[:pass])
18
+ @ym.api_version.should equal(login_args[:api_version])
19
+ lambda { Yieldmanager::Client.new() }.should raise_error(ArgumentError)
20
+ lambda { Yieldmanager::Client.new({}) }.should raise_error(ArgumentError)
21
+ end
22
+
23
+ it "defaults to prod, accepts override to test" do
24
+ @ym.env.should == "prod"
25
+ ym_test = Yieldmanager::Client.new(login_args.merge(:env => "test"))
26
+ ym_test.env.should == "test"
27
+ end
28
+
29
+ it "displays available services" do
30
+ @ym.available_services.should include("contact")
31
+ ym_test = Yieldmanager::Client.new(login_args.merge(:env => "test"))
32
+ ym_test.available_services.should include("contact")
33
+ end
34
+
35
+ it "exposes helper methods for available services" do
36
+ @ym.contact.should be_instance_of(SOAP::RPC::Driver)
37
+ end
38
+
39
+ it "generates contact service supporting login/logout of session" do
40
+ token = @ym.contact.login(@login_args[:user],@login_args[:pass],{'errors_level' => 'throw_errors','multiple_sessions' => '1'})
41
+ begin
42
+ token.should_not be_nil
43
+ ensure
44
+ @ym.contact.logout(token)
45
+ end
46
+ end
47
+
48
+ it "exposes start/end session" do
49
+ token = @ym.start_session
50
+ currencies = @ym.dictionary.getCurrencies(token)
51
+ @ym.end_session token
52
+ lambda { @ym.dictionary.getCurrencies(token) }.should raise_error(SOAP::FaultError)
53
+ end
54
+
55
+ it "exposes session block" do
56
+ my_token = nil
57
+ @ym.session do |token|
58
+ my_token = token
59
+ currencies = @ym.dictionary.getCurrencies(token)
60
+ end
61
+ lambda { @ym.dictionary.getCurrencies(my_token) }.should raise_error(SOAP::FaultError)
62
+ end
63
+
64
+ it "closes a session even after an exception" do
65
+ my_token = nil
66
+ lambda do
67
+ @ym.session do |token|
68
+ my_token = token
69
+ raise Exception, "Ouch!"
70
+ end
71
+ end.should raise_error(Exception)
72
+ lambda { @ym.dictionary.getCurrencies(my_token) }.should raise_error(SOAP::FaultError)
73
+ end
74
+
75
+ def login_args
76
+ unless ENV["YIELDMANAGER_USER"] &&
77
+ ENV["YIELDMANAGER_PASS"] &&
78
+ ENV["YIELDMANAGER_API_VERSION"]
79
+ raise(ArgumentError, NEED_ENV_ARGS_MSG)
80
+ end
81
+ @login_args ||= {
82
+ :user => ENV["YIELDMANAGER_USER"],
83
+ :pass => ENV["YIELDMANAGER_PASS"],
84
+ :api_version => ENV["YIELDMANAGER_API_VERSION"]
85
+ }
86
+ end
87
+ end
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0"?>
2
+ <wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:api="http://api.yieldmanager.com/AdjustmentService" xmlns:types="http://api.yieldmanager.com/types" targetNamespace="http://api.yieldmanager.com/AdjustmentService"><wsdl:import namespace="http://api.yieldmanager.com/types" location="xsd_gen.php"/><wsdl:message name="getInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="adjustment_id" type="xsd:long"/></wsdl:message><wsdl:message name="getAllInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="period_start" type="xsd:date"/><wsdl:part name="period_end" type="xsd:date"/><wsdl:part name="type" type="types:enum_adjustments_type"/><wsdl:part name="entries_on_page" type="xsd:long"/><wsdl:part name="page_num" type="xsd:long"/></wsdl:message><wsdl:message name="getAllByLineItemInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="period_start" type="xsd:date"/><wsdl:part name="period_end" type="xsd:date"/><wsdl:part name="type" type="types:enum_adjustments_type"/></wsdl:message><wsdl:message name="getByBuyerInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="buyer_entity_id" type="xsd:long"/><wsdl:part name="start_date" type="xsd:date"/><wsdl:part name="end_date" type="xsd:date"/><wsdl:part name="type" type="types:enum_adjustments_type"/></wsdl:message><wsdl:message name="setInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="line_item_adjustments" type="types:array_of_line_item_adjustment"/></wsdl:message><wsdl:message name="resetInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="range_start" type="xsd:date"/><wsdl:part name="range_end" type="xsd:date"/></wsdl:message><wsdl:message name="finalizeMonthsInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="period_start" type="xsd:date"/><wsdl:part name="period_end" type="xsd:date"/></wsdl:message><wsdl:message name="isMonthFinalizedInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="date" type="xsd:date"/></wsdl:message><wsdl:message name="submitCreditInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="month" type="xsd:date"/><wsdl:part name="final_revenue" type="xsd:float"/><wsdl:part name="comment" type="xsd:string"/><wsdl:part name="auto_approve" type="xsd:boolean"/></wsdl:message><wsdl:message name="getImpsByDatesInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="range_start" type="xsd:date"/><wsdl:part name="range_end" type="xsd:date"/></wsdl:message><wsdl:message name="setDiscretionaryEcpmInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="line_item_id" type="xsd:long"/><wsdl:part name="calculation_method" type="types:enum_calculation_method"/></wsdl:message><wsdl:message name="getCreatedByDatesInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="start_date" type="xsd:date"/><wsdl:part name="end_date" type="xsd:date"/><wsdl:part name="type" type="types:enum_adjustments_type"/><wsdl:part name="entries_on_page" type="xsd:long"/><wsdl:part name="page_num" type="xsd:long"/></wsdl:message><wsdl:message name="getOutput"><wsdl:part name="adjustment" type="types:line_item_adjustment"/></wsdl:message><wsdl:message name="getAllOutput"><wsdl:part name="line_item_adjustments" type="types:array_of_line_item_adjustment"/><wsdl:part name="total_count" type="xsd:long"/></wsdl:message><wsdl:message name="getAllByLineItemOutput"><wsdl:part name="line_item_adjustments" type="types:array_of_line_item_adjustment"/></wsdl:message><wsdl:message name="getByBuyerOutput"><wsdl:part name="line_item_adjustments" type="types:array_of_line_item_adjustment"/></wsdl:message><wsdl:message name="setOutput"><wsdl:part name="adjustment_ids" type="types:array_of_int"/></wsdl:message><wsdl:message name="resetOutput"/><wsdl:message name="finalizeMonthsOutput"/><wsdl:message name="isMonthFinalizedOutput"><wsdl:part name="is_finalized" type="xsd:boolean"/></wsdl:message><wsdl:message name="submitCreditOutput"><wsdl:part name="credit_request_id" type="xsd:long"/></wsdl:message><wsdl:message name="getImpsByDatesOutput"><wsdl:part name="date_imps" type="types:array_of_date_imps"/></wsdl:message><wsdl:message name="setDiscretionaryEcpmOutput"/><wsdl:message name="getCreatedByDatesOutput"><wsdl:part name="line_item_adjustments" type="types:array_of_line_item_adjustment"/><wsdl:part name="total_count" type="xsd:long"/></wsdl:message><wsdl:message name="getFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getAllFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getAllByLineItemFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getByBuyerFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="setFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="resetFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="finalizeMonthsFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="isMonthFinalizedFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="submitCreditFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getImpsByDatesFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="setDiscretionaryEcpmFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getCreatedByDatesFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:portType name="AdjustmentServicePortType"><wsdl:operation name="get"><wsdl:input name="getInput" message="api:getInput"/><wsdl:output name="getOutput" message="api:getOutput"/><wsdl:fault name="getFault" message="api:getFault"/></wsdl:operation><wsdl:operation name="getAll"><wsdl:input name="getAllInput" message="api:getAllInput"/><wsdl:output name="getAllOutput" message="api:getAllOutput"/><wsdl:fault name="getAllFault" message="api:getAllFault"/></wsdl:operation><wsdl:operation name="getAllByLineItem"><wsdl:input name="getAllByLineItemInput" message="api:getAllByLineItemInput"/><wsdl:output name="getAllByLineItemOutput" message="api:getAllByLineItemOutput"/><wsdl:fault name="getAllByLineItemFault" message="api:getAllByLineItemFault"/></wsdl:operation><wsdl:operation name="getByBuyer"><wsdl:input name="getByBuyerInput" message="api:getByBuyerInput"/><wsdl:output name="getByBuyerOutput" message="api:getByBuyerOutput"/><wsdl:fault name="getByBuyerFault" message="api:getByBuyerFault"/></wsdl:operation><wsdl:operation name="set"><wsdl:input name="setInput" message="api:setInput"/><wsdl:output name="setOutput" message="api:setOutput"/><wsdl:fault name="setFault" message="api:setFault"/></wsdl:operation><wsdl:operation name="reset"><wsdl:input name="resetInput" message="api:resetInput"/><wsdl:output name="resetOutput" message="api:resetOutput"/><wsdl:fault name="resetFault" message="api:resetFault"/></wsdl:operation><wsdl:operation name="finalizeMonths"><wsdl:input name="finalizeMonthsInput" message="api:finalizeMonthsInput"/><wsdl:output name="finalizeMonthsOutput" message="api:finalizeMonthsOutput"/><wsdl:fault name="finalizeMonthsFault" message="api:finalizeMonthsFault"/></wsdl:operation><wsdl:operation name="isMonthFinalized"><wsdl:input name="isMonthFinalizedInput" message="api:isMonthFinalizedInput"/><wsdl:output name="isMonthFinalizedOutput" message="api:isMonthFinalizedOutput"/><wsdl:fault name="isMonthFinalizedFault" message="api:isMonthFinalizedFault"/></wsdl:operation><wsdl:operation name="submitCredit"><wsdl:input name="submitCreditInput" message="api:submitCreditInput"/><wsdl:output name="submitCreditOutput" message="api:submitCreditOutput"/><wsdl:fault name="submitCreditFault" message="api:submitCreditFault"/></wsdl:operation><wsdl:operation name="getImpsByDates"><wsdl:input name="getImpsByDatesInput" message="api:getImpsByDatesInput"/><wsdl:output name="getImpsByDatesOutput" message="api:getImpsByDatesOutput"/><wsdl:fault name="getImpsByDatesFault" message="api:getImpsByDatesFault"/></wsdl:operation><wsdl:operation name="setDiscretionaryEcpm"><wsdl:input name="setDiscretionaryEcpmInput" message="api:setDiscretionaryEcpmInput"/><wsdl:output name="setDiscretionaryEcpmOutput" message="api:setDiscretionaryEcpmOutput"/><wsdl:fault name="setDiscretionaryEcpmFault" message="api:setDiscretionaryEcpmFault"/></wsdl:operation><wsdl:operation name="getCreatedByDates"><wsdl:input name="getCreatedByDatesInput" message="api:getCreatedByDatesInput"/><wsdl:output name="getCreatedByDatesOutput" message="api:getCreatedByDatesOutput"/><wsdl:fault name="getCreatedByDatesFault" message="api:getCreatedByDatesFault"/></wsdl:operation></wsdl:portType><wsdl:binding name="AdjustmentServiceBinding" type="api:AdjustmentServicePortType"><soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="get"><soap:operation soapAction="urn:AdjustmentService#get" style="rpc"/><wsdl:input name="getInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getAll"><soap:operation soapAction="urn:AdjustmentService#getAll" style="rpc"/><wsdl:input name="getAllInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getAllOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getAllFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getAllFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getAllByLineItem"><soap:operation soapAction="urn:AdjustmentService#getAllByLineItem" style="rpc"/><wsdl:input name="getAllByLineItemInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getAllByLineItemOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getAllByLineItemFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getAllByLineItemFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getByBuyer"><soap:operation soapAction="urn:AdjustmentService#getByBuyer" style="rpc"/><wsdl:input name="getByBuyerInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getByBuyerOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getByBuyerFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getByBuyerFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="set"><soap:operation soapAction="urn:AdjustmentService#set" style="rpc"/><wsdl:input name="setInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="setOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="setFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="setFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="reset"><soap:operation soapAction="urn:AdjustmentService#reset" style="rpc"/><wsdl:input name="resetInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="resetOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="resetFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="resetFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="finalizeMonths"><soap:operation soapAction="urn:AdjustmentService#finalizeMonths" style="rpc"/><wsdl:input name="finalizeMonthsInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="finalizeMonthsOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="finalizeMonthsFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="finalizeMonthsFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="isMonthFinalized"><soap:operation soapAction="urn:AdjustmentService#isMonthFinalized" style="rpc"/><wsdl:input name="isMonthFinalizedInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="isMonthFinalizedOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="isMonthFinalizedFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="isMonthFinalizedFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="submitCredit"><soap:operation soapAction="urn:AdjustmentService#submitCredit" style="rpc"/><wsdl:input name="submitCreditInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="submitCreditOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="submitCreditFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="submitCreditFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getImpsByDates"><soap:operation soapAction="urn:AdjustmentService#getImpsByDates" style="rpc"/><wsdl:input name="getImpsByDatesInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getImpsByDatesOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getImpsByDatesFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getImpsByDatesFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="setDiscretionaryEcpm"><soap:operation soapAction="urn:AdjustmentService#setDiscretionaryEcpm" style="rpc"/><wsdl:input name="setDiscretionaryEcpmInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="setDiscretionaryEcpmOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="setDiscretionaryEcpmFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="setDiscretionaryEcpmFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getCreatedByDates"><soap:operation soapAction="urn:AdjustmentService#getCreatedByDates" style="rpc"/><wsdl:input name="getCreatedByDatesInput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getCreatedByDatesOutput"><soap:body use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getCreatedByDatesFault"><soap:fault use="encoded" namespace="urn:AdjustmentService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getCreatedByDatesFault"/></wsdl:fault></wsdl:operation></wsdl:binding><wsdl:service name="AdjustmentService"><wsdl:port name="AdjustmentServicePort" binding="api:AdjustmentServiceBinding"><soap:address location="https://api.yieldmanager.com/api-1.30/adjustment.php"/></wsdl:port></wsdl:service></wsdl:definitions>
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0"?>
2
+ <wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:api="http://api.yieldmanager.com/AdvertiserService" xmlns:types="http://api.yieldmanager.com/types" targetNamespace="http://api.yieldmanager.com/AdvertiserService"><wsdl:import namespace="http://api.yieldmanager.com/types" location="xsd_gen.php"/><wsdl:message name="listAllInput"><wsdl:part name="token" type="xsd:string"/></wsdl:message><wsdl:message name="getAllInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="entries_on_page" type="xsd:long"/><wsdl:part name="page_num" type="xsd:long"/></wsdl:message><wsdl:message name="addInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser" type="types:advertiser"/><wsdl:part name="contact" type="types:contact"/></wsdl:message><wsdl:message name="updateInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser" type="types:advertiser"/></wsdl:message><wsdl:message name="getInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="id" type="xsd:long"/></wsdl:message><wsdl:message name="setIntegrationCodeInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser_id" type="xsd:long"/><wsdl:part name="code" type="xsd:string"/></wsdl:message><wsdl:message name="lookupInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser_codes" type="types:array_of_string"/></wsdl:message><wsdl:message name="addTargetProfileInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser_id" type="xsd:long"/></wsdl:message><wsdl:message name="delTargetProfileInput"><wsdl:part name="token" type="xsd:string"/><wsdl:part name="advertiser_id" type="xsd:long"/></wsdl:message><wsdl:message name="listAllOutput"><wsdl:part name="advertiser_ids" type="types:array_of_int"/></wsdl:message><wsdl:message name="getAllOutput"><wsdl:part name="advertisers" type="types:array_of_advertiser"/><wsdl:part name="total_count" type="xsd:long"/></wsdl:message><wsdl:message name="addOutput"><wsdl:part name="advertiser_id" type="xsd:long"/></wsdl:message><wsdl:message name="updateOutput"/><wsdl:message name="getOutput"><wsdl:part name="advertiser" type="types:advertiser"/></wsdl:message><wsdl:message name="setIntegrationCodeOutput"/><wsdl:message name="lookupOutput"><wsdl:part name="advertisers" type="types:array_of_array_of_int"/></wsdl:message><wsdl:message name="addTargetProfileOutput"><wsdl:part name="target_profile_id" type="xsd:long"/></wsdl:message><wsdl:message name="delTargetProfileOutput"/><wsdl:message name="listAllFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getAllFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="addFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="updateFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="getFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="setIntegrationCodeFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="lookupFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="addTargetProfileFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:message name="delTargetProfileFault"><wsdl:part name="detail" type="types:exception_detail"/></wsdl:message><wsdl:portType name="AdvertiserServicePortType"><wsdl:operation name="listAll"><wsdl:input name="listAllInput" message="api:listAllInput"/><wsdl:output name="listAllOutput" message="api:listAllOutput"/><wsdl:fault name="listAllFault" message="api:listAllFault"/></wsdl:operation><wsdl:operation name="getAll"><wsdl:input name="getAllInput" message="api:getAllInput"/><wsdl:output name="getAllOutput" message="api:getAllOutput"/><wsdl:fault name="getAllFault" message="api:getAllFault"/></wsdl:operation><wsdl:operation name="add"><wsdl:input name="addInput" message="api:addInput"/><wsdl:output name="addOutput" message="api:addOutput"/><wsdl:fault name="addFault" message="api:addFault"/></wsdl:operation><wsdl:operation name="update"><wsdl:input name="updateInput" message="api:updateInput"/><wsdl:output name="updateOutput" message="api:updateOutput"/><wsdl:fault name="updateFault" message="api:updateFault"/></wsdl:operation><wsdl:operation name="get"><wsdl:input name="getInput" message="api:getInput"/><wsdl:output name="getOutput" message="api:getOutput"/><wsdl:fault name="getFault" message="api:getFault"/></wsdl:operation><wsdl:operation name="setIntegrationCode"><wsdl:input name="setIntegrationCodeInput" message="api:setIntegrationCodeInput"/><wsdl:output name="setIntegrationCodeOutput" message="api:setIntegrationCodeOutput"/><wsdl:fault name="setIntegrationCodeFault" message="api:setIntegrationCodeFault"/></wsdl:operation><wsdl:operation name="lookup"><wsdl:input name="lookupInput" message="api:lookupInput"/><wsdl:output name="lookupOutput" message="api:lookupOutput"/><wsdl:fault name="lookupFault" message="api:lookupFault"/></wsdl:operation><wsdl:operation name="addTargetProfile"><wsdl:input name="addTargetProfileInput" message="api:addTargetProfileInput"/><wsdl:output name="addTargetProfileOutput" message="api:addTargetProfileOutput"/><wsdl:fault name="addTargetProfileFault" message="api:addTargetProfileFault"/></wsdl:operation><wsdl:operation name="delTargetProfile"><wsdl:input name="delTargetProfileInput" message="api:delTargetProfileInput"/><wsdl:output name="delTargetProfileOutput" message="api:delTargetProfileOutput"/><wsdl:fault name="delTargetProfileFault" message="api:delTargetProfileFault"/></wsdl:operation></wsdl:portType><wsdl:binding name="AdvertiserServiceBinding" type="api:AdvertiserServicePortType"><soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="listAll"><soap:operation soapAction="urn:AdvertiserService#listAll" style="rpc"/><wsdl:input name="listAllInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="listAllOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="listAllFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="listAllFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="getAll"><soap:operation soapAction="urn:AdvertiserService#getAll" style="rpc"/><wsdl:input name="getAllInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getAllOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getAllFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getAllFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="add"><soap:operation soapAction="urn:AdvertiserService#add" style="rpc"/><wsdl:input name="addInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="addOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="addFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="addFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="update"><soap:operation soapAction="urn:AdvertiserService#update" style="rpc"/><wsdl:input name="updateInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="updateOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="updateFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="updateFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="get"><soap:operation soapAction="urn:AdvertiserService#get" style="rpc"/><wsdl:input name="getInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="getOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="getFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="getFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="setIntegrationCode"><soap:operation soapAction="urn:AdvertiserService#setIntegrationCode" style="rpc"/><wsdl:input name="setIntegrationCodeInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="setIntegrationCodeOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="setIntegrationCodeFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="setIntegrationCodeFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="lookup"><soap:operation soapAction="urn:AdvertiserService#lookup" style="rpc"/><wsdl:input name="lookupInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="lookupOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="lookupFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="lookupFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="addTargetProfile"><soap:operation soapAction="urn:AdvertiserService#addTargetProfile" style="rpc"/><wsdl:input name="addTargetProfileInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="addTargetProfileOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="addTargetProfileFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="addTargetProfileFault"/></wsdl:fault></wsdl:operation><wsdl:operation name="delTargetProfile"><soap:operation soapAction="urn:AdvertiserService#delTargetProfile" style="rpc"/><wsdl:input name="delTargetProfileInput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:input><wsdl:output name="delTargetProfileOutput"><soap:body use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/></wsdl:output><wsdl:fault name="delTargetProfileFault"><soap:fault use="encoded" namespace="urn:AdvertiserService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" name="delTargetProfileFault"/></wsdl:fault></wsdl:operation></wsdl:binding><wsdl:service name="AdvertiserService"><wsdl:port name="AdvertiserServicePort" binding="api:AdvertiserServiceBinding"><soap:address location="https://api.yieldmanager.com/api-1.30/advertiser.php"/></wsdl:port></wsdl:service></wsdl:definitions>