purolator_ruby 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/lib/purolator_ruby.rb +8 -1
  3. data/lib/purolator_ruby/client.rb +19 -8
  4. data/lib/purolator_ruby/create_shipment_response.rb +15 -0
  5. data/lib/purolator_ruby/environment_credentials.rb +22 -10
  6. data/lib/purolator_ruby/get_documents_payload.rb +28 -0
  7. data/lib/purolator_ruby/get_documents_response.rb +13 -0
  8. data/lib/purolator_ruby/purolator_response.rb +36 -0
  9. data/lib/purolator_ruby/request.rb +45 -0
  10. data/lib/purolator_ruby/validate_city_postal_code_zip_payload.rb +27 -0
  11. data/lib/purolator_ruby/validate_city_postal_code_zip_response.rb +13 -0
  12. data/lib/purolator_ruby/version.rb +1 -1
  13. data/lib/purolator_ruby/wsdl_location.rb +35 -0
  14. data/spec/fixtures/ServiceAvailabilityService.wsdl +1055 -0
  15. data/spec/fixtures/ShippingDocumentsService.wsdl +704 -0
  16. data/spec/fixtures/vcr_cassettes/get_documents.yml +55 -0
  17. data/spec/fixtures/vcr_cassettes/shipping_service_integration.yml +5 -5
  18. data/spec/fixtures/vcr_cassettes/shipping_service_integration_2.yml +60 -0
  19. data/spec/fixtures/vcr_cassettes/validate_address.yml +56 -0
  20. data/spec/fixtures/vcr_cassettes/validate_address_invalid.yml +57 -0
  21. data/spec/purolator_ruby/client_spec.rb +39 -12
  22. data/spec/purolator_ruby/create_shipment_response_spec.rb +57 -0
  23. data/spec/purolator_ruby/get_documents_payload_spec.rb +16 -0
  24. data/spec/purolator_ruby/get_documents_response_spec.rb +40 -0
  25. data/spec/purolator_ruby/integration/create_shipment_spec.rb +53 -0
  26. data/spec/purolator_ruby/integration/get_documents_spec.rb +29 -0
  27. data/spec/purolator_ruby/integration/validate_address_spec.rb +51 -0
  28. data/spec/purolator_ruby/validate_city_postal_code_zip_payload_spec.rb +31 -0
  29. data/spec/purolator_ruby/wsdl_location_spec.rb +37 -0
  30. data/spec/spec_helper.rb +9 -0
  31. metadata +38 -5
  32. data/lib/purolator_ruby/create_shipment_request.rb +0 -55
  33. data/spec/purolator_ruby/create_shipment_request_spec.rb +0 -64
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8fc4eeac1e5ce71eb87107f4d662925fdedb0c99
4
- data.tar.gz: 53a77989dbacc488ccb22f93f4336d17057e9727
3
+ metadata.gz: 1d9bb4dc12d646ad9497e04aca37f02aa3b8e188
4
+ data.tar.gz: 402be4eaf0eeea2c67161a5a3006ab9dfbfcc80c
5
5
  SHA512:
6
- metadata.gz: b5faffc68d0db22afc08f426745cb060c2b2ec4e2ac71e314cdde8d143cfd8bb36c09be1fa205efe76a741f9cfd747f6350e090d6c291fa659239bea98c96c7a
7
- data.tar.gz: 64fb9375838b3fe135597ee30ba5dd0614b279ab4d1e175abdac46415f566998bdb4972c2c44661c125d85cda3ac3bc0545998f1eab7b0884f11afddf8ddf0a6
6
+ metadata.gz: 0fdae87ca2b79226808e601579972cbeddd6890409584195ca2a81cca457c021796cd146a52a1ebfe90683d1dee1a66ac87438ca6e27a1c07152c5c468a12306
7
+ data.tar.gz: 1c8d8c7f38a275a4532a29cbc753939e9629ce844f5013ba3d51e60647834cf42936edb3ece665dc2c5bb552d025f068a136ef58392ef99ccc98a85d976a5988
@@ -2,8 +2,15 @@ require "savon"
2
2
  require "purolator_ruby/version"
3
3
  require "purolator_ruby/environment_credentials"
4
4
  require "purolator_ruby/client"
5
- require "purolator_ruby/create_shipment_request"
5
+ require "purolator_ruby/purolator_response"
6
+ require "purolator_ruby/request"
6
7
  require "purolator_ruby/create_shipment_payload"
8
+ require "purolator_ruby/create_shipment_response"
9
+ require "purolator_ruby/validate_city_postal_code_zip_payload"
10
+ require "purolator_ruby/validate_city_postal_code_zip_response"
11
+ require "purolator_ruby/get_documents_payload"
12
+ require "purolator_ruby/get_documents_response"
13
+ require "purolator_ruby/wsdl_location"
7
14
 
8
15
  module PurolatorRuby
9
16
  end
@@ -11,24 +11,30 @@ module PurolatorRuby
11
11
 
12
12
  def initialize(options = {})
13
13
  @credentials = options.fetch(:credentials) { EnvironmentCredentials.new }
14
- @client = build_client
15
14
  end
16
15
 
17
16
  def call(*args)
18
- @client.call(*args)
17
+ Request.new(method: args.first, params: args.drop(1).first, client: self).send
19
18
  end
20
19
 
21
- def build_shipment(options)
22
- PurolatorRuby::CreateShipmentRequest.new(options.merge(client: self))
20
+ def purolator_call(*args)
21
+ with_client(args.first) do |purolator|
22
+ purolator.call(*args)
23
+ end
24
+ end
25
+
26
+ def create_shipment(params)
27
+ call(:create_shipment, params)
23
28
  end
24
29
 
25
30
  private
