adwords4r 0.4 → 0.5
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.
- data/ChangeLog.txt +1 -0
- data/Rakefile +9 -2
- data/Readme.txt +16 -2
- data/Todo.txt +5 -1
- data/adwords.properties +5 -0
- data/examples/get_free_usage_this_month.rb +16 -0
- data/examples/report_demo.rb +42 -0
- data/examples/traffic_estimator.rb +31 -0
- data/lib/adwords4r/credentials.rb +7 -3
- data/lib/adwords4r/services.rb +4 -8
- data/lib/adwords4r/v4/AccountService.rb +709 -0
- data/lib/adwords4r/v4/AccountServiceDriver.rb +174 -0
- data/lib/adwords4r/v4/AdGroupService.rb +316 -0
- data/lib/adwords4r/v4/AdGroupServiceDriver.rb +97 -0
- data/lib/adwords4r/v4/CampaignService.rb +527 -0
- data/lib/adwords4r/v4/CampaignServiceDriver.rb +111 -0
- data/lib/adwords4r/v4/CreativeService.rb +401 -0
- data/lib/adwords4r/v4/CreativeServiceDriver.rb +104 -0
- data/lib/adwords4r/v4/CriterionService.rb +411 -0
- data/lib/adwords4r/v4/CriterionServiceDriver.rb +97 -0
- data/lib/adwords4r/v4/InfoService.rb +260 -0
- data/lib/adwords4r/v4/InfoServiceDriver.rb +90 -0
- data/lib/adwords4r/v4/KeywordService.rb +543 -0
- data/lib/adwords4r/v4/KeywordServiceDriver.rb +125 -0
- data/lib/adwords4r/v4/KeywordToolService.rb +227 -0
- data/lib/adwords4r/v4/KeywordToolServiceDriver.rb +55 -0
- data/lib/adwords4r/v4/ReportService.rb +575 -0
- data/lib/adwords4r/v4/ReportServiceDriver.rb +83 -0
- data/lib/adwords4r/v4/TrafficEstimatorService.rb +274 -0
- data/lib/adwords4r/v4/TrafficEstimatorServiceDriver.rb +62 -0
- metadata +27 -2
data/ChangeLog.txt
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
0.5 Now supports AdWords API v4. Got rid of yaml dependency. Changed properties file name for default credentials to adwords.properties. Enhanced the readme.txt a bit. Added a few samples.
|
1
2
|
0.4 Now all generated classes are within the Adwords module. Will make it easier to use that in Rails. Support for gen classes in a module is not implemented in soap4r for doc/literal style (it works for rpc/encoded). I logged a bug for soap4r. In the meantime I had to fix adwords4r from my module using module_eval to patch the Mapping class.
|
2
3
|
0.3 fixed the bug in InfoService and many others. I fix the wsdl before generation.
|
3
4
|
0.2 added packaging, made it a gem, and added a setup program, for easy installation in all configurations (gem and non gem).
|
data/Rakefile
CHANGED
@@ -20,7 +20,7 @@ end
|
|
20
20
|
|
21
21
|
CLOBBER.include('pkg')
|
22
22
|
|
23
|
-
CURRENT_VERSION = '0.
|
23
|
+
CURRENT_VERSION = '0.5'
|
24
24
|
PKG_VERSION = ENV['REL'] ? ENV['REL'] : CURRENT_VERSION
|
25
25
|
|
26
26
|
SRC_RB = FileList['lib/**/*.rb']
|
@@ -32,9 +32,15 @@ SRC_RB = FileList['lib/**/*.rb']
|
|
32
32
|
|
33
33
|
WSDLDIR = 'wsdl'
|
34
34
|
LIBDIR = 'lib'
|
35
|
+
GENDIR = LIBDIR + '/adwords4r'
|
36
|
+
|
35
37
|
logger = Logger.new(STDERR)
|
36
38
|
|
37
|
-
|
39
|
+
CLEAN.include(WSDLDIR)
|
40
|
+
AdWords::Service.getVersions.each do |v|
|
41
|
+
vname = "v#{v}"
|
42
|
+
CLEAN.include(File.join(GENDIR, vname))
|
43
|
+
end
|
38
44
|
|
39
45
|
desc "gets the wsdl and generates the classes"
|
40
46
|
task :default => [:getwsdl, :generate]
|
@@ -189,6 +195,7 @@ Currently the following AdWords API versions are supported:
|
|
189
195
|
s.email = "patrick@chanezon.com"
|
190
196
|
s.homepage = "http://rubyforge.org/projects/adwords4r/"
|
191
197
|
s.requirements << 'soap4r v 1.5.4 or greater'
|
198
|
+
s.requirements << 'http-access2 v 2.0.5 or greater'
|
192
199
|
s.rubyforge_project = 'adwords4r'
|
193
200
|
end
|
194
201
|
|
data/Readme.txt
CHANGED
@@ -25,8 +25,17 @@ Then
|
|
25
25
|
require 'adwords4r'
|
26
26
|
|
27
27
|
adwords = AdWords::API.new
|
28
|
-
creates a driver for the latest version of AdWords API using credentials provided in
|
29
|
-
|
28
|
+
creates a driver for the latest version of AdWords API using credentials provided in ~/adwords.properties
|
29
|
+
There is an example in the root adwords4r directory.
|
30
|
+
You can also pass API a manually constructed AdWordsCredentials object like:
|
31
|
+
adwords = AdWords::API.new(AdWords::AdWordsCredentials.new(
|
32
|
+
{ 'token' => 'mytoken',
|
33
|
+
'useragent' => 'P@ playing with the API from ruby',
|
34
|
+
'password' => 'mypasswd',
|
35
|
+
'email' => 'em...@example.com'}
|
36
|
+
))
|
37
|
+
|
38
|
+
If you want something more specific, use the optional parameters of the constructor
|
30
39
|
adwords = AdWords::API.new(credentials, version)
|
31
40
|
|
32
41
|
Then just use methods of the API against your driver.
|
@@ -34,6 +43,11 @@ adwords.getAllAdWordsCampaigns(123).each {|c| puts c.name}
|
|
34
43
|
|
35
44
|
See sample code in examples.
|
36
45
|
|
46
|
+
The client code will generate warnings in the console:
|
47
|
+
Many: warning: already initialized constant XXX
|
48
|
+
A few: at depth 0 - 20: unable to get local issuer certificate
|
49
|
+
These are not serious: I need to make them go but they do not affect the correctness of the program.
|
50
|
+
|
37
51
|
docs for developers
|
38
52
|
-------------------
|
39
53
|
rake getwsdl
|
data/Todo.txt
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
adwords4r todo list
|
2
2
|
---
|
3
3
|
- use XSD::CodeGen::GenSupport.capitalize and unCapitalize instead of my own methods
|
4
|
+
- fix the bug in reports
|
4
5
|
- handling quota management in the driver
|
5
6
|
- pass in a hash for complex objects
|
6
7
|
- comments everywhere, rdoc
|
7
8
|
- documentation
|
8
|
-
- more samples
|
9
|
+
- more samples: traffic_estimator, report,
|
9
10
|
|
11
|
+
OK- generate v4
|
12
|
+
OK- get rid of yaml dependency
|
13
|
+
OK- change the property file name to adwords.properties
|
10
14
|
OK- make it work with all generated classes in their own module
|
11
15
|
OK- fix bug in InfoService
|
12
16
|
OK- gem file
|
data/adwords.properties
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'adwords4r'
|
4
|
+
require 'pp'
|
5
|
+
|
6
|
+
begin
|
7
|
+
adwords = AdWords::API.new
|
8
|
+
puts "result = #{adwords.getFreeUsageQuotaThisMonth().getFreeUsageQuotaThisMonthReturn}"
|
9
|
+
|
10
|
+
rescue AdWords::Error::UnknownAPICall => e
|
11
|
+
puts e
|
12
|
+
rescue AdWords::Error::ApiError => e
|
13
|
+
puts e.code
|
14
|
+
puts e.message
|
15
|
+
end
|
16
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'adwords4r'
|
4
|
+
require 'open-uri'
|
5
|
+
|
6
|
+
service = AdWords::API.new
|
7
|
+
|
8
|
+
job = AdWords::KeywordReportJob.new
|
9
|
+
job.aggregationType = AdWords::AggregationType::Summary
|
10
|
+
job.startDay = Date.new(2006,1,1)
|
11
|
+
job.endDay = Date.today
|
12
|
+
job.name = "Report1"
|
13
|
+
|
14
|
+
begin
|
15
|
+
myJobId = service.scheduleReportJob(job)
|
16
|
+
|
17
|
+
status = service.getReportJobStatus(myJobId);
|
18
|
+
|
19
|
+
while (status != "Completed" && status != "Failed")
|
20
|
+
sleep 15
|
21
|
+
status = service.getReportJobStatus(myJobId)
|
22
|
+
puts "Report job status is " + status
|
23
|
+
end
|
24
|
+
|
25
|
+
if(status == "Failed")
|
26
|
+
puts("Job failed!")
|
27
|
+
else
|
28
|
+
# report is ready; download it
|
29
|
+
puts "The report is ready!"
|
30
|
+
url = service.getReportDownloadUrl(myJobId)
|
31
|
+
puts "Report Url: " + url
|
32
|
+
for line in open(url)
|
33
|
+
puts line
|
34
|
+
end
|
35
|
+
end
|
36
|
+
rescue AdWords::Error::UnknownAPICall => e
|
37
|
+
puts e
|
38
|
+
rescue AdWords::Error::ApiError => e
|
39
|
+
puts e.code
|
40
|
+
puts e.message
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'adwords4r'
|
4
|
+
require 'pp'
|
5
|
+
|
6
|
+
SEP = "---"
|
7
|
+
|
8
|
+
def dumpObj(o)
|
9
|
+
str = ""
|
10
|
+
o.instance_variables.each { |v| str << dumpAttr(o, v)}
|
11
|
+
return str << SEP
|
12
|
+
end
|
13
|
+
|
14
|
+
def dumpAttr(o, v)
|
15
|
+
name = v.sub(/@/,'')
|
16
|
+
value = eval("o.#{name}.to_s")
|
17
|
+
return "#{name}: #{value}\n"
|
18
|
+
end
|
19
|
+
|
20
|
+
begin
|
21
|
+
adwords = AdWords::API.new
|
22
|
+
|
23
|
+
res = adwords.estimateKeywordList([AdWords::KeywordRequest.new(nil, 50000, false, 'flowers', 'Broad')])
|
24
|
+
res.each {|c| puts dumpObj(c)}
|
25
|
+
|
26
|
+
rescue AdWords::Error::UnknownAPICall => e
|
27
|
+
puts e
|
28
|
+
rescue AdWords::Error::ApiError => e
|
29
|
+
puts e.code
|
30
|
+
puts e.message
|
31
|
+
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'yaml'
|
2
1
|
require 'soap/header/simplehandler'
|
3
2
|
|
4
3
|
module AdWords
|
@@ -20,8 +19,13 @@ module AdWords
|
|
20
19
|
attr_reader :handlers
|
21
20
|
|
22
21
|
def getDefaults()
|
23
|
-
|
24
|
-
|
22
|
+
cred = Hash.new
|
23
|
+
IO.foreach("#{ENV['HOME']}/adwords.properties") {|line| addCredential(cred, line.split('=')) if !(line =~ /^#/)}
|
24
|
+
return cred
|
25
|
+
end
|
26
|
+
|
27
|
+
def addCredential(cred, arr)
|
28
|
+
cred[arr[0]] = arr[1]
|
25
29
|
end
|
26
30
|
|
27
31
|
def initialize(*parm)
|
data/lib/adwords4r/services.rb
CHANGED
@@ -1,15 +1,11 @@
|
|
1
|
-
require 'yaml'
|
2
|
-
|
3
1
|
module AdWords
|
4
2
|
|
5
3
|
class Service
|
6
|
-
|
7
|
-
SERVICE_YAML = <<PAT
|
8
|
-
2: [Creative, Keyword, Criterion, AdGroup, Campaign, TrafficEstimator, Report, Info, Account]
|
9
|
-
3: [Creative, Keyword, Criterion, AdGroup, Campaign, TrafficEstimator, Report, Info, Account, KeywordTool]
|
10
|
-
PAT
|
11
4
|
|
12
|
-
@@services =
|
5
|
+
@@services = {
|
6
|
+
3 => ['Creative', 'Keyword', 'Criterion', 'AdGroup', 'Campaign', 'TrafficEstimator', 'Report', 'Info', 'Account', 'KeywordTool'],
|
7
|
+
4 => ['Creative', 'Keyword', 'Criterion', 'AdGroup', 'Campaign', 'TrafficEstimator', 'Report', 'Info', 'Account', 'KeywordTool']
|
8
|
+
}
|
13
9
|
|
14
10
|
def Service.getVersions
|
15
11
|
@@services.keys
|
@@ -0,0 +1,709 @@
|
|
1
|
+
module AdWords
|
2
|
+
require 'xsd/qname'
|
3
|
+
|
4
|
+
# {https://adwords.google.com/api/adwords/v4}createAdWordsAccount
|
5
|
+
class CreateAdWordsAccount
|
6
|
+
@@schema_type = "createAdWordsAccount"
|
7
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
8
|
+
@@schema_qualified = "true"
|
9
|
+
@@schema_element = [
|
10
|
+
["loginEmail", "SOAP::SOAPString"],
|
11
|
+
["password", "SOAP::SOAPString"],
|
12
|
+
["languagePreference", "SOAP::SOAPString"],
|
13
|
+
["emailPrefs", "EmailPromotionsPreferences"],
|
14
|
+
["currencyCode", "SOAP::SOAPString"],
|
15
|
+
["cardInfo", "CreditCard"],
|
16
|
+
["contactInfo", "Address"],
|
17
|
+
["defaultAdsCoverage", "CoverageType"]
|
18
|
+
]
|
19
|
+
|
20
|
+
attr_accessor :loginEmail
|
21
|
+
attr_accessor :password
|
22
|
+
attr_accessor :languagePreference
|
23
|
+
attr_accessor :emailPrefs
|
24
|
+
attr_accessor :currencyCode
|
25
|
+
attr_accessor :cardInfo
|
26
|
+
attr_accessor :contactInfo
|
27
|
+
attr_accessor :defaultAdsCoverage
|
28
|
+
|
29
|
+
def initialize(loginEmail = nil, password = nil, languagePreference = nil, emailPrefs = nil, currencyCode = nil, cardInfo = nil, contactInfo = nil, defaultAdsCoverage = nil)
|
30
|
+
@loginEmail = loginEmail
|
31
|
+
@password = password
|
32
|
+
@languagePreference = languagePreference
|
33
|
+
@emailPrefs = emailPrefs
|
34
|
+
@currencyCode = currencyCode
|
35
|
+
@cardInfo = cardInfo
|
36
|
+
@contactInfo = contactInfo
|
37
|
+
@defaultAdsCoverage = defaultAdsCoverage
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# {https://adwords.google.com/api/adwords/v4}createAdWordsAccountResponse
|
42
|
+
class CreateAdWordsAccountResponse
|
43
|
+
@@schema_type = "createAdWordsAccountResponse"
|
44
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
45
|
+
@@schema_qualified = "true"
|
46
|
+
@@schema_element = []
|
47
|
+
|
48
|
+
def initialize
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
# {https://adwords.google.com/api/adwords/v4}setLoginInfo
|
53
|
+
class SetLoginInfo
|
54
|
+
@@schema_type = "setLoginInfo"
|
55
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
56
|
+
@@schema_qualified = "true"
|
57
|
+
@@schema_element = [
|
58
|
+
["login", "SOAP::SOAPString"],
|
59
|
+
["newPassword", "SOAP::SOAPString"]
|
60
|
+
]
|
61
|
+
|
62
|
+
attr_accessor :login
|
63
|
+
attr_accessor :newPassword
|
64
|
+
|
65
|
+
def initialize(login = nil, newPassword = nil)
|
66
|
+
@login = login
|
67
|
+
@newPassword = newPassword
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
# {https://adwords.google.com/api/adwords/v4}setLoginInfoResponse
|
72
|
+
class SetLoginInfoResponse
|
73
|
+
@@schema_type = "setLoginInfoResponse"
|
74
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
75
|
+
@@schema_qualified = "true"
|
76
|
+
@@schema_element = []
|
77
|
+
|
78
|
+
def initialize
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# {https://adwords.google.com/api/adwords/v4}getAccountCurrency
|
83
|
+
class GetAccountCurrency
|
84
|
+
@@schema_type = "getAccountCurrency"
|
85
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
86
|
+
@@schema_qualified = "true"
|
87
|
+
@@schema_element = []
|
88
|
+
|
89
|
+
def initialize
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
# {https://adwords.google.com/api/adwords/v4}getAccountCurrencyResponse
|
94
|
+
class GetAccountCurrencyResponse
|
95
|
+
@@schema_type = "getAccountCurrencyResponse"
|
96
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
97
|
+
@@schema_qualified = "true"
|
98
|
+
@@schema_element = [
|
99
|
+
["getAccountCurrencyReturn", "SOAP::SOAPString"]
|
100
|
+
]
|
101
|
+
|
102
|
+
attr_accessor :getAccountCurrencyReturn
|
103
|
+
|
104
|
+
def initialize(getAccountCurrencyReturn = nil)
|
105
|
+
@getAccountCurrencyReturn = getAccountCurrencyReturn
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
# {https://adwords.google.com/api/adwords/v4}getCreditCard
|
110
|
+
class GetCreditCard
|
111
|
+
@@schema_type = "getCreditCard"
|
112
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
113
|
+
@@schema_qualified = "true"
|
114
|
+
@@schema_element = []
|
115
|
+
|
116
|
+
def initialize
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
# {https://adwords.google.com/api/adwords/v4}getCreditCardResponse
|
121
|
+
class GetCreditCardResponse
|
122
|
+
@@schema_type = "getCreditCardResponse"
|
123
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
124
|
+
@@schema_qualified = "true"
|
125
|
+
@@schema_element = [
|
126
|
+
["getCreditCardReturn", "CreditCard"]
|
127
|
+
]
|
128
|
+
|
129
|
+
attr_accessor :getCreditCardReturn
|
130
|
+
|
131
|
+
def initialize(getCreditCardReturn = nil)
|
132
|
+
@getCreditCardReturn = getCreditCardReturn
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
# {https://adwords.google.com/api/adwords/v4}getBillingAddress
|
137
|
+
class GetBillingAddress
|
138
|
+
@@schema_type = "getBillingAddress"
|
139
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
140
|
+
@@schema_qualified = "true"
|
141
|
+
@@schema_element = []
|
142
|
+
|
143
|
+
def initialize
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
# {https://adwords.google.com/api/adwords/v4}getBillingAddressResponse
|
148
|
+
class GetBillingAddressResponse
|
149
|
+
@@schema_type = "getBillingAddressResponse"
|
150
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
151
|
+
@@schema_qualified = "true"
|
152
|
+
@@schema_element = [
|
153
|
+
["getBillingAddressReturn", "Address"]
|
154
|
+
]
|
155
|
+
|
156
|
+
attr_accessor :getBillingAddressReturn
|
157
|
+
|
158
|
+
def initialize(getBillingAddressReturn = nil)
|
159
|
+
@getBillingAddressReturn = getBillingAddressReturn
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
# {https://adwords.google.com/api/adwords/v4}setCreditCard
|
164
|
+
class SetCreditCard
|
165
|
+
@@schema_type = "setCreditCard"
|
166
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
167
|
+
@@schema_qualified = "true"
|
168
|
+
@@schema_element = [
|
169
|
+
["cardInfo", "CreditCard"],
|
170
|
+
["contactInfo", "Address"]
|
171
|
+
]
|
172
|
+
|
173
|
+
attr_accessor :cardInfo
|
174
|
+
attr_accessor :contactInfo
|
175
|
+
|
176
|
+
def initialize(cardInfo = nil, contactInfo = nil)
|
177
|
+
@cardInfo = cardInfo
|
178
|
+
@contactInfo = contactInfo
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
# {https://adwords.google.com/api/adwords/v4}setCreditCardResponse
|
183
|
+
class SetCreditCardResponse
|
184
|
+
@@schema_type = "setCreditCardResponse"
|
185
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
186
|
+
@@schema_qualified = "true"
|
187
|
+
@@schema_element = []
|
188
|
+
|
189
|
+
def initialize
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
# {https://adwords.google.com/api/adwords/v4}getDefaultAdsCoverage
|
194
|
+
class GetDefaultAdsCoverage
|
195
|
+
@@schema_type = "getDefaultAdsCoverage"
|
196
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
197
|
+
@@schema_qualified = "true"
|
198
|
+
@@schema_element = []
|
199
|
+
|
200
|
+
def initialize
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
# {https://adwords.google.com/api/adwords/v4}getDefaultAdsCoverageResponse
|
205
|
+
class GetDefaultAdsCoverageResponse
|
206
|
+
@@schema_type = "getDefaultAdsCoverageResponse"
|
207
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
208
|
+
@@schema_qualified = "true"
|
209
|
+
@@schema_element = [
|
210
|
+
["getDefaultAdsCoverageReturn", "CoverageType"]
|
211
|
+
]
|
212
|
+
|
213
|
+
attr_accessor :getDefaultAdsCoverageReturn
|
214
|
+
|
215
|
+
def initialize(getDefaultAdsCoverageReturn = nil)
|
216
|
+
@getDefaultAdsCoverageReturn = getDefaultAdsCoverageReturn
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
# {https://adwords.google.com/api/adwords/v4}setDefaultAdsCoverage
|
221
|
+
class SetDefaultAdsCoverage
|
222
|
+
@@schema_type = "setDefaultAdsCoverage"
|
223
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
224
|
+
@@schema_qualified = "true"
|
225
|
+
@@schema_element = [
|
226
|
+
["coverage", "CoverageType"]
|
227
|
+
]
|
228
|
+
|
229
|
+
attr_accessor :coverage
|
230
|
+
|
231
|
+
def initialize(coverage = nil)
|
232
|
+
@coverage = coverage
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
236
|
+
# {https://adwords.google.com/api/adwords/v4}setDefaultAdsCoverageResponse
|
237
|
+
class SetDefaultAdsCoverageResponse
|
238
|
+
@@schema_type = "setDefaultAdsCoverageResponse"
|
239
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
240
|
+
@@schema_qualified = "true"
|
241
|
+
@@schema_element = []
|
242
|
+
|
243
|
+
def initialize
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
# {https://adwords.google.com/api/adwords/v4}getLanguagePreference
|
248
|
+
class GetLanguagePreference
|
249
|
+
@@schema_type = "getLanguagePreference"
|
250
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
251
|
+
@@schema_qualified = "true"
|
252
|
+
@@schema_element = []
|
253
|
+
|
254
|
+
def initialize
|
255
|
+
end
|
256
|
+
end
|
257
|
+
|
258
|
+
# {https://adwords.google.com/api/adwords/v4}getLanguagePreferenceResponse
|
259
|
+
class GetLanguagePreferenceResponse
|
260
|
+
@@schema_type = "getLanguagePreferenceResponse"
|
261
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
262
|
+
@@schema_qualified = "true"
|
263
|
+
@@schema_element = [
|
264
|
+
["getLanguagePreferenceReturn", "SOAP::SOAPString"]
|
265
|
+
]
|
266
|
+
|
267
|
+
attr_accessor :getLanguagePreferenceReturn
|
268
|
+
|
269
|
+
def initialize(getLanguagePreferenceReturn = nil)
|
270
|
+
@getLanguagePreferenceReturn = getLanguagePreferenceReturn
|
271
|
+
end
|
272
|
+
end
|
273
|
+
|
274
|
+
# {https://adwords.google.com/api/adwords/v4}setLanguagePreference
|
275
|
+
class SetLanguagePreference
|
276
|
+
@@schema_type = "setLanguagePreference"
|
277
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
278
|
+
@@schema_qualified = "true"
|
279
|
+
@@schema_element = [
|
280
|
+
["languagePref", "SOAP::SOAPString"]
|
281
|
+
]
|
282
|
+
|
283
|
+
attr_accessor :languagePref
|
284
|
+
|
285
|
+
def initialize(languagePref = nil)
|
286
|
+
@languagePref = languagePref
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
# {https://adwords.google.com/api/adwords/v4}setLanguagePreferenceResponse
|
291
|
+
class SetLanguagePreferenceResponse
|
292
|
+
@@schema_type = "setLanguagePreferenceResponse"
|
293
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
294
|
+
@@schema_qualified = "true"
|
295
|
+
@@schema_element = []
|
296
|
+
|
297
|
+
def initialize
|
298
|
+
end
|
299
|
+
end
|
300
|
+
|
301
|
+
# {https://adwords.google.com/api/adwords/v4}getEmailPromotionsPreferences
|
302
|
+
class GetEmailPromotionsPreferences
|
303
|
+
@@schema_type = "getEmailPromotionsPreferences"
|
304
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
305
|
+
@@schema_qualified = "true"
|
306
|
+
@@schema_element = []
|
307
|
+
|
308
|
+
def initialize
|
309
|
+
end
|
310
|
+
end
|
311
|
+
|
312
|
+
# {https://adwords.google.com/api/adwords/v4}getEmailPromotionsPreferencesResponse
|
313
|
+
class GetEmailPromotionsPreferencesResponse
|
314
|
+
@@schema_type = "getEmailPromotionsPreferencesResponse"
|
315
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
316
|
+
@@schema_qualified = "true"
|
317
|
+
@@schema_element = [
|
318
|
+
["getEmailPromotionsPreferencesReturn", "EmailPromotionsPreferences"]
|
319
|
+
]
|
320
|
+
|
321
|
+
attr_accessor :getEmailPromotionsPreferencesReturn
|
322
|
+
|
323
|
+
def initialize(getEmailPromotionsPreferencesReturn = nil)
|
324
|
+
@getEmailPromotionsPreferencesReturn = getEmailPromotionsPreferencesReturn
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
# {https://adwords.google.com/api/adwords/v4}setEmailPromotionsPreferences
|
329
|
+
class SetEmailPromotionsPreferences
|
330
|
+
@@schema_type = "setEmailPromotionsPreferences"
|
331
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
332
|
+
@@schema_qualified = "true"
|
333
|
+
@@schema_element = [
|
334
|
+
["prefs", "EmailPromotionsPreferences"]
|
335
|
+
]
|
336
|
+
|
337
|
+
attr_accessor :prefs
|
338
|
+
|
339
|
+
def initialize(prefs = nil)
|
340
|
+
@prefs = prefs
|
341
|
+
end
|
342
|
+
end
|
343
|
+
|
344
|
+
# {https://adwords.google.com/api/adwords/v4}setEmailPromotionsPreferencesResponse
|
345
|
+
class SetEmailPromotionsPreferencesResponse
|
346
|
+
@@schema_type = "setEmailPromotionsPreferencesResponse"
|
347
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
348
|
+
@@schema_qualified = "true"
|
349
|
+
@@schema_element = []
|
350
|
+
|
351
|
+
def initialize
|
352
|
+
end
|
353
|
+
end
|
354
|
+
|
355
|
+
# {https://adwords.google.com/api/adwords/v4}getPrimaryBusinessCategory
|
356
|
+
class GetPrimaryBusinessCategory
|
357
|
+
@@schema_type = "getPrimaryBusinessCategory"
|
358
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
359
|
+
@@schema_qualified = "true"
|
360
|
+
@@schema_element = []
|
361
|
+
|
362
|
+
def initialize
|
363
|
+
end
|
364
|
+
end
|
365
|
+
|
366
|
+
# {https://adwords.google.com/api/adwords/v4}getPrimaryBusinessCategoryResponse
|
367
|
+
class GetPrimaryBusinessCategoryResponse
|
368
|
+
@@schema_type = "getPrimaryBusinessCategoryResponse"
|
369
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
370
|
+
@@schema_qualified = "true"
|
371
|
+
@@schema_element = [
|
372
|
+
["getPrimaryBusinessCategoryReturn", "SOAP::SOAPString"]
|
373
|
+
]
|
374
|
+
|
375
|
+
attr_accessor :getPrimaryBusinessCategoryReturn
|
376
|
+
|
377
|
+
def initialize(getPrimaryBusinessCategoryReturn = nil)
|
378
|
+
@getPrimaryBusinessCategoryReturn = getPrimaryBusinessCategoryReturn
|
379
|
+
end
|
380
|
+
end
|
381
|
+
|
382
|
+
# {https://adwords.google.com/api/adwords/v4}setPrimaryBusinessCategory
|
383
|
+
class SetPrimaryBusinessCategory
|
384
|
+
@@schema_type = "setPrimaryBusinessCategory"
|
385
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
386
|
+
@@schema_qualified = "true"
|
387
|
+
@@schema_element = [
|
388
|
+
["bizType", "SOAP::SOAPString"]
|
389
|
+
]
|
390
|
+
|
391
|
+
attr_accessor :bizType
|
392
|
+
|
393
|
+
def initialize(bizType = nil)
|
394
|
+
@bizType = bizType
|
395
|
+
end
|
396
|
+
end
|
397
|
+
|
398
|
+
# {https://adwords.google.com/api/adwords/v4}setPrimaryBusinessCategoryResponse
|
399
|
+
class SetPrimaryBusinessCategoryResponse
|
400
|
+
@@schema_type = "setPrimaryBusinessCategoryResponse"
|
401
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
402
|
+
@@schema_qualified = "true"
|
403
|
+
@@schema_element = []
|
404
|
+
|
405
|
+
def initialize
|
406
|
+
end
|
407
|
+
end
|
408
|
+
|
409
|
+
# {https://adwords.google.com/api/adwords/v4}getTermsAndConditions
|
410
|
+
class GetTermsAndConditions
|
411
|
+
@@schema_type = "getTermsAndConditions"
|
412
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
413
|
+
@@schema_qualified = "true"
|
414
|
+
@@schema_element = []
|
415
|
+
|
416
|
+
def initialize
|
417
|
+
end
|
418
|
+
end
|
419
|
+
|
420
|
+
# {https://adwords.google.com/api/adwords/v4}getTermsAndConditionsResponse
|
421
|
+
class GetTermsAndConditionsResponse
|
422
|
+
@@schema_type = "getTermsAndConditionsResponse"
|
423
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
424
|
+
@@schema_qualified = "true"
|
425
|
+
@@schema_element = [
|
426
|
+
["getTermsAndConditionsReturn", "SOAP::SOAPString"]
|
427
|
+
]
|
428
|
+
|
429
|
+
attr_accessor :getTermsAndConditionsReturn
|
430
|
+
|
431
|
+
def initialize(getTermsAndConditionsReturn = nil)
|
432
|
+
@getTermsAndConditionsReturn = getTermsAndConditionsReturn
|
433
|
+
end
|
434
|
+
end
|
435
|
+
|
436
|
+
# {https://adwords.google.com/api/adwords/v4}getClientAccounts
|
437
|
+
class GetClientAccounts
|
438
|
+
@@schema_type = "getClientAccounts"
|
439
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
440
|
+
@@schema_qualified = "true"
|
441
|
+
@@schema_element = []
|
442
|
+
|
443
|
+
def initialize
|
444
|
+
end
|
445
|
+
end
|
446
|
+
|
447
|
+
# {https://adwords.google.com/api/adwords/v4}getClientAccountsResponse
|
448
|
+
class GetClientAccountsResponse < ::Array
|
449
|
+
@@schema_element = [
|
450
|
+
["getClientAccountsReturn", ["SOAP::SOAPString[]", XSD::QName.new("https://adwords.google.com/api/adwords/v4", "getClientAccountsReturn")]]
|
451
|
+
]
|
452
|
+
end
|
453
|
+
|
454
|
+
# {https://adwords.google.com/api/adwords/v4}getLocalTimezone
|
455
|
+
class GetLocalTimezone
|
456
|
+
@@schema_type = "getLocalTimezone"
|
457
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
458
|
+
@@schema_qualified = "true"
|
459
|
+
@@schema_element = []
|
460
|
+
|
461
|
+
def initialize
|
462
|
+
end
|
463
|
+
end
|
464
|
+
|
465
|
+
# {https://adwords.google.com/api/adwords/v4}getLocalTimezoneResponse
|
466
|
+
class GetLocalTimezoneResponse
|
467
|
+
@@schema_type = "getLocalTimezoneResponse"
|
468
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
469
|
+
@@schema_qualified = "true"
|
470
|
+
@@schema_element = [
|
471
|
+
["getLocalTimezoneReturn", "SOAP::SOAPString"]
|
472
|
+
]
|
473
|
+
|
474
|
+
attr_accessor :getLocalTimezoneReturn
|
475
|
+
|
476
|
+
def initialize(getLocalTimezoneReturn = nil)
|
477
|
+
@getLocalTimezoneReturn = getLocalTimezoneReturn
|
478
|
+
end
|
479
|
+
end
|
480
|
+
|
481
|
+
# {https://adwords.google.com/api/adwords/v4}setLocalTimezone
|
482
|
+
class SetLocalTimezone
|
483
|
+
@@schema_type = "setLocalTimezone"
|
484
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
485
|
+
@@schema_qualified = "true"
|
486
|
+
@@schema_element = [
|
487
|
+
["timezoneID", "SOAP::SOAPString"]
|
488
|
+
]
|
489
|
+
|
490
|
+
attr_accessor :timezoneID
|
491
|
+
|
492
|
+
def initialize(timezoneID = nil)
|
493
|
+
@timezoneID = timezoneID
|
494
|
+
end
|
495
|
+
end
|
496
|
+
|
497
|
+
# {https://adwords.google.com/api/adwords/v4}setLocalTimezoneResponse
|
498
|
+
class SetLocalTimezoneResponse
|
499
|
+
@@schema_type = "setLocalTimezoneResponse"
|
500
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
501
|
+
@@schema_qualified = "true"
|
502
|
+
@@schema_element = []
|
503
|
+
|
504
|
+
def initialize
|
505
|
+
end
|
506
|
+
end
|
507
|
+
|
508
|
+
# {https://adwords.google.com/api/adwords/v4}getTimezoneEffectiveDate
|
509
|
+
class GetTimezoneEffectiveDate
|
510
|
+
@@schema_type = "getTimezoneEffectiveDate"
|
511
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
512
|
+
@@schema_qualified = "true"
|
513
|
+
@@schema_element = []
|
514
|
+
|
515
|
+
def initialize
|
516
|
+
end
|
517
|
+
end
|
518
|
+
|
519
|
+
# {https://adwords.google.com/api/adwords/v4}getTimezoneEffectiveDateResponse
|
520
|
+
class GetTimezoneEffectiveDateResponse
|
521
|
+
@@schema_type = "getTimezoneEffectiveDateResponse"
|
522
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
523
|
+
@@schema_qualified = "true"
|
524
|
+
@@schema_element = [
|
525
|
+
["getTimezoneEffectiveDateReturn", "SOAP::SOAPLong"]
|
526
|
+
]
|
527
|
+
|
528
|
+
attr_accessor :getTimezoneEffectiveDateReturn
|
529
|
+
|
530
|
+
def initialize(getTimezoneEffectiveDateReturn = nil)
|
531
|
+
@getTimezoneEffectiveDateReturn = getTimezoneEffectiveDateReturn
|
532
|
+
end
|
533
|
+
end
|
534
|
+
|
535
|
+
# {https://adwords.google.com/api/adwords/v4}EmailPromotionsPreferences
|
536
|
+
class EmailPromotionsPreferences
|
537
|
+
@@schema_type = "EmailPromotionsPreferences"
|
538
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
539
|
+
@@schema_element = [
|
540
|
+
["marketResearchEnabled", "SOAP::SOAPBoolean"],
|
541
|
+
["newsletterEnabled", "SOAP::SOAPBoolean"],
|
542
|
+
["promotionsEnabled", "SOAP::SOAPBoolean"]
|
543
|
+
]
|
544
|
+
|
545
|
+
attr_accessor :marketResearchEnabled
|
546
|
+
attr_accessor :newsletterEnabled
|
547
|
+
attr_accessor :promotionsEnabled
|
548
|
+
|
549
|
+
def initialize(marketResearchEnabled = nil, newsletterEnabled = nil, promotionsEnabled = nil)
|
550
|
+
@marketResearchEnabled = marketResearchEnabled
|
551
|
+
@newsletterEnabled = newsletterEnabled
|
552
|
+
@promotionsEnabled = promotionsEnabled
|
553
|
+
end
|
554
|
+
end
|
555
|
+
|
556
|
+
# {https://adwords.google.com/api/adwords/v4}CreditCard
|
557
|
+
class CreditCard
|
558
|
+
@@schema_type = "CreditCard"
|
559
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
560
|
+
@@schema_element = [
|
561
|
+
["cardNumber", "SOAP::SOAPString"],
|
562
|
+
["cardType", "SOAP::SOAPString"],
|
563
|
+
["cardVerificationNumber", "SOAP::SOAPString"],
|
564
|
+
["expirationMonth", "SOAP::SOAPInt"],
|
565
|
+
["expirationYear", "SOAP::SOAPInt"],
|
566
|
+
["issueNumber", "SOAP::SOAPString"],
|
567
|
+
["startMonth", "SOAP::SOAPInt"],
|
568
|
+
["startYear", "SOAP::SOAPInt"],
|
569
|
+
["status", "SOAP::SOAPString"],
|
570
|
+
["taxNumber", "SOAP::SOAPString"]
|
571
|
+
]
|
572
|
+
|
573
|
+
attr_accessor :cardNumber
|
574
|
+
attr_accessor :cardType
|
575
|
+
attr_accessor :cardVerificationNumber
|
576
|
+
attr_accessor :expirationMonth
|
577
|
+
attr_accessor :expirationYear
|
578
|
+
attr_accessor :issueNumber
|
579
|
+
attr_accessor :startMonth
|
580
|
+
attr_accessor :startYear
|
581
|
+
attr_accessor :status
|
582
|
+
attr_accessor :taxNumber
|
583
|
+
|
584
|
+
def initialize(cardNumber = nil, cardType = nil, cardVerificationNumber = nil, expirationMonth = nil, expirationYear = nil, issueNumber = nil, startMonth = nil, startYear = nil, status = nil, taxNumber = nil)
|
585
|
+
@cardNumber = cardNumber
|
586
|
+
@cardType = cardType
|
587
|
+
@cardVerificationNumber = cardVerificationNumber
|
588
|
+
@expirationMonth = expirationMonth
|
589
|
+
@expirationYear = expirationYear
|
590
|
+
@issueNumber = issueNumber
|
591
|
+
@startMonth = startMonth
|
592
|
+
@startYear = startYear
|
593
|
+
@status = status
|
594
|
+
@taxNumber = taxNumber
|
595
|
+
end
|
596
|
+
end
|
597
|
+
|
598
|
+
# {https://adwords.google.com/api/adwords/v4}Address
|
599
|
+
class Address
|
600
|
+
@@schema_type = "Address"
|
601
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
602
|
+
@@schema_element = [
|
603
|
+
["addressLine1", "SOAP::SOAPString"],
|
604
|
+
["addressLine2", "SOAP::SOAPString"],
|
605
|
+
["city", "SOAP::SOAPString"],
|
606
|
+
["companyName", "SOAP::SOAPString"],
|
607
|
+
["countryCode", "SOAP::SOAPString"],
|
608
|
+
["faxNumber", "SOAP::SOAPString"],
|
609
|
+
["name", "SOAP::SOAPString"],
|
610
|
+
["phoneNumber", "SOAP::SOAPString"],
|
611
|
+
["postalCode", "SOAP::SOAPString"],
|
612
|
+
["state", "SOAP::SOAPString"]
|
613
|
+
]
|
614
|
+
|
615
|
+
attr_accessor :addressLine1
|
616
|
+
attr_accessor :addressLine2
|
617
|
+
attr_accessor :city
|
618
|
+
attr_accessor :companyName
|
619
|
+
attr_accessor :countryCode
|
620
|
+
attr_accessor :faxNumber
|
621
|
+
attr_accessor :name
|
622
|
+
attr_accessor :phoneNumber
|
623
|
+
attr_accessor :postalCode
|
624
|
+
attr_accessor :state
|
625
|
+
|
626
|
+
def initialize(addressLine1 = nil, addressLine2 = nil, city = nil, companyName = nil, countryCode = nil, faxNumber = nil, name = nil, phoneNumber = nil, postalCode = nil, state = nil)
|
627
|
+
@addressLine1 = addressLine1
|
628
|
+
@addressLine2 = addressLine2
|
629
|
+
@city = city
|
630
|
+
@companyName = companyName
|
631
|
+
@countryCode = countryCode
|
632
|
+
@faxNumber = faxNumber
|
633
|
+
@name = name
|
634
|
+
@phoneNumber = phoneNumber
|
635
|
+
@postalCode = postalCode
|
636
|
+
@state = state
|
637
|
+
end
|
638
|
+
end
|
639
|
+
|
640
|
+
# {https://adwords.google.com/api/adwords/v4}CoverageType
|
641
|
+
class CoverageType
|
642
|
+
@@schema_type = "CoverageType"
|
643
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
644
|
+
@@schema_element = [
|
645
|
+
["optInContentNetwork", "SOAP::SOAPBoolean"],
|
646
|
+
["optInSearchNetwork", "SOAP::SOAPBoolean"]
|
647
|
+
]
|
648
|
+
|
649
|
+
attr_accessor :optInContentNetwork
|
650
|
+
attr_accessor :optInSearchNetwork
|
651
|
+
|
652
|
+
def initialize(optInContentNetwork = nil, optInSearchNetwork = nil)
|
653
|
+
@optInContentNetwork = optInContentNetwork
|
654
|
+
@optInSearchNetwork = optInSearchNetwork
|
655
|
+
end
|
656
|
+
end
|
657
|
+
|
658
|
+
# {https://adwords.google.com/api/adwords/v4}ApiException
|
659
|
+
class ApiException
|
660
|
+
@@schema_type = "ApiException"
|
661
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
662
|
+
@@schema_element = [
|
663
|
+
["code", "SOAP::SOAPInt"],
|
664
|
+
["internal", "SOAP::SOAPBoolean"],
|
665
|
+
["message", "SOAP::SOAPString"],
|
666
|
+
["trigger", "SOAP::SOAPString"],
|
667
|
+
["violations", "SOAP::SOAPString"]
|
668
|
+
]
|
669
|
+
|
670
|
+
attr_accessor :code
|
671
|
+
attr_accessor :internal
|
672
|
+
attr_accessor :message
|
673
|
+
attr_accessor :trigger
|
674
|
+
attr_accessor :violations
|
675
|
+
|
676
|
+
def initialize(code = nil, internal = nil, message = nil, trigger = nil, violations = nil)
|
677
|
+
@code = code
|
678
|
+
@internal = internal
|
679
|
+
@message = message
|
680
|
+
@trigger = trigger
|
681
|
+
@violations = violations
|
682
|
+
end
|
683
|
+
end
|
684
|
+
|
685
|
+
# {https://adwords.google.com/api/adwords/v4}CreditCardType
|
686
|
+
class CreditCardType < ::String
|
687
|
+
@@schema_type = "CreditCardType"
|
688
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
689
|
+
|
690
|
+
AmericanExpress = CreditCardType.new("AmericanExpress")
|
691
|
+
JCB = CreditCardType.new("JCB")
|
692
|
+
MasterCard = CreditCardType.new("MasterCard")
|
693
|
+
SOLO = CreditCardType.new("SOLO")
|
694
|
+
Switch = CreditCardType.new("Switch")
|
695
|
+
VISA = CreditCardType.new("VISA")
|
696
|
+
end
|
697
|
+
|
698
|
+
# {https://adwords.google.com/api/adwords/v4}TaxStatus
|
699
|
+
class TaxStatus < ::String
|
700
|
+
@@schema_type = "TaxStatus"
|
701
|
+
@@schema_ns = "https://adwords.google.com/api/adwords/v4"
|
702
|
+
|
703
|
+
Charity = TaxStatus.new("Charity")
|
704
|
+
ExtraTerritorial = TaxStatus.new("ExtraTerritorial")
|
705
|
+
Other = TaxStatus.new("Other")
|
706
|
+
SubjectToTax = TaxStatus.new("SubjectToTax")
|
707
|
+
ZeroRated = TaxStatus.new("ZeroRated")
|
708
|
+
end
|
709
|
+
end
|