yieldmanager 0.0.2 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>