26
- def build_client
27
- Savon.client(
28
- wsdl: File.open(credentials.wsdl_location),
31
+
32
+ def with_client(method)
33
+ yield Savon.client(
34
+ wsdl: wsdl_location.location_for(method),
29
35
  # digest_auth: credentials.basic_auth,
30
36
  basic_auth: credentials.basic_auth,
31
- soap_header: credentials.soap_header,
37
+ soap_header: wsdl_location.soap_header_for(method),
32
38
  namespace: 'http://purolator.com/pws/datatypes/v1',
33
39
  element_form_default: :qualified,
34
40
  # log: true,
@@ -39,5 +45,10 @@ module PurolatorRuby
39
45
  ) { convert_request_keys_to :none }
40
46
  end
41
47
 
48
+
49
+ def wsdl_location
50
+ WsdlLocation.new(credentials: credentials)
51
+ end
52
+
42
53
  end
43
54
  end
@@ -0,0 +1,15 @@
1
+ module PurolatorRuby
2
+
3
+ class CreateShipmentResponse < PurolatorResponse
4
+
5
+ def response_key
6
+ :create_shipment_response
7
+ end
8
+
9
+ def shipment_pin
10
+ response[response_key][:shipment_pin][:value]
11
+ end
12
+
13
+ end
14
+
15
+ end
@@ -24,16 +24,28 @@ module PurolatorRuby
24
24
  soap_header_v15
25
25
  end
26
26
 
27
- private
28
- def soap_header_v15
29
- {'ns1:RequestContext' =>
30
- {'ns1:Version' => '1.5',
31
- 'ns1:Language' => 'en',
32
- 'ns1:GroupID' => 'xxx',
33
- 'ns1:RequestReference' => 'Rating Example',
34
- 'ns1:UserToken' => client_id,
35
- }
27
+ def soap_header_v15
28
+ {'ns1:RequestContext' =>
29
+ {'ns1:Version' => '1.5',
30
+ 'ns1:Language' => 'en',
31
+ 'ns1:GroupID' => 'xxx',
32
+ 'ns1:RequestReference' => 'Rating Example',
33
+ 'ns1:UserToken' => client_id,
36
34
  }
37
- end
35
+ }
36
+ end
37
+
38
+
39
+ def soap_header_v13
40
+ {'ns1:RequestContext' =>
41
+ {'ns1:Version' => '1.3',
42
+ 'ns1:Language' => 'en',
43
+ 'ns1:GroupID' => 'xxx',
44
+ 'ns1:RequestReference' => 'Rating Example',
45
+ 'ns1:UserToken' => client_id,
46
+ }
47
+ }
48
+ end
49
+
38
50
  end
39
51
  end
@@ -0,0 +1,28 @@
1
+ module PurolatorRuby
2
+
3
+ class GetDocumentsPayload
4
+
5
+ attr_reader :params
6
+
7
+ def initialize(params)
8
+ @params = params
9
+ end
10
+
11
+ def to_h
12
+ {
13
+ 'DocumentCriterium' => {
14
+ 'DocumentCriteria' => {
15
+ 'PIN' => {
16
+ 'Value' => params[:pin]
17
+ },
18
+ 'DocumentTypes' => {
19
+ 'DocumentType' => params[:document_type]
20
+ }
21
+ }
22
+ }
23
+ }
24
+ end
25
+
26
+ end
27
+
28
+ end
@@ -0,0 +1,13 @@
1
+ module PurolatorRuby
2
+ class GetDocumentsResponse < PurolatorResponse
3
+
4
+ def response_key
5
+ :get_documents_response
6
+ end
7
+
8
+ def url
9
+ response[response_key][:documents][:document][:document_details][:document_detail][:url]
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,36 @@
1
+ module PurolatorRuby
2
+
3
+ class PurolatorResponse
4
+
5
+ attr_reader :response
6
+
7
+ def initialize(response)
8
+ @response = response
9
+ end
10
+
11
+ def status
12
+ if response[response_key][:response_information][:errors]
13
+ :error
14
+ else
15
+ :ok
16
+ end
17
+ end
18
+
19
+ def errors
20
+ if response[response_key][:response_information][:errors]
21
+ begin
22
+ response[response_key][:response_information][:errors].map {|k, v| v[:description]}
23
+ rescue TypeError
24
+ response[response_key][:response_information][:errors].map(&:to_s)
25
+ end
26
+ end
27
+ end
28
+
29
+ protected
30
+ def response_key
31
+ raise ArgumentError, "Please subclass and implement response_key"
32
+ end
33
+
34
+ end
35
+
36
+ end
@@ -0,0 +1,45 @@
1
+ module PurolatorRuby
2
+
3
+ class Request
4
+
5
+ attr_reader :client, :method, :params
6
+
7
+ def initialize(options)
8
+ @client = options.fetch(:client)
9
+ @method = options.fetch(:method)
10
+ @params = options.fetch(:params)
11
+ end
12
+
13
+ def send
14
+ payload = payload_class.new(
15
+ params.merge(
16
+ account_number: client.account_number,
17
+ billing_number: client.billing_number)).to_h
18
+
19
+ raw_response = @client.purolator_call(method, message: payload).body
20
+
21
+ response_class.new(raw_response)
22
+ end
23
+
24
+ private
25
+ def payload_class
26
+ resolve(base_name + "Payload")
27
+ end
28
+
29
+ def response_class
30
+ resolve(base_name + "Response")
31
+ end
32
+
33
+ def resolve(klass)
34
+ PurolatorRuby.const_get(klass)
35
+ end
36
+
37
+ def base_name
38
+ classify(method.to_s)
39
+ end
40
+
41
+ def classify(snake_case)
42
+ snake_case.split('_').map(&:capitalize).join
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,27 @@
1
+ module PurolatorRuby
2
+
3
+ class ValidateCityPostalCodeZipPayload
4
+
5
+ attr_reader :payload
6
+
7
+ def initialize(payload)
8
+ @payload = payload
9
+ end
10
+
11
+ def to_h
12
+ {
13
+ 'Addresses' => {
14
+ 'ShortAddress' => {
15
+ 'City' => payload[:city],
16
+ 'Province' => payload[:province],
17
+ 'Country' => payload[:country],
18
+ 'PostalCode' => payload[:postal_code],
19
+ }
20
+ }
21
+ }
22
+ end
23
+
24
+
25
+ end
26
+
27
+ end
@@ -0,0 +1,13 @@
1
+ module PurolatorRuby
2
+ class ValidateCityPostalCodeZipResponse < PurolatorResponse
3
+
4
+ def response_key
5
+ :validate_city_postal_code_zip_response
6
+ end
7
+
8
+ def valid?
9
+ !errors
10
+ end
11
+
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module PurolatorRuby
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -0,0 +1,35 @@
1
+ module PurolatorRuby
2
+
3
+ class WsdlLocation
4
+
5
+ attr_reader :credentials
6
+
7
+ def initialize(options)
8
+ @credentials = options.fetch(:credentials)
9
+ end
10
+
11
+ def location_for(api_method)
12
+ case api_method
13
+ when :create_shipment
14
+ File.join(credentials.wsdl_location, 'ShippingService.wsdl')
15
+ when :validate_city_postal_code_zip
16
+ File.join(credentials.wsdl_location, 'ServiceAvailabilityService.wsdl')
17
+ when :get_documents
18
+ File.join(credentials.wsdl_location, 'ShippingDocumentsService.wsdl')
19
+ else
20
+ raise ArgumentError, "Missing WSDL mapping for :#{api_method}"
21
+ end
22
+ end
23
+
24
+ def soap_header_for(api_method)
25
+ case api_method
26
+ when :create_shipment
27
+ credentials.soap_header_v15
28
+ when :validate_city_postal_code_zip, :get_documents
29
+ credentials.soap_header_v13
30
+ end
31
+ end
32
+
33
+ end
34
+
35
+ end
@@ -0,0 +1,1055 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <wsdl:definitions name="ServiceAvailabilityService" targetNamespace="http://purolator.com/pws/service/v1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns="http://purolator.com/pws/service/v1" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata">
3
+ <wsdl:types>
4
+ <xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/">
5
+ <xs:element name="anyType" nillable="true" type="xs:anyType"/>
6
+ <xs:element name="anyURI" nillable="true" type="xs:anyURI"/>
7
+ <xs:element name="base64Binary" nillable="true" type="xs:base64Binary"/>
8
+ <xs:element name="boolean" nillable="true" type="xs:boolean"/>
9
+ <xs:element name="byte" nillable="true" type="xs:byte"/>
10
+ <xs:element name="dateTime" nillable="true" type="xs:dateTime"/>
11
+ <xs:element name="decimal" nillable="true" type="xs:decimal"/>
12
+ <xs:element name="double" nillable="true" type="xs:double"/>
13
+ <xs:element name="float" nillable="true" type="xs:float"/>
14
+ <xs:element name="int" nillable="true" type="xs:int"/>
15
+ <xs:element name="long" nillable="true" type="xs:long"/>
16
+ <xs:element name="QName" nillable="true" type="xs:QName"/>
17
+ <xs:element name="short" nillable="true" type="xs:short"/>
18
+ <xs:element name="string" nillable="true" type="xs:string"/>
19
+ <xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte"/>
20
+ <xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt"/>
21
+ <xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong"/>
22
+ <xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort"/>
23
+ <xs:element name="char" nillable="true" type="tns:char"/>
24
+ <xs:simpleType name="char">
25
+ <xs:restriction base="xs:int"/>
26
+ </xs:simpleType>
27
+ <xs:element name="duration" nillable="true" type="tns:duration"/>
28
+ <xs:simpleType name="duration">
29
+ <xs:restriction base="xs:duration">
30
+ <xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?"/>
31
+ <xs:minInclusive value="-P10675199DT2H48M5.4775808S"/>
32
+ <xs:maxInclusive value="P10675199DT2H48M5.4775807S"/>
33
+ </xs:restriction>
34
+ </xs:simpleType>
35
+ <xs:element name="guid" nillable="true" type="tns:guid"/>
36
+ <xs:simpleType name="guid">
37
+ <xs:restriction base="xs:string">
38
+ <xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}"/>
39
+ </xs:restriction>
40
+ </xs:simpleType>
41
+ <xs:attribute name="FactoryType" type="xs:QName"/>
42
+ <xs:attribute name="Id" type="xs:ID"/>
43
+ <xs:attribute name="Ref" type="xs:IDREF"/>
44
+ </xs:schema>
45
+ <xsd:schema elementFormDefault="qualified" targetNamespace="http://purolator.com/pws/datatypes/v1" xmlns:tns="http://purolator.com/pws/datatypes/v1">
46
+ <xsd:complexType name="GetServicesOptionsRequestContainer">
47
+ <xsd:annotation>
48
+ <xsd:appinfo/>
49
+ <xsd:documentation>GetServicesOptionsRequest</xsd:documentation>
50
+ </xsd:annotation>
51
+ <xsd:complexContent mixed="false">
52
+ <xsd:extension base="tns:RequestContainer">
53
+ <xsd:sequence>
54
+ <xsd:element name="BillingAccountNumber" nillable="true" type="xsd:string">
55
+ <xsd:annotation>
56
+ <xsd:appinfo/>
57
+ <xsd:documentation>BillingAccountNumber - string</xsd:documentation>
58
+ </xsd:annotation>
59
+ </xsd:element>
60
+ <xsd:element name="SenderAddress" nillable="true" type="tns:ShortAddress">
61
+ <xsd:annotation>
62
+ <xsd:appinfo/>
63
+ <xsd:documentation>SenderAddress - Address</xsd:documentation>
64
+ </xsd:annotation>
65
+ </xsd:element>
66
+ <xsd:element name="ReceiverAddress" nillable="true" type="tns:ShortAddress">
67
+ <xsd:annotation>
68
+ <xsd:appinfo/>
69
+ <xsd:documentation>ReceiverAddress - Address</xsd:documentation>
70
+ </xsd:annotation>
71
+ </xsd:element>
72
+ <xsd:element minOccurs="0" name="ShipmentDate" nillable="true" type="xsd:string">
73
+ <xsd:annotation>
74
+ <xsd:appinfo/>
75
+ <xsd:documentation>ShipmentDate - string</xsd:documentation>
76
+ </xsd:annotation>
77
+ </xsd:element>
78
+ </xsd:sequence>
79
+ </xsd:extension>
80
+ </xsd:complexContent>
81
+ </xsd:complexType>
82
+ <xsd:element name="GetServicesOptionsRequestContainer" nillable="true" type="tns:GetServicesOptionsRequestContainer"/>
83
+ <xsd:complexType name="RequestContainer">
84
+ <xsd:sequence/>
85
+ </xsd:complexType>
86
+ <xsd:element name="RequestContainer" nillable="true" type="tns:RequestContainer"/>
87
+ <xsd:complexType name="ShortAddress">
88
+ <xsd:annotation>
89
+ <xsd:appinfo/>
90
+ <xsd:documentation>ShortAddress</xsd:documentation>
91
+ </xsd:annotation>
92
+ <xsd:sequence>
93
+ <xsd:element name="City" nillable="true" type="xsd:string">
94
+ <xsd:annotation>
95
+ <xsd:appinfo/>
96
+ <xsd:documentation>City - string</xsd:documentation>
97
+ </xsd:annotation>
98
+ </xsd:element>
99
+ <xsd:element name="Province" nillable="true" type="xsd:string">
100
+ <xsd:annotation>
101
+ <xsd:appinfo/>
102
+ <xsd:documentation>Province - string</xsd:documentation>
103
+ </xsd:annotation>
104
+ </xsd:element>
105
+ <xsd:element name="Country" nillable="true" type="xsd:string">
106
+ <xsd:annotation>
107
+ <xsd:appinfo/>
108
+ <xsd:documentation>Country - string</xsd:documentation>
109
+ </xsd:annotation>
110
+ </xsd:element>
111
+ <xsd:element name="PostalCode" nillable="true" type="xsd:string">
112
+ <xsd:annotation>
113
+ <xsd:appinfo/>
114
+ <xsd:documentation>PostalCode; - string</xsd:documentation>
115
+ </xsd:annotation>
116
+ </xsd:element>
117
+ </xsd:sequence>
118
+ </xsd:complexType>
119
+ <xsd:element name="ShortAddress" nillable="true" type="tns:ShortAddress"/>
120
+ <xsd:element name="GetServicesOptionsRequest" nillable="true" type="tns:GetServicesOptionsRequestContainer"/>
121
+ <xsd:complexType name="RequestContext">
122
+ <xsd:annotation>
123
+ <xsd:appinfo/>
124
+ <xsd:documentation>RequestContext</xsd:documentation>
125
+ </xsd:annotation>
126
+ <xsd:sequence>
127
+ <xsd:element name="Version" nillable="true" type="xsd:string">
128
+ <xsd:annotation>
129
+ <xsd:appinfo/>
130
+ <xsd:documentation>Version - string</xsd:documentation>
131
+ </xsd:annotation>
132
+ </xsd:element>
133
+ <xsd:element name="Language" type="tns:Language">
134
+ <xsd:annotation>
135
+ <xsd:appinfo/>
136
+ <xsd:documentation>Language - string</xsd:documentation>
137
+ </xsd:annotation>
138
+ </xsd:element>
139
+ <xsd:element name="GroupID" nillable="true" type="xsd:string">
140
+ <xsd:annotation>
141
+ <xsd:appinfo/>
142
+ <xsd:documentation>GroupID - string</xsd:documentation>
143
+ </xsd:annotation>
144
+ </xsd:element>
145
+ <xsd:element name="RequestReference" nillable="true" type="xsd:string">
146
+ <xsd:annotation>
147
+ <xsd:appinfo/>
148
+ <xsd:documentation>RequestReference - string</xsd:documentation>
149
+ </xsd:annotation>
150
+ </xsd:element>
151
+ <xsd:element minOccurs="0" name="UserToken" nillable="true" type="xsd:string">
152
+ <xsd:annotation>
153
+ <xsd:appinfo/>
154
+ <xsd:documentation>UserToken - string</xsd:documentation>
155
+ </xsd:annotation>
156
+ </xsd:element>
157
+ </xsd:sequence>
158
+ </xsd:complexType>
159
+ <xsd:element name="RequestContext" nillable="true" type="tns:RequestContext"/>
160
+ <xsd:simpleType name="Language">
161
+ <xsd:annotation>
162
+ <xsd:appinfo/>
163
+ <xsd:documentation>Language - enum</xsd:documentation>
164
+ </xsd:annotation>
165
+ <xsd:restriction base="xsd:string">
166
+ <xsd:enumeration value="en">
167
+ <xsd:annotation>
168
+ <xsd:documentation>en</xsd:documentation>
169
+ </xsd:annotation>
170
+ </xsd:enumeration>
171
+ <xsd:enumeration value="fr">
172
+ <xsd:annotation>
173
+ <xsd:documentation>fr</xsd:documentation>
174
+ </xsd:annotation>
175
+ </xsd:enumeration>
176
+ </xsd:restriction>
177
+ </xsd:simpleType>
178
+ <xsd:element name="Language" nillable="true" type="tns:Language"/>
179
+ <xsd:complexType name="GetServicesOptionsResponseContainer">
180
+ <xsd:annotation>
181
+ <xsd:appinfo/>
182
+ <xsd:documentation>GetServicesOptionsResponse</xsd:documentation>
183
+ </xsd:annotation>
184
+ <xsd:complexContent mixed="false">
185
+ <xsd:extension base="tns:ResponseContainer">
186
+ <xsd:sequence>
187
+ <xsd:element minOccurs="0" name="Services" nillable="true" type="tns:ArrayOfService">
188
+ <xsd:annotation>
189
+ <xsd:appinfo/>
190
+ <xsd:documentation>Services - Service[]</xsd:documentation>
191
+ </xsd:annotation>
192
+ </xsd:element>
193
+ </xsd:sequence>
194
+ </xsd:extension>
195
+ </xsd:complexContent>
196
+ </xsd:complexType>
197
+ <xsd:element name="GetServicesOptionsResponseContainer" nillable="true" type="tns:GetServicesOptionsResponseContainer"/>
198
+ <xsd:complexType name="ResponseContainer">
199
+ <xsd:sequence>
200
+ <xsd:element name="ResponseInformation" nillable="true" type="tns:ResponseInformation">
201
+ <xsd:annotation>
202
+ <xsd:appinfo/>
203
+ <xsd:documentation>ResponseInformation - ResponseInformation</xsd:documentation>
204
+ </xsd:annotation>
205
+ </xsd:element>
206
+ </xsd:sequence>
207
+ </xsd:complexType>
208
+ <xsd:element name="ResponseContainer" nillable="true" type="tns:ResponseContainer"/>
209
+ <xsd:complexType name="ResponseInformation">
210
+ <xsd:annotation>
211
+ <xsd:appinfo/>
212
+ <xsd:documentation>ResponseInformation</xsd:documentation>
213
+ </xsd:annotation>
214
+ <xsd:sequence>
215
+ <xsd:element name="Errors" nillable="true" type="tns:ArrayOfError">
216
+ <xsd:annotation>
217
+ <xsd:appinfo/>
218
+ <xsd:documentation>Errors - Error[]</xsd:documentation>
219
+ </xsd:annotation>
220
+ </xsd:element>
221
+ <xsd:element name="InformationalMessages" nillable="true" type="tns:ArrayOfInformationalMessage">
222
+ <xsd:annotation>
223
+ <xsd:appinfo/>
224
+ <xsd:documentation>InformationalMessages - InformationalMessage[]</xsd:documentation>
225
+ </xsd:annotation>
226
+ </xsd:element>
227
+ </xsd:sequence>
228
+ </xsd:complexType>
229
+ <xsd:element name="ResponseInformation" nillable="true" type="tns:ResponseInformation"/>
230
+ <xsd:complexType name="ArrayOfError">
231
+ <xsd:sequence>
232
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="Error" nillable="true" type="tns:Error"/>
233
+ </xsd:sequence>
234
+ </xsd:complexType>
235
+ <xsd:element name="ArrayOfError" nillable="true" type="tns:ArrayOfError"/>
236
+ <xsd:complexType name="Error">
237
+ <xsd:annotation>
238
+ <xsd:appinfo/>
239
+ <xsd:documentation>Error</xsd:documentation>
240
+ </xsd:annotation>
241
+ <xsd:sequence>
242
+ <xsd:element name="Code" nillable="true" type="xsd:string">
243
+ <xsd:annotation>
244
+ <xsd:appinfo/>
245
+ <xsd:documentation>Code - string</xsd:documentation>
246
+ </xsd:annotation>
247
+ </xsd:element>
248
+ <xsd:element name="Description" nillable="true" type="xsd:string">
249
+ <xsd:annotation>
250
+ <xsd:appinfo/>
251
+ <xsd:documentation>Description - string</xsd:documentation>
252
+ </xsd:annotation>
253
+ </xsd:element>
254
+ <xsd:element name="AdditionalInformation" nillable="true" type="xsd:string">
255
+ <xsd:annotation>
256
+ <xsd:appinfo/>
257
+ <xsd:documentation>AdditionalInformation - string</xsd:documentation>
258
+ </xsd:annotation>
259
+ </xsd:element>
260
+ </xsd:sequence>
261
+ </xsd:complexType>
262
+ <xsd:element name="Error" nillable="true" type="tns:Error"/>
263
+ <xsd:complexType name="ArrayOfInformationalMessage">
264
+ <xsd:sequence>
265
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="InformationalMessage" nillable="true" type="tns:InformationalMessage"/>
266
+ </xsd:sequence>
267
+ </xsd:complexType>
268
+ <xsd:element name="ArrayOfInformationalMessage" nillable="true" type="tns:ArrayOfInformationalMessage"/>
269
+ <xsd:complexType name="InformationalMessage">
270
+ <xsd:annotation>
271
+ <xsd:appinfo/>
272
+ <xsd:documentation>InformationalMessage</xsd:documentation>
273
+ </xsd:annotation>
274
+ <xsd:sequence>
275
+ <xsd:element name="Code" nillable="true" type="xsd:string">
276
+ <xsd:annotation>
277
+ <xsd:appinfo/>
278
+ <xsd:documentation>Code - string</xsd:documentation>
279
+ </xsd:annotation>
280
+ </xsd:element>
281
+ <xsd:element name="Message" nillable="true" type="xsd:string">
282
+ <xsd:annotation>
283
+ <xsd:appinfo/>
284
+ <xsd:documentation>Message - string</xsd:documentation>
285
+ </xsd:annotation>
286
+ </xsd:element>
287
+ </xsd:sequence>
288
+ </xsd:complexType>
289
+ <xsd:element name="InformationalMessage" nillable="true" type="tns:InformationalMessage"/>
290
+ <xsd:complexType name="ArrayOfService">
291
+ <xsd:sequence>
292
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="Service" nillable="true" type="tns:Service"/>
293
+ </xsd:sequence>
294
+ </xsd:complexType>
295
+ <xsd:element name="ArrayOfService" nillable="true" type="tns:ArrayOfService"/>
296
+ <xsd:complexType name="Service">
297
+ <xsd:annotation>
298
+ <xsd:appinfo/>
299
+ <xsd:documentation>Service</xsd:documentation>
300
+ </xsd:annotation>
301
+ <xsd:sequence>
302
+ <xsd:element name="ID" nillable="true" type="xsd:string">
303
+ <xsd:annotation>
304
+ <xsd:appinfo/>
305
+ <xsd:documentation>ID - string</xsd:documentation>
306
+ </xsd:annotation>
307
+ </xsd:element>
308
+ <xsd:element name="Description" nillable="true" type="xsd:string">
309
+ <xsd:annotation>
310
+ <xsd:appinfo/>
311
+ <xsd:documentation>Description - string</xsd:documentation>
312
+ </xsd:annotation>
313
+ </xsd:element>
314
+ <xsd:element name="PackageType" nillable="true" type="xsd:string">
315
+ <xsd:annotation>
316
+ <xsd:appinfo/>
317
+ <xsd:documentation>PackageType - string</xsd:documentation>
318
+ </xsd:annotation>
319
+ </xsd:element>
320
+ <xsd:element name="PackageTypeDescription" nillable="true" type="xsd:string">
321
+ <xsd:annotation>
322
+ <xsd:appinfo/>
323
+ <xsd:documentation>PackageTypeDescription - string</xsd:documentation>
324
+ </xsd:annotation>
325
+ </xsd:element>
326
+ <xsd:element minOccurs="0" name="Options" nillable="true" type="tns:ArrayOfOption">
327
+ <xsd:annotation>
328
+ <xsd:appinfo/>
329
+ <xsd:documentation>Options - Option[]</xsd:documentation>
330
+ </xsd:annotation>
331
+ </xsd:element>
332
+ </xsd:sequence>
333
+ </xsd:complexType>
334
+ <xsd:element name="Service" nillable="true" type="tns:Service"/>
335
+ <xsd:complexType name="ArrayOfOption">
336
+ <xsd:sequence>
337
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="Option" nillable="true" type="tns:Option"/>
338
+ </xsd:sequence>
339
+ </xsd:complexType>
340
+ <xsd:element name="ArrayOfOption" nillable="true" type="tns:ArrayOfOption"/>
341
+ <xsd:complexType name="Option">
342
+ <xsd:annotation>
343
+ <xsd:appinfo/>
344
+ <xsd:documentation>Option</xsd:documentation>
345
+ </xsd:annotation>
346
+ <xsd:sequence>
347
+ <xsd:element name="ID" nillable="true" type="xsd:string">
348
+ <xsd:annotation>
349
+ <xsd:appinfo/>
350
+ <xsd:documentation>ID - string</xsd:documentation>
351
+ </xsd:annotation>
352
+ </xsd:element>
353
+ <xsd:element name="Description" nillable="true" type="xsd:string">
354
+ <xsd:annotation>
355
+ <xsd:appinfo/>
356
+ <xsd:documentation>Description - string</xsd:documentation>
357
+ </xsd:annotation>
358
+ </xsd:element>
359
+ <xsd:element name="ValueType" type="tns:ValueType">
360
+ <xsd:annotation>
361
+ <xsd:appinfo/>
362
+ <xsd:documentation>ValueType - ValueType</xsd:documentation>
363
+ </xsd:annotation>
364
+ </xsd:element>
365
+ <xsd:element name="AvailableForPieces" type="xsd:boolean">
366
+ <xsd:annotation>
367
+ <xsd:appinfo/>
368
+ <xsd:documentation>AvailableForPieces - bool</xsd:documentation>
369
+ </xsd:annotation>
370
+ </xsd:element>
371
+ <xsd:element name="PossibleValues" nillable="true" type="tns:ArrayOfOptionValue">
372
+ <xsd:annotation>
373
+ <xsd:appinfo/>
374
+ <xsd:documentation>PossibleValues - OptionValue[]</xsd:documentation>
375
+ </xsd:annotation>
376
+ </xsd:element>
377
+ <xsd:element minOccurs="0" name="ChildServiceOptions" nillable="true" type="tns:ArrayOfOption">
378
+ <xsd:annotation>
379
+ <xsd:appinfo/>
380
+ <xsd:documentation>ChildServiceOptions - Option[]</xsd:documentation>
381
+ </xsd:annotation>
382
+ </xsd:element>
383
+ </xsd:sequence>
384
+ </xsd:complexType>
385
+ <xsd:element name="Option" nillable="true" type="tns:Option"/>
386
+ <xsd:simpleType name="ValueType">
387
+ <xsd:annotation>
388
+ <xsd:appinfo/>
389
+ <xsd:documentation>ValueType - enum</xsd:documentation>
390
+ </xsd:annotation>
391
+ <xsd:restriction base="xsd:string">
392
+ <xsd:enumeration value="String">
393
+ <xsd:annotation>
394
+ <xsd:documentation>String</xsd:documentation>
395
+ </xsd:annotation>
396
+ </xsd:enumeration>
397
+ <xsd:enumeration value="Decimal">
398
+ <xsd:annotation>
399
+ <xsd:documentation>Decimal</xsd:documentation>
400
+ </xsd:annotation>
401
+ </xsd:enumeration>
402
+ <xsd:enumeration value="DateTime">
403
+ <xsd:annotation>
404
+ <xsd:documentation>DateTime</xsd:documentation>
405
+ </xsd:annotation>
406
+ </xsd:enumeration>
407
+ <xsd:enumeration value="Enumeration">
408
+ <xsd:annotation>
409
+ <xsd:documentation>Enumeration</xsd:documentation>
410
+ </xsd:annotation>
411
+ </xsd:enumeration>
412
+ </xsd:restriction>
413
+ </xsd:simpleType>
414
+ <xsd:element name="ValueType" nillable="true" type="tns:ValueType"/>
415
+ <xsd:complexType name="ArrayOfOptionValue">
416
+ <xsd:sequence>
417
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="OptionValue" nillable="true" type="tns:OptionValue"/>
418
+ </xsd:sequence>
419
+ </xsd:complexType>
420
+ <xsd:element name="ArrayOfOptionValue" nillable="true" type="tns:ArrayOfOptionValue"/>
421
+ <xsd:complexType name="OptionValue">
422
+ <xsd:annotation>
423
+ <xsd:appinfo/>
424
+ <xsd:documentation>OptionValue</xsd:documentation>
425
+ </xsd:annotation>
426
+ <xsd:sequence>
427
+ <xsd:element name="Value" nillable="true" type="xsd:string">
428
+ <xsd:annotation>
429
+ <xsd:appinfo/>
430
+ <xsd:documentation>Value - string</xsd:documentation>
431
+ </xsd:annotation>
432
+ </xsd:element>
433
+ <xsd:element name="Description" nillable="true" type="xsd:string">
434
+ <xsd:annotation>
435
+ <xsd:appinfo/>
436
+ <xsd:documentation>Description - string</xsd:documentation>
437
+ </xsd:annotation>
438
+ </xsd:element>
439
+ </xsd:sequence>
440
+ </xsd:complexType>
441
+ <xsd:element name="OptionValue" nillable="true" type="tns:OptionValue"/>
442
+ <xsd:element name="GetServicesOptionsResponse" nillable="true" type="tns:GetServicesOptionsResponseContainer"/>
443
+ <xsd:complexType name="ResponseContext">
444
+ <xsd:annotation>
445
+ <xsd:appinfo/>
446
+ <xsd:documentation>ResponseContext</xsd:documentation>
447
+ </xsd:annotation>
448
+ <xsd:sequence>
449
+ <xsd:element name="ResponseReference" nillable="true" type="xsd:string">
450
+ <xsd:annotation>
451
+ <xsd:appinfo/>
452
+ <xsd:documentation>ResponseReference - string</xsd:documentation>
453
+ </xsd:annotation>
454
+ </xsd:element>
455
+ </xsd:sequence>
456
+ </xsd:complexType>
457
+ <xsd:element name="ResponseContext" nillable="true" type="tns:ResponseContext"/>
458
+ <xsd:complexType name="GetServiceRulesRequestContainer">
459
+ <xsd:annotation>
460
+ <xsd:appinfo/>
461
+ <xsd:documentation>GetServiceRulesRequest</xsd:documentation>
462
+ </xsd:annotation>
463
+ <xsd:complexContent mixed="false">
464
+ <xsd:extension base="tns:RequestContainer">
465
+ <xsd:sequence>
466
+ <xsd:element name="BillingAccountNumber" nillable="true" type="xsd:string">
467
+ <xsd:annotation>
468
+ <xsd:appinfo/>
469
+ <xsd:documentation>BillingAccountNumber - string</xsd:documentation>
470
+ </xsd:annotation>
471
+ </xsd:element>
472
+ <xsd:element name="SenderAddress" nillable="true" type="tns:ShortAddress">
473
+ <xsd:annotation>
474
+ <xsd:appinfo/>
475
+ <xsd:documentation>SenderAddress - Address</xsd:documentation>
476
+ </xsd:annotation>
477
+ </xsd:element>
478
+ <xsd:element name="ReceiverAddress" nillable="true" type="tns:ShortAddress">
479
+ <xsd:annotation>
480
+ <xsd:appinfo/>
481
+ <xsd:documentation>ReceiverAddress - Address</xsd:documentation>
482
+ </xsd:annotation>
483
+ </xsd:element>
484
+ </xsd:sequence>
485
+ </xsd:extension>
486
+ </xsd:complexContent>
487
+ </xsd:complexType>
488
+ <xsd:element name="GetServiceRulesRequestContainer" nillable="true" type="tns:GetServiceRulesRequestContainer"/>
489
+ <xsd:element name="GetServiceRulesRequest" nillable="true" type="tns:GetServiceRulesRequestContainer"/>
490
+ <xsd:complexType name="GetServiceRulesResponseContainer">
491
+ <xsd:annotation>
492
+ <xsd:appinfo/>
493
+ <xsd:documentation>GetServiceRulesResponse</xsd:documentation>
494
+ </xsd:annotation>
495
+ <xsd:complexContent mixed="false">
496
+ <xsd:extension base="tns:ResponseContainer">
497
+ <xsd:sequence>
498
+ <xsd:element minOccurs="0" name="ServiceRules" nillable="true" type="tns:ArrayOfServiceRule">
499
+ <xsd:annotation>
500
+ <xsd:appinfo/>
501
+ <xsd:documentation>ServiceRules - ServiceRules[]</xsd:documentation>
502
+ </xsd:annotation>
503
+ </xsd:element>
504
+ <xsd:element minOccurs="0" name="ServiceOptionRules" nillable="true" type="tns:ArrayOfServiceOptionRules">
505
+ <xsd:annotation>
506
+ <xsd:appinfo/>
507
+ <xsd:documentation>ServiceOptionRules - ServiceOptionRules[]</xsd:documentation>
508
+ </xsd:annotation>
509
+ </xsd:element>
510
+ <xsd:element minOccurs="0" name="OptionRules" nillable="true" type="tns:ArrayOfOptionRule">
511
+ <xsd:annotation>
512
+ <xsd:appinfo/>
513
+ <xsd:documentation>OptionRules - OptionRule[]</xsd:documentation>
514
+ </xsd:annotation>
515
+ </xsd:element>
516
+ </xsd:sequence>
517
+ </xsd:extension>
518
+ </xsd:complexContent>
519
+ </xsd:complexType>
520
+ <xsd:element name="GetServiceRulesResponseContainer" nillable="true" type="tns:GetServiceRulesResponseContainer"/>
521
+ <xsd:complexType name="ArrayOfServiceRule">
522
+ <xsd:sequence>
523
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="ServiceRule" nillable="true" type="tns:ServiceRule"/>
524
+ </xsd:sequence>
525
+ </xsd:complexType>
526
+ <xsd:element name="ArrayOfServiceRule" nillable="true" type="tns:ArrayOfServiceRule"/>
527
+ <xsd:complexType name="ServiceRule">
528
+ <xsd:annotation>
529
+ <xsd:appinfo/>
530
+ <xsd:documentation>ServiceRules</xsd:documentation>
531
+ </xsd:annotation>
532
+ <xsd:sequence>
533
+ <xsd:element name="ServiceID" nillable="true" type="xsd:string">
534
+ <xsd:annotation>
535
+ <xsd:appinfo/>
536
+ <xsd:documentation>ServiceID - string</xsd:documentation>
537
+ </xsd:annotation>
538
+ </xsd:element>
539
+ <xsd:element name="MinimumTotalPieces" type="xsd:int">
540
+ <xsd:annotation>
541
+ <xsd:appinfo/>
542
+ <xsd:documentation>MinimumTotalPieces - int</xsd:documentation>
543
+ </xsd:annotation>
544
+ </xsd:element>
545
+ <xsd:element name="MaximumTotalPieces" type="xsd:int">
546
+ <xsd:annotation>
547
+ <xsd:appinfo/>
548
+ <xsd:documentation>MaximumTotalPieces - int</xsd:documentation>
549
+ </xsd:annotation>
550
+ </xsd:element>
551
+ <xsd:element name="MinimumTotalWeight" nillable="true" type="tns:Weight">
552
+ <xsd:annotation>
553
+ <xsd:appinfo/>
554
+ <xsd:documentation>MinimumTotalWeight - Weight</xsd:documentation>
555
+ </xsd:annotation>
556
+ </xsd:element>
557
+ <xsd:element name="MaximumTotalWeight" nillable="true" type="tns:Weight">
558
+ <xsd:annotation>
559
+ <xsd:appinfo/>
560
+ <xsd:documentation>MaximumTotalWeight - Weight</xsd:documentation>
561
+ </xsd:annotation>
562
+ </xsd:element>
563
+ <xsd:element name="MinimumPieceWeight" nillable="true" type="tns:Weight">
564
+ <xsd:annotation>
565
+ <xsd:appinfo/>
566
+ <xsd:documentation>MinimumPieceWeight - Weight</xsd:documentation>
567
+ </xsd:annotation>
568
+ </xsd:element>
569
+ <xsd:element name="MaximumPieceWeight" nillable="true" type="tns:Weight">
570
+ <xsd:annotation>
571
+ <xsd:appinfo/>
572
+ <xsd:documentation>MaximumPieceWeight - Weight</xsd:documentation>
573
+ </xsd:annotation>
574
+ </xsd:element>
575
+ <xsd:element minOccurs="0" name="MinimumPieceLength" nillable="true" type="tns:Dimension">
576
+ <xsd:annotation>
577
+ <xsd:appinfo/>
578
+ <xsd:documentation>MinimumPieceLength - Dimension</xsd:documentation>
579
+ </xsd:annotation>
580
+ </xsd:element>
581
+ <xsd:element minOccurs="0" name="MaximumPieceLength" nillable="true" type="tns:Dimension">
582
+ <xsd:annotation>
583
+ <xsd:appinfo/>
584
+ <xsd:documentation>MaximumPieceLength - Dimension</xsd:documentation>
585
+ </xsd:annotation>
586
+ </xsd:element>
587
+ <xsd:element minOccurs="0" name="MinimumPieceWidth" nillable="true" type="tns:Dimension">
588
+ <xsd:annotation>
589
+ <xsd:appinfo/>
590
+ <xsd:documentation>MinimumPieceWidth - Dimension</xsd:documentation>
591
+ </xsd:annotation>
592
+ </xsd:element>
593
+ <xsd:element minOccurs="0" name="MaximumPieceWidth" nillable="true" type="tns:Dimension">
594
+ <xsd:annotation>
595
+ <xsd:appinfo/>
596
+ <xsd:documentation>MaximumPieceWidth - Dimension</xsd:documentation>
597
+ </xsd:annotation>
598
+ </xsd:element>
599
+ <xsd:element minOccurs="0" name="MinimumPieceHeight" nillable="true" type="tns:Dimension">
600
+ <xsd:annotation>
601
+ <xsd:appinfo/>
602
+ <xsd:documentation>MinimumPieceHeight - Dimension</xsd:documentation>
603
+ </xsd:annotation>
604
+ </xsd:element>
605
+ <xsd:element minOccurs="0" name="MaximumPieceHeight" nillable="true" type="tns:Dimension">
606
+ <xsd:annotation>
607
+ <xsd:appinfo/>
608
+ <xsd:documentation>MaximumPieceHeight - Dimension</xsd:documentation>
609
+ </xsd:annotation>
610
+ </xsd:element>
611
+ <xsd:element minOccurs="0" name="MaximumSize" nillable="true" type="tns:Dimension">
612
+ <xsd:annotation>
613
+ <xsd:appinfo/>
614
+ <xsd:documentation>MaximumSize - Size</xsd:documentation>
615
+ </xsd:annotation>
616
+ </xsd:element>
617
+ <xsd:element minOccurs="0" name="MaximumDeclaredValue" type="xsd:decimal">
618
+ <xsd:annotation>
619
+ <xsd:appinfo/>
620
+ <xsd:documentation>MaximumDeclaredValue - decimal</xsd:documentation>
621
+ </xsd:annotation>
622
+ </xsd:element>
623
+ </xsd:sequence>
624
+ </xsd:complexType>
625
+ <xsd:element name="ServiceRule" nillable="true" type="tns:ServiceRule"/>
626
+ <xsd:complexType name="Weight">
627
+ <xsd:annotation>
628
+ <xsd:appinfo/>
629
+ <xsd:documentation>Weight</xsd:documentation>
630
+ </xsd:annotation>
631
+ <xsd:sequence>
632
+ <xsd:element name="Value" nillable="true" type="xsd:decimal">
633
+ <xsd:annotation>
634
+ <xsd:appinfo/>
635
+ <xsd:documentation>Value - decimal</xsd:documentation>
636
+ </xsd:annotation>
637
+ </xsd:element>
638
+ <xsd:element name="WeightUnit" type="tns:WeightUnit">
639
+ <xsd:annotation>
640
+ <xsd:appinfo/>
641
+ <xsd:documentation>WeightUnit - WeightUnit</xsd:documentation>
642
+ </xsd:annotation>
643
+ </xsd:element>
644
+ </xsd:sequence>
645
+ </xsd:complexType>
646
+ <xsd:element name="Weight" nillable="true" type="tns:Weight"/>
647
+ <xsd:simpleType name="WeightUnit">
648
+ <xsd:annotation>
649
+ <xsd:appinfo/>
650
+ <xsd:documentation>WeightUnit - enum</xsd:documentation>
651
+ </xsd:annotation>
652
+ <xsd:restriction base="xsd:string">
653
+ <xsd:enumeration value="lb">
654
+ <xsd:annotation>
655
+ <xsd:documentation>lb</xsd:documentation>
656
+ </xsd:annotation>
657
+ </xsd:enumeration>
658
+ <xsd:enumeration value="kg">
659
+ <xsd:annotation>
660
+ <xsd:documentation>kg</xsd:documentation>
661
+ </xsd:annotation>
662
+ </xsd:enumeration>
663
+ </xsd:restriction>
664
+ </xsd:simpleType>
665
+ <xsd:element name="WeightUnit" nillable="true" type="tns:WeightUnit"/>
666
+ <xsd:complexType name="Dimension">
667
+ <xsd:annotation>
668
+ <xsd:appinfo/>
669
+ <xsd:documentation>Dimension</xsd:documentation>
670
+ </xsd:annotation>
671
+ <xsd:sequence>
672
+ <xsd:element name="Value" nillable="true" type="xsd:decimal">
673
+ <xsd:annotation>
674
+ <xsd:appinfo/>
675
+ <xsd:documentation>Value - decimal</xsd:documentation>
676
+ </xsd:annotation>
677
+ </xsd:element>
678
+ <xsd:element name="DimensionUnit" type="tns:DimensionUnit">
679
+ <xsd:annotation>
680
+ <xsd:appinfo/>
681
+ <xsd:documentation>DimensionUnit - DimensionUnit</xsd:documentation>
682
+ </xsd:annotation>
683
+ </xsd:element>
684
+ </xsd:sequence>
685
+ </xsd:complexType>
686
+ <xsd:element name="Dimension" nillable="true" type="tns:Dimension"/>
687
+ <xsd:simpleType name="DimensionUnit">
688
+ <xsd:annotation>
689
+ <xsd:appinfo/>
690
+ <xsd:documentation>DimensionUnit - enum</xsd:documentation>
691
+ </xsd:annotation>
692
+ <xsd:restriction base="xsd:string">
693
+ <xsd:enumeration value="in">
694
+ <xsd:annotation>
695
+ <xsd:documentation>in</xsd:documentation>
696
+ </xsd:annotation>
697
+ </xsd:enumeration>
698
+ <xsd:enumeration value="cm">
699
+ <xsd:annotation>
700
+ <xsd:documentation>cm</xsd:documentation>
701
+ </xsd:annotation>
702
+ </xsd:enumeration>
703
+ </xsd:restriction>
704
+ </xsd:simpleType>
705
+ <xsd:element name="DimensionUnit" nillable="true" type="tns:DimensionUnit"/>
706
+ <xsd:complexType name="ArrayOfServiceOptionRules">
707
+ <xsd:sequence>
708
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="ServiceOptionRules" nillable="true" type="tns:ServiceOptionRules"/>
709
+ </xsd:sequence>
710
+ </xsd:complexType>
711
+ <xsd:element name="ArrayOfServiceOptionRules" nillable="true" type="tns:ArrayOfServiceOptionRules"/>
712
+ <xsd:complexType name="ServiceOptionRules">
713
+ <xsd:annotation>
714
+ <xsd:appinfo/>
715
+ <xsd:documentation>ServiceOptionRules</xsd:documentation>
716
+ </xsd:annotation>
717
+ <xsd:sequence>
718
+ <xsd:element name="ServiceID" nillable="true" type="xsd:string">
719
+ <xsd:annotation>
720
+ <xsd:appinfo/>
721
+ <xsd:documentation>ServiceID - string</xsd:documentation>
722
+ </xsd:annotation>
723
+ </xsd:element>
724
+ <xsd:element minOccurs="0" name="Exclusions" nillable="true" type="tns:ArrayOfOptionIDValuePair">
725
+ <xsd:annotation>
726
+ <xsd:appinfo/>
727
+ <xsd:documentation>Exclusions - OptionIDValuePair[]</xsd:documentation>
728
+ </xsd:annotation>
729
+ </xsd:element>
730
+ <xsd:element minOccurs="0" name="Inclusions" nillable="true" type="tns:ArrayOfOptionIDValuePair">
731
+ <xsd:annotation>
732
+ <xsd:appinfo/>
733
+ <xsd:documentation>Inclusions - OptionIDValuePair[]</xsd:documentation>
734
+ </xsd:annotation>
735
+ </xsd:element>
736
+ </xsd:sequence>
737
+ </xsd:complexType>
738
+ <xsd:element name="ServiceOptionRules" nillable="true" type="tns:ServiceOptionRules"/>
739
+ <xsd:complexType name="ArrayOfOptionIDValuePair">
740
+ <xsd:sequence>
741
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="OptionIDValuePair" nillable="true" type="tns:OptionIDValuePair"/>
742
+ </xsd:sequence>
743
+ </xsd:complexType>
744
+ <xsd:element name="ArrayOfOptionIDValuePair" nillable="true" type="tns:ArrayOfOptionIDValuePair"/>
745
+ <xsd:complexType name="OptionIDValuePair">
746
+ <xsd:annotation>
747
+ <xsd:appinfo/>
748
+ <xsd:documentation>OptionIDValuePair</xsd:documentation>
749
+ </xsd:annotation>
750
+ <xsd:sequence>
751
+ <xsd:element name="ID" nillable="true" type="xsd:string">
752
+ <xsd:annotation>
753
+ <xsd:appinfo/>
754
+ <xsd:documentation>ID - string</xsd:documentation>
755
+ </xsd:annotation>
756
+ </xsd:element>
757
+ <xsd:element name="Value" nillable="true" type="xsd:string">
758
+ <xsd:annotation>
759
+ <xsd:appinfo/>
760
+ <xsd:documentation>Value - string</xsd:documentation>
761
+ </xsd:annotation>
762
+ </xsd:element>
763
+ </xsd:sequence>
764
+ </xsd:complexType>
765
+ <xsd:element name="OptionIDValuePair" nillable="true" type="tns:OptionIDValuePair"/>
766
+ <xsd:complexType name="ArrayOfOptionRule">
767
+ <xsd:sequence>
768
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="OptionRule" nillable="true" type="tns:OptionRule"/>
769
+ </xsd:sequence>
770
+ </xsd:complexType>
771
+ <xsd:element name="ArrayOfOptionRule" nillable="true" type="tns:ArrayOfOptionRule"/>
772
+ <xsd:complexType name="OptionRule">
773
+ <xsd:annotation>
774
+ <xsd:appinfo/>
775
+ <xsd:documentation>OptionRule</xsd:documentation>
776
+ </xsd:annotation>
777
+ <xsd:sequence>
778
+ <xsd:element name="OptionIDValuePair" nillable="true" type="tns:OptionIDValuePair">
779
+ <xsd:annotation>
780
+ <xsd:appinfo/>
781
+ <xsd:documentation>OptionIDValuePair - OptionIDValuePair</xsd:documentation>
782
+ </xsd:annotation>
783
+ </xsd:element>
784
+ <xsd:element minOccurs="0" name="Exclusions" nillable="true" type="tns:ArrayOfOptionIDValuePair">
785
+ <xsd:annotation>
786
+ <xsd:appinfo/>
787
+ <xsd:documentation>Exclusions - OptionIDValuePair[]</xsd:documentation>
788
+ </xsd:annotation>
789
+ </xsd:element>
790
+ <xsd:element minOccurs="0" name="Inclusions" nillable="true" type="tns:ArrayOfOptionIDValuePair">
791
+ <xsd:annotation>
792
+ <xsd:appinfo/>
793
+ <xsd:documentation>Inclusions - OptionIDValuePair[]</xsd:documentation>
794
+ </xsd:annotation>
795
+ </xsd:element>
796
+ </xsd:sequence>
797
+ </xsd:complexType>
798
+ <xsd:element name="OptionRule" nillable="true" type="tns:OptionRule"/>
799
+ <xsd:element name="GetServiceRulesResponse" nillable="true" type="tns:GetServiceRulesResponseContainer"/>
800
+ <xsd:complexType name="ValidateCityPostalCodeZipRequestContainer">
801
+ <xsd:annotation>
802
+ <xsd:appinfo/>
803
+ <xsd:documentation>ValidateCityPostalCodeZipRequest</xsd:documentation>
804
+ </xsd:annotation>
805
+ <xsd:complexContent mixed="false">
806
+ <xsd:extension base="tns:RequestContainer">
807
+ <xsd:sequence>
808
+ <xsd:element name="Addresses" nillable="true" type="tns:ArrayOfShortAddress">
809
+ <xsd:annotation>
810
+ <xsd:appinfo/>
811
+ <xsd:documentation>SenderAddress - ShortAddress[]</xsd:documentation>
812
+ </xsd:annotation>
813
+ </xsd:element>
814
+ </xsd:sequence>
815
+ </xsd:extension>
816
+ </xsd:complexContent>
817
+ </xsd:complexType>
818
+ <xsd:element name="ValidateCityPostalCodeZipRequestContainer" nillable="true" type="tns:ValidateCityPostalCodeZipRequestContainer"/>
819
+ <xsd:complexType name="ArrayOfShortAddress">
820
+ <xsd:sequence>
821
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="ShortAddress" nillable="true" type="tns:ShortAddress"/>
822
+ </xsd:sequence>
823
+ </xsd:complexType>
824
+ <xsd:element name="ArrayOfShortAddress" nillable="true" type="tns:ArrayOfShortAddress"/>
825
+ <xsd:element name="ValidateCityPostalCodeZipRequest" nillable="true" type="tns:ValidateCityPostalCodeZipRequestContainer"/>
826
+ <xsd:complexType name="ValidateCityPostalCodeZipResponseContainer">
827
+ <xsd:annotation>
828
+ <xsd:appinfo/>
829
+ <xsd:documentation>ValidateCityPostalCodeZipResponse</xsd:documentation>
830
+ </xsd:annotation>
831
+ <xsd:complexContent mixed="false">
832
+ <xsd:extension base="tns:ResponseContainer">
833
+ <xsd:sequence>
834
+ <xsd:element minOccurs="0" name="SuggestedAddresses" nillable="true" type="tns:ArrayOfSuggestedAddress">
835
+ <xsd:annotation>
836
+ <xsd:appinfo/>
837
+ <xsd:documentation>SuggestedAddresses - SuggestedAddress[]</xsd:documentation>
838
+ </xsd:annotation>
839
+ </xsd:element>
840
+ </xsd:sequence>
841
+ </xsd:extension>
842
+ </xsd:complexContent>
843
+ </xsd:complexType>
844
+ <xsd:element name="ValidateCityPostalCodeZipResponseContainer" nillable="true" type="tns:ValidateCityPostalCodeZipResponseContainer"/>
845
+ <xsd:complexType name="ArrayOfSuggestedAddress">
846
+ <xsd:sequence>
847
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="SuggestedAddress" nillable="true" type="tns:SuggestedAddress"/>
848
+ </xsd:sequence>
849
+ </xsd:complexType>
850
+ <xsd:element name="ArrayOfSuggestedAddress" nillable="true" type="tns:ArrayOfSuggestedAddress"/>
851
+ <xsd:complexType name="SuggestedAddress">
852
+ <xsd:annotation>
853
+ <xsd:appinfo/>
854
+ <xsd:documentation>SuggestedShortAddress</xsd:documentation>
855
+ </xsd:annotation>
856
+ <xsd:sequence>
857
+ <xsd:element name="Address" nillable="true" type="tns:ShortAddress">
858
+ <xsd:annotation>
859
+ <xsd:appinfo/>
860
+ <xsd:documentation>SuggestedAddress - ShortAddress</xsd:documentation>
861
+ </xsd:annotation>
862
+ </xsd:element>
863
+ <xsd:element name="ResponseInformation" nillable="true" type="tns:ResponseInformation">
864
+ <xsd:annotation>
865
+ <xsd:appinfo/>
866
+ <xsd:documentation>ResponseInformation - ResponseInformation</xsd:documentation>
867
+ </xsd:annotation>
868
+ </xsd:element>
869
+ </xsd:sequence>
870
+ </xsd:complexType>
871
+ <xsd:element name="SuggestedAddress" nillable="true" type="tns:SuggestedAddress"/>
872
+ <xsd:element name="ValidateCityPostalCodeZipResponse" nillable="true" type="tns:ValidateCityPostalCodeZipResponseContainer"/>
873
+ </xsd:schema>
874
+ <xsd:schema elementFormDefault="qualified" targetNamespace="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation" xmlns:tns="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation">
875
+ <xsd:complexType name="ValidationFault">
876
+ <xsd:annotation>
877
+ <xsd:appinfo/>
878
+ <xsd:documentation>This class is used to return information to a WCF client when validation fails on a service parameter.</xsd:documentation>
879
+ </xsd:annotation>
880
+ <xsd:sequence>
881
+ <xsd:element minOccurs="0" name="Details" nillable="true" type="q1:ArrayOfValidationDetail" xmlns:q1="http://schemas.datacontract.org/2004/07/Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF">
882
+ <xsd:annotation>
883
+ <xsd:appinfo/>
884
+ <xsd:documentation/>
885
+ </xsd:annotation>
886
+ </xsd:element>
887
+ </xsd:sequence>
888
+ </xsd:complexType>
889
+ <xsd:element name="ValidationFault" nillable="true" type="tns:ValidationFault"/>
890
+ </xsd:schema>
891
+ <xsd:schema elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF" xmlns:tns="http://schemas.datacontract.org/2004/07/Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WCF">
892
+ <xsd:complexType name="ArrayOfValidationDetail">
893
+ <xsd:sequence>
894
+ <xsd:element minOccurs="0" maxOccurs="unbounded" name="ValidationDetail" nillable="true" type="tns:ValidationDetail"/>
895
+ </xsd:sequence>
896
+ </xsd:complexType>
897
+ <xsd:element name="ArrayOfValidationDetail" nillable="true" type="tns:ArrayOfValidationDetail"/>
898
+ <xsd:complexType name="ValidationDetail">
899
+ <xsd:annotation>
900
+ <xsd:appinfo/>
901
+ <xsd:documentation>This class holds the results of a single validation. Effectively, it's the same as a ValidationResult, but creating a separate class allows us to mark up a DataContract with impunity.</xsd:documentation>
902
+ </xsd:annotation>
903
+ <xsd:sequence>
904
+ <xsd:element minOccurs="0" name="Key" nillable="true" type="xsd:string">
905
+ <xsd:annotation>
906
+ <xsd:appinfo/>
907
+ <xsd:documentation>Get or set a name describing the location of the validation result.</xsd:documentation>
908
+ </xsd:annotation>
909
+ </xsd:element>
910
+ <xsd:element minOccurs="0" name="Message" nillable="true" type="xsd:string">
911
+ <xsd:annotation>
912
+ <xsd:appinfo/>
913
+ <xsd:documentation>Get or set a message describing the validation failure.</xsd:documentation>
914
+ </xsd:annotation>
915
+ </xsd:element>
916
+ <xsd:element minOccurs="0" name="Tag" nillable="true" type="xsd:string">
917
+ <xsd:annotation>
918
+ <xsd:appinfo/>
919
+ <xsd:documentation>Get or set a value characterizing the fault.</xsd:documentation>
920
+ </xsd:annotation>
921
+ </xsd:element>
922
+ </xsd:sequence>
923
+ </xsd:complexType>
924
+ <xsd:element name="ValidationDetail" nillable="true" type="tns:ValidationDetail"/>
925
+ </xsd:schema>
926
+ </wsdl:types>
927
+ <wsdl:message name="GetServicesOptionsRequest">
928
+ <wsdl:part name="GetServicesOptionsRequest" element="q2:GetServicesOptionsRequest" xmlns:q2="http://purolator.com/pws/datatypes/v1"/>
929
+ </wsdl:message>
930
+ <wsdl:message name="GetServicesOptionsRequest_Headers">
931
+ <wsdl:part name="RequestContext" element="q3:RequestContext" xmlns:q3="http://purolator.com/pws/datatypes/v1"/>
932
+ </wsdl:message>
933
+ <wsdl:message name="GetServicesOptionsResponse">
934
+ <wsdl:part name="GetServicesOptionsResponse" element="q4:GetServicesOptionsResponse" xmlns:q4="http://purolator.com/pws/datatypes/v1"/>
935
+ </wsdl:message>
936
+ <wsdl:message name="GetServicesOptionsResponse_Headers">
937
+ <wsdl:part name="ResponseContext" element="q5:ResponseContext" xmlns:q5="http://purolator.com/pws/datatypes/v1"/>
938
+ </wsdl:message>
939
+ <wsdl:message name="ServiceAvailabilityServiceContract_GetServicesOptions_ValidationFaultFault_FaultMessage">
940
+ <wsdl:part name="detail" element="q6:ValidationFault" xmlns:q6="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation"/>
941
+ </wsdl:message>
942
+ <wsdl:message name="GetServiceRulesRequest">
943
+ <wsdl:part name="GetServiceRulesRequest" element="q7:GetServiceRulesRequest" xmlns:q7="http://purolator.com/pws/datatypes/v1"/>
944
+ </wsdl:message>
945
+ <wsdl:message name="GetServiceRulesRequest_Headers">
946
+ <wsdl:part name="RequestContext" element="q8:RequestContext" xmlns:q8="http://purolator.com/pws/datatypes/v1"/>
947
+ </wsdl:message>
948
+ <wsdl:message name="GetServiceRulesResponse">
949
+ <wsdl:part name="GetServiceRulesResponse" element="q9:GetServiceRulesResponse" xmlns:q9="http://purolator.com/pws/datatypes/v1"/>
950
+ </wsdl:message>
951
+ <wsdl:message name="GetServiceRulesResponse_Headers">
952
+ <wsdl:part name="ResponseContext" element="q10:ResponseContext" xmlns:q10="http://purolator.com/pws/datatypes/v1"/>
953
+ </wsdl:message>
954
+ <wsdl:message name="ServiceAvailabilityServiceContract_GetServiceRules_ValidationFaultFault_FaultMessage">
955
+ <wsdl:part name="detail" element="q11:ValidationFault" xmlns:q11="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation"/>
956
+ </wsdl:message>
957
+ <wsdl:message name="ValidateCityPostalCodeZipRequest">
958
+ <wsdl:part name="ValidateCityPostalCodeZipRequest" element="q12:ValidateCityPostalCodeZipRequest" xmlns:q12="http://purolator.com/pws/datatypes/v1"/>
959
+ </wsdl:message>
960
+ <wsdl:message name="ValidateCityPostalCodeZipRequest_Headers">
961
+ <wsdl:part name="RequestContext" element="q13:RequestContext" xmlns:q13="http://purolator.com/pws/datatypes/v1"/>
962
+ </wsdl:message>
963
+ <wsdl:message name="ValidateCityPostalCodeZipResponse">
964
+ <wsdl:part name="ValidateCityPostalCodeZipResponse" element="q14:ValidateCityPostalCodeZipResponse" xmlns:q14="http://purolator.com/pws/datatypes/v1"/>
965
+ </wsdl:message>
966
+ <wsdl:message name="ValidateCityPostalCodeZipResponse_Headers">
967
+ <wsdl:part name="ResponseContext" element="q15:ResponseContext" xmlns:q15="http://purolator.com/pws/datatypes/v1"/>
968
+ </wsdl:message>
969
+ <wsdl:message name="ServiceAvailabilityServiceContract_ValidateCityPostalCodeZip_ValidationFaultFault_FaultMessage">
970
+ <wsdl:part name="detail" element="q16:ValidationFault" xmlns:q16="http://www.microsoft.com/practices/EnterpriseLibrary/2007/01/wcf/validation"/>
971
+ </wsdl:message>
972
+ <wsdl:portType name="ServiceAvailabilityServiceContract">
973
+ <wsdl:documentation>Service Contract Class - ServiceAvailabilityServiceContract</wsdl:documentation>
974
+ <wsdl:operation name="GetServicesOptions">
975
+ <wsdl:documentation>
976
+ GetServicesOptions
977
+ @param request GetServicesOptionsRequest
978
+ @return GetServicesOptionsResponse
979
+ </wsdl:documentation>
980
+ <wsdl:input wsaw:Action="http://purolator.com/pws/service/v1/GetServicesOptions" name="GetServicesOptionsRequest" message="tns:GetServicesOptionsRequest"/>
981
+ <wsdl:output wsaw:Action="http://purolator.com/pws/service/v1/ServiceAvailabilityServiceContract/GetServicesOptionsResponse" name="GetServicesOptionsResponse" message="tns:GetServicesOptionsResponse"/>
982
+ <wsdl:fault wsaw:Action="http://purolator.com/pws/service/v1/ServiceAvailabilityServiceContract/GetServicesOptionsValidationFaultFault" name="ValidationFaultFault" message="tns:ServiceAvailabilityServiceContract_GetServicesOptions_ValidationFaultFault_FaultMessage"/>
983
+ </wsdl:operation>
984
+ <wsdl:operation name="GetServiceRules">
985
+ <wsdl:documentation>
986
+ GetServiceRules
987
+ @param request GetServiceRulesRequest
988
+ @return GetServiceRulesResponse
989
+ </wsdl:documentation>
990
+ <wsdl:input wsaw:Action="http://purolator.com/pws/service/v1/GetServiceRules" name="GetServiceRulesRequest" message="tns:GetServiceRulesRequest"/>
991
+ <wsdl:output wsaw:Action="http://purolator.com/pws/service/v1/ServiceAvailabilityServiceContract/GetServiceRulesResponse" name="GetServiceRulesResponse" message="tns:GetServiceRulesResponse"/>
992
+ <wsdl:fault wsaw:Action="http://purolator.com/pws/service/v1/ServiceAvailabilityServiceContract/GetServiceRulesValidationFaultFault" name="ValidationFaultFault" message="tns:ServiceAvailabilityServiceContract_GetServiceRules_ValidationFaultFault_FaultMessage"/>
993
+ </wsdl:operation>
994
+ <wsdl:operation name="ValidateCityPostalCodeZip">
995
+ <wsdl:documentation>
996
+ ValidateCityPostalCodeZip
997
+ @param request ValidateCityPostalCodeZipRequest
998
+ @return ValidateCityPostalCodeZipResponse
999
+ </wsdl:documentation>
1000
+ <wsdl:input wsaw:Action="http://purolator.com/pws/service/v1/ValidateCityPostalCodeZip" name="ValidateCityPostalCodeZipRequest" message="tns:ValidateCityPostalCodeZipRequest"/>
1001
+ <wsdl:output wsaw:Action="http://purolator.com/pws/service/v1/ServiceAvailabilityServiceContract/ValidateCityPostalCodeZipResponse" name="ValidateCityPostalCodeZipResponse" message="tns:ValidateCityPostalCodeZipResponse"/>
1002
+ <wsdl:fault wsaw:Action="http://purolator.com/pws/service/v1/ServiceAvailabilityServiceContract/ValidateCityPostalCodeZipValidationFaultFault" name="ValidationFaultFault" message="tns:ServiceAvailabilityServiceContract_ValidateCityPostalCodeZip_ValidationFaultFault_FaultMessage"/>
1003
+ </wsdl:operation>
1004
+ </wsdl:portType>
1005
+ <wsdl:binding name="ServiceAvailabilityServiceEndpoint" type="tns:ServiceAvailabilityServiceContract">
1006
+ <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
1007
+ <wsdl:operation name="GetServicesOptions">
1008
+ <soap:operation soapAction="http://purolator.com/pws/service/v1/GetServicesOptions" style="document"/>
1009
+ <wsdl:input name="GetServicesOptionsRequest">
1010
+ <soap:header message="tns:GetServicesOptionsRequest_Headers" part="RequestContext" use="literal"/>
1011
+ <soap:body use="literal"/>
1012
+ </wsdl:input>
1013
+ <wsdl:output name="GetServicesOptionsResponse">
1014
+ <soap:header message="tns:GetServicesOptionsResponse_Headers" part="ResponseContext" use="literal"/>
1015
+ <soap:body use="literal"/>
1016
+ </wsdl:output>
1017
+ <wsdl:fault name="ValidationFaultFault">
1018
+ <soap:fault name="ValidationFaultFault" use="literal"/>
1019
+ </wsdl:fault>
1020
+ </wsdl:operation>
1021
+ <wsdl:operation name="GetServiceRules">
1022
+ <soap:operation soapAction="http://purolator.com/pws/service/v1/GetServiceRules" style="document"/>
1023
+ <wsdl:input name="GetServiceRulesRequest">
1024
+ <soap:header message="tns:GetServiceRulesRequest_Headers" part="RequestContext" use="literal"/>
1025
+ <soap:body use="literal"/>
1026
+ </wsdl:input>
1027
+ <wsdl:output name="GetServiceRulesResponse">
1028
+ <soap:header message="tns:GetServiceRulesResponse_Headers" part="ResponseContext" use="literal"/>
1029
+ <soap:body use="literal"/>
1030
+ </wsdl:output>
1031
+ <wsdl:fault name="ValidationFaultFault">
1032
+ <soap:fault name="ValidationFaultFault" use="literal"/>
1033
+ </wsdl:fault>
1034
+ </wsdl:operation>
1035
+ <wsdl:operation name="ValidateCityPostalCodeZip">
1036
+ <soap:operation soapAction="http://purolator.com/pws/service/v1/ValidateCityPostalCodeZip" style="document"/>
1037
+ <wsdl:input name="ValidateCityPostalCodeZipRequest">
1038
+ <soap:header message="tns:ValidateCityPostalCodeZipRequest_Headers" part="RequestContext" use="literal"/>
1039
+ <soap:body use="literal"/>
1040
+ </wsdl:input>
1041
+ <wsdl:output name="ValidateCityPostalCodeZipResponse">
1042
+ <soap:header message="tns:ValidateCityPostalCodeZipResponse_Headers" part="ResponseContext" use="literal"/>
1043
+ <soap:body use="literal"/>
1044
+ </wsdl:output>
1045
+ <wsdl:fault name="ValidationFaultFault">
1046
+ <soap:fault name="ValidationFaultFault" use="literal"/>
1047
+ </wsdl:fault>
1048
+ </wsdl:operation>
1049
+ </wsdl:binding>
1050
+ <wsdl:service name="ServiceAvailabilityService">
1051
+ <wsdl:port name="ServiceAvailabilityServiceEndpoint" binding="tns:ServiceAvailabilityServiceEndpoint">
1052
+ <soap:address location="https://devwebservices.purolator.com/EWS/V1/ServiceAvailability/ServiceAvailabilityService.asmx"/>
1053
+ </wsdl:port>
1054
+ </wsdl:service>
1055
+ </wsdl:definitions>