karrio-fedex 2025.5rc1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. karrio/mappers/fedex/__init__.py +3 -0
  2. karrio/mappers/fedex/mapper.py +89 -0
  3. karrio/mappers/fedex/proxy.py +144 -0
  4. karrio/mappers/fedex/settings.py +24 -0
  5. karrio/plugins/fedex/__init__.py +23 -0
  6. karrio/providers/fedex/__init__.py +24 -0
  7. karrio/providers/fedex/document.py +88 -0
  8. karrio/providers/fedex/error.py +66 -0
  9. karrio/providers/fedex/pickup/__init__.py +9 -0
  10. karrio/providers/fedex/pickup/cancel.py +79 -0
  11. karrio/providers/fedex/pickup/create.py +148 -0
  12. karrio/providers/fedex/pickup/update.py +162 -0
  13. karrio/providers/fedex/rate.py +357 -0
  14. karrio/providers/fedex/shipment/__init__.py +9 -0
  15. karrio/providers/fedex/shipment/cancel.py +46 -0
  16. karrio/providers/fedex/shipment/create.py +748 -0
  17. karrio/providers/fedex/tracking.py +154 -0
  18. karrio/providers/fedex/units.py +501 -0
  19. karrio/providers/fedex/utils.py +199 -0
  20. karrio/schemas/fedex/__init__.py +0 -0
  21. karrio/schemas/fedex/cancel_pickup_request.py +31 -0
  22. karrio/schemas/fedex/cancel_pickup_response.py +24 -0
  23. karrio/schemas/fedex/cancel_request.py +17 -0
  24. karrio/schemas/fedex/cancel_response.py +25 -0
  25. karrio/schemas/fedex/error_response.py +16 -0
  26. karrio/schemas/fedex/paperless_request.py +30 -0
  27. karrio/schemas/fedex/paperless_response.py +21 -0
  28. karrio/schemas/fedex/pickup_request.py +106 -0
  29. karrio/schemas/fedex/pickup_response.py +25 -0
  30. karrio/schemas/fedex/rating_request.py +478 -0
  31. karrio/schemas/fedex/rating_responses.py +208 -0
  32. karrio/schemas/fedex/shipping_request.py +731 -0
  33. karrio/schemas/fedex/shipping_responses.py +584 -0
  34. karrio/schemas/fedex/tracking_document_request.py +30 -0
  35. karrio/schemas/fedex/tracking_document_response.py +30 -0
  36. karrio/schemas/fedex/tracking_request.py +23 -0
  37. karrio/schemas/fedex/tracking_response.py +350 -0
  38. karrio_fedex-2025.5rc1.dist-info/METADATA +45 -0
  39. karrio_fedex-2025.5rc1.dist-info/RECORD +42 -0
  40. karrio_fedex-2025.5rc1.dist-info/WHEEL +5 -0
  41. karrio_fedex-2025.5rc1.dist-info/entry_points.txt +2 -0
  42. karrio_fedex-2025.5rc1.dist-info/top_level.txt +3 -0
@@ -0,0 +1,478 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class RatingRequestAccountNumberType:
8
+ value: typing.Optional[str] = None
9
+
10
+
11
+ @attr.s(auto_attribs=True)
12
+ class RateRequestControlParametersType:
13
+ returnTransitTimes: typing.Optional[bool] = None
14
+ servicesNeededOnRateFailure: typing.Optional[bool] = None
15
+ variableOptions: typing.Optional[str] = None
16
+ rateSortOrder: typing.Optional[str] = None
17
+
18
+
19
+ @attr.s(auto_attribs=True)
20
+ class RecipientAccountNumberType:
21
+ value: typing.Optional[int] = None
22
+
23
+
24
+ @attr.s(auto_attribs=True)
25
+ class BrokerAddressType:
26
+ streetLines: typing.Optional[typing.List[str]] = None
27
+ countryCode: typing.Optional[str] = None
28
+
29
+
30
+ @attr.s(auto_attribs=True)
31
+ class RecipientContactType:
32
+ companyName: typing.Optional[str] = None
33
+ faxNumber: typing.Optional[str] = None
34
+ personName: typing.Optional[str] = None
35
+ phoneNumber: typing.Optional[str] = None
36
+
37
+
38
+ @attr.s(auto_attribs=True)
39
+ class BrokerClassType:
40
+ accountNumber: typing.Optional[RecipientAccountNumberType] = jstruct.JStruct[RecipientAccountNumberType]
41
+ address: typing.Optional[BrokerAddressType] = jstruct.JStruct[BrokerAddressType]
42
+ contact: typing.Optional[RecipientContactType] = jstruct.JStruct[RecipientContactType]
43
+
44
+
45
+ @attr.s(auto_attribs=True)
46
+ class BrokerAddressClassType:
47
+ streetLines: typing.Optional[typing.List[str]] = None
48
+ city: typing.Optional[str] = None
49
+ stateOrProvinceCode: typing.Optional[str] = None
50
+ postalCode: typing.Optional[int] = None
51
+ countryCode: typing.Optional[str] = None
52
+ residential: typing.Optional[bool] = None
53
+ classification: typing.Optional[str] = None
54
+ geographicCoordinates: typing.Optional[str] = None
55
+ urbanizationCode: typing.Optional[str] = None
56
+ countryName: typing.Optional[str] = None
57
+
58
+
59
+ @attr.s(auto_attribs=True)
60
+ class BrokerType:
61
+ broker: typing.Optional[BrokerClassType] = jstruct.JStruct[BrokerClassType]
62
+ type: typing.Optional[str] = None
63
+ brokerCommitTimestamp: typing.Optional[str] = None
64
+ brokerCommitDayOfWeek: typing.Optional[str] = None
65
+ brokerLocationId: typing.Optional[str] = None
66
+ brokerAddress: typing.Optional[BrokerAddressClassType] = jstruct.JStruct[BrokerAddressClassType]
67
+ brokerToDestinationDays: typing.Optional[int] = None
68
+
69
+
70
+ @attr.s(auto_attribs=True)
71
+ class CommercialInvoiceType:
72
+ shipmentPurpose: typing.Optional[str] = None
73
+
74
+
75
+ @attr.s(auto_attribs=True)
76
+ class FixedValueType:
77
+ amount: typing.Optional[int] = None
78
+ currency: typing.Optional[str] = None
79
+
80
+
81
+ @attr.s(auto_attribs=True)
82
+ class WeightType:
83
+ units: typing.Optional[str] = None
84
+ value: typing.Optional[int] = None
85
+
86
+
87
+ @attr.s(auto_attribs=True)
88
+ class CommodityType:
89
+ description: typing.Optional[str] = None
90
+ weight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
91
+ quantity: typing.Optional[int] = None
92
+ customsValue: typing.Optional[FixedValueType] = jstruct.JStruct[FixedValueType]
93
+ unitPrice: typing.Optional[FixedValueType] = jstruct.JStruct[FixedValueType]
94
+ numberOfPieces: typing.Optional[int] = None
95
+ countryOfManufacture: typing.Optional[str] = None
96
+ quantityUnits: typing.Optional[str] = None
97
+ name: typing.Optional[str] = None
98
+ harmonizedCode: typing.Optional[str] = None
99
+ partNumber: typing.Optional[str] = None
100
+
101
+
102
+ @attr.s(auto_attribs=True)
103
+ class ResponsiblePartyAddressType:
104
+ streetLines: typing.Optional[typing.List[str]] = None
105
+ city: typing.Optional[str] = None
106
+ stateOrProvinceCode: typing.Optional[str] = None
107
+ postalCode: typing.Optional[int] = None
108
+ countryCode: typing.Optional[str] = None
109
+ residential: typing.Optional[bool] = None
110
+
111
+
112
+ @attr.s(auto_attribs=True)
113
+ class ResponsiblePartyContactType:
114
+ personName: typing.Optional[str] = None
115
+ emailAddress: typing.Optional[str] = None
116
+ phoneNumber: typing.Optional[str] = None
117
+ phoneExtension: typing.Optional[str] = None
118
+ companyName: typing.Optional[str] = None
119
+ faxNumber: typing.Optional[str] = None
120
+
121
+
122
+ @attr.s(auto_attribs=True)
123
+ class ResponsiblePartyType:
124
+ address: typing.Optional[ResponsiblePartyAddressType] = jstruct.JStruct[ResponsiblePartyAddressType]
125
+ contact: typing.Optional[ResponsiblePartyContactType] = jstruct.JStruct[ResponsiblePartyContactType]
126
+ accountNumber: typing.Optional[RatingRequestAccountNumberType] = jstruct.JStruct[RatingRequestAccountNumberType]
127
+
128
+
129
+ @attr.s(auto_attribs=True)
130
+ class PayorType:
131
+ responsibleParty: typing.Optional[ResponsiblePartyType] = jstruct.JStruct[ResponsiblePartyType]
132
+
133
+
134
+ @attr.s(auto_attribs=True)
135
+ class DutiesPaymentType:
136
+ payor: typing.Optional[PayorType] = jstruct.JStruct[PayorType]
137
+ paymentType: typing.Optional[str] = None
138
+
139
+
140
+ @attr.s(auto_attribs=True)
141
+ class CustomsClearanceDetailType:
142
+ brokers: typing.Optional[typing.List[BrokerType]] = jstruct.JList[BrokerType]
143
+ commercialInvoice: typing.Optional[CommercialInvoiceType] = jstruct.JStruct[CommercialInvoiceType]
144
+ freightOnValue: typing.Optional[str] = None
145
+ dutiesPayment: typing.Optional[DutiesPaymentType] = jstruct.JStruct[DutiesPaymentType]
146
+ commodities: typing.Optional[typing.List[CommodityType]] = jstruct.JList[CommodityType]
147
+
148
+
149
+ @attr.s(auto_attribs=True)
150
+ class PrintedReferenceType:
151
+ printedReferenceType: typing.Optional[str] = None
152
+ value: typing.Optional[str] = None
153
+
154
+
155
+ @attr.s(auto_attribs=True)
156
+ class EmailNotificationDetailRecipientType:
157
+ emailAddress: typing.Optional[str] = None
158
+ notificationEventType: typing.Optional[typing.List[str]] = None
159
+ smsDetail: typing.Any = None
160
+ notificationFormatType: typing.Optional[str] = None
161
+ emailNotificationRecipientType: typing.Optional[str] = None
162
+ notificationType: typing.Optional[str] = None
163
+ locale: typing.Optional[str] = None
164
+
165
+
166
+ @attr.s(auto_attribs=True)
167
+ class EmailNotificationDetailType:
168
+ recipients: typing.Optional[typing.List[EmailNotificationDetailRecipientType]] = jstruct.JList[EmailNotificationDetailRecipientType]
169
+ personalMessage: typing.Optional[str] = None
170
+ PrintedReference: typing.Optional[PrintedReferenceType] = jstruct.JStruct[PrintedReferenceType]
171
+
172
+
173
+ @attr.s(auto_attribs=True)
174
+ class ExpressFreightDetailType:
175
+ bookingConfirmationNumber: typing.Optional[str] = None
176
+ shippersLoadAndCount: typing.Optional[int] = None
177
+
178
+
179
+ @attr.s(auto_attribs=True)
180
+ class ShipperClassType:
181
+ address: typing.Optional[ResponsiblePartyAddressType] = jstruct.JStruct[ResponsiblePartyAddressType]
182
+
183
+
184
+ @attr.s(auto_attribs=True)
185
+ class ContentRecordType:
186
+ itemNumber: typing.Optional[str] = None
187
+ receivedQuantity: typing.Optional[int] = None
188
+ description: typing.Optional[str] = None
189
+ partNumber: typing.Optional[str] = None
190
+
191
+
192
+ @attr.s(auto_attribs=True)
193
+ class DimensionsType:
194
+ length: typing.Optional[int] = None
195
+ width: typing.Optional[int] = None
196
+ height: typing.Optional[int] = None
197
+ units: typing.Optional[str] = None
198
+
199
+
200
+ @attr.s(auto_attribs=True)
201
+ class AlcoholDetailType:
202
+ alcoholRecipientType: typing.Optional[str] = None
203
+ shipperAgreementType: typing.Optional[str] = None
204
+
205
+
206
+ @attr.s(auto_attribs=True)
207
+ class BatteryDetailType:
208
+ material: typing.Optional[str] = None
209
+ regulatorySubType: typing.Optional[str] = None
210
+ packing: typing.Optional[str] = None
211
+
212
+
213
+ @attr.s(auto_attribs=True)
214
+ class NumberType:
215
+ areaCode: typing.Optional[str] = None
216
+ extension: typing.Optional[str] = None
217
+ countryCode: typing.Optional[str] = None
218
+ personalIdentificationNumber: typing.Optional[str] = None
219
+ localNumber: typing.Optional[str] = None
220
+
221
+
222
+ @attr.s(auto_attribs=True)
223
+ class HazardousCommodityType:
224
+ innerReceptacles: typing.Optional[typing.List[typing.Any]] = None
225
+
226
+
227
+ @attr.s(auto_attribs=True)
228
+ class PackagingType:
229
+ count: typing.Optional[int] = None
230
+ units: typing.Optional[str] = None
231
+
232
+
233
+ @attr.s(auto_attribs=True)
234
+ class ContainerType:
235
+ offeror: typing.Optional[str] = None
236
+ hazardousCommodities: typing.Optional[typing.List[HazardousCommodityType]] = jstruct.JList[HazardousCommodityType]
237
+ numberOfContainers: typing.Optional[int] = None
238
+ containerType: typing.Optional[str] = None
239
+ emergencyContactNumber: typing.Optional[NumberType] = jstruct.JStruct[NumberType]
240
+ packaging: typing.Optional[PackagingType] = jstruct.JStruct[PackagingType]
241
+ packingType: typing.Optional[str] = None
242
+ radioactiveContainerClass: typing.Optional[str] = None
243
+
244
+
245
+ @attr.s(auto_attribs=True)
246
+ class DangerousGoodsDetailType:
247
+ offeror: typing.Optional[str] = None
248
+ accessibility: typing.Optional[str] = None
249
+ emergencyContactNumber: typing.Optional[str] = None
250
+ options: typing.Optional[typing.List[str]] = None
251
+ containers: typing.Optional[typing.List[ContainerType]] = jstruct.JList[ContainerType]
252
+ packaging: typing.Optional[PackagingType] = jstruct.JStruct[PackagingType]
253
+
254
+
255
+ @attr.s(auto_attribs=True)
256
+ class CodCollectionAmountType:
257
+ amount: typing.Optional[float] = None
258
+ currency: typing.Optional[str] = None
259
+
260
+
261
+ @attr.s(auto_attribs=True)
262
+ class PackageCODDetailType:
263
+ codCollectionAmount: typing.Optional[CodCollectionAmountType] = jstruct.JStruct[CodCollectionAmountType]
264
+ codCollectionType: typing.Optional[str] = None
265
+
266
+
267
+ @attr.s(auto_attribs=True)
268
+ class PackageSpecialServicesType:
269
+ specialServiceTypes: typing.Optional[typing.List[str]] = None
270
+ signatureOptionType: typing.Optional[typing.List[str]] = None
271
+ alcoholDetail: typing.Optional[AlcoholDetailType] = jstruct.JStruct[AlcoholDetailType]
272
+ dangerousGoodsDetail: typing.Optional[DangerousGoodsDetailType] = jstruct.JStruct[DangerousGoodsDetailType]
273
+ packageCODDetail: typing.Optional[PackageCODDetailType] = jstruct.JStruct[PackageCODDetailType]
274
+ pieceCountVerificationBoxCount: typing.Optional[int] = None
275
+ batteryDetails: typing.Optional[typing.List[BatteryDetailType]] = jstruct.JList[BatteryDetailType]
276
+ dryIceWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
277
+
278
+
279
+ @attr.s(auto_attribs=True)
280
+ class VariableHandlingChargeDetailType:
281
+ rateType: typing.Optional[str] = None
282
+ percentValue: typing.Optional[int] = None
283
+ rateLevelType: typing.Optional[str] = None
284
+ fixedValue: typing.Optional[FixedValueType] = jstruct.JStruct[FixedValueType]
285
+ rateElementBasis: typing.Optional[str] = None
286
+
287
+
288
+ @attr.s(auto_attribs=True)
289
+ class RequestedPackageLineItemType:
290
+ subPackagingType: typing.Optional[str] = None
291
+ groupPackageCount: typing.Optional[int] = None
292
+ contentRecord: typing.Optional[typing.List[ContentRecordType]] = jstruct.JList[ContentRecordType]
293
+ declaredValue: typing.Optional[FixedValueType] = jstruct.JStruct[FixedValueType]
294
+ weight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
295
+ dimensions: typing.Optional[DimensionsType] = jstruct.JStruct[DimensionsType]
296
+ variableHandlingChargeDetail: typing.Optional[VariableHandlingChargeDetailType] = jstruct.JStruct[VariableHandlingChargeDetailType]
297
+ packageSpecialServices: typing.Optional[PackageSpecialServicesType] = jstruct.JStruct[PackageSpecialServicesType]
298
+
299
+
300
+ @attr.s(auto_attribs=True)
301
+ class ServiceTypeDetailType:
302
+ carrierCode: typing.Optional[str] = None
303
+ description: typing.Optional[str] = None
304
+ serviceName: typing.Optional[str] = None
305
+ serviceCategory: typing.Optional[str] = None
306
+
307
+
308
+ @attr.s(auto_attribs=True)
309
+ class DeliveryOnInvoiceAcceptanceDetailType:
310
+ recipient: typing.Optional[BrokerClassType] = jstruct.JStruct[BrokerClassType]
311
+
312
+
313
+ @attr.s(auto_attribs=True)
314
+ class TionContactAndAddressType:
315
+ address: typing.Optional[ResponsiblePartyAddressType] = jstruct.JStruct[ResponsiblePartyAddressType]
316
+ contact: typing.Optional[ResponsiblePartyContactType] = jstruct.JStruct[ResponsiblePartyContactType]
317
+
318
+
319
+ @attr.s(auto_attribs=True)
320
+ class HoldAtLocationDetailType:
321
+ locationId: typing.Optional[str] = None
322
+ locationContactAndAddress: typing.Optional[TionContactAndAddressType] = jstruct.JStruct[TionContactAndAddressType]
323
+ locationType: typing.Optional[str] = None
324
+
325
+
326
+ @attr.s(auto_attribs=True)
327
+ class HomeDeliveryPremiumDetailType:
328
+ phoneNumber: typing.Optional[NumberType] = jstruct.JStruct[NumberType]
329
+ shipTimestamp: typing.Optional[str] = None
330
+ homedeliveryPremiumType: typing.Optional[str] = None
331
+
332
+
333
+ @attr.s(auto_attribs=True)
334
+ class InternationalControlledExportDetailType:
335
+ type: typing.Optional[str] = None
336
+
337
+
338
+ @attr.s(auto_attribs=True)
339
+ class InternationalTrafficInArmsRegulationsDetailType:
340
+ licenseOrExemptionNumber: typing.Optional[int] = None
341
+
342
+
343
+ @attr.s(auto_attribs=True)
344
+ class DocumentReferenceType:
345
+ documentType: typing.Optional[str] = None
346
+ customerReference: typing.Optional[str] = None
347
+ description: typing.Optional[str] = None
348
+ documentId: typing.Optional[int] = None
349
+
350
+
351
+ @attr.s(auto_attribs=True)
352
+ class LocaleType:
353
+ country: typing.Optional[str] = None
354
+ language: typing.Optional[str] = None
355
+
356
+
357
+ @attr.s(auto_attribs=True)
358
+ class ProcessingOptionsType:
359
+ options: typing.Optional[typing.List[str]] = None
360
+
361
+
362
+ @attr.s(auto_attribs=True)
363
+ class EmailLabelDetailRecipientType:
364
+ emailAddress: typing.Optional[str] = None
365
+ optionsRequested: typing.Optional[ProcessingOptionsType] = jstruct.JStruct[ProcessingOptionsType]
366
+ role: typing.Optional[str] = None
367
+ locale: typing.Optional[LocaleType] = jstruct.JStruct[LocaleType]
368
+
369
+
370
+ @attr.s(auto_attribs=True)
371
+ class EmailLabelDetailType:
372
+ recipients: typing.Optional[typing.List[EmailLabelDetailRecipientType]] = jstruct.JList[EmailLabelDetailRecipientType]
373
+ message: typing.Optional[str] = None
374
+
375
+
376
+ @attr.s(auto_attribs=True)
377
+ class RecommendedDocumentSpecificationType:
378
+ types: typing.Optional[typing.List[str]] = None
379
+
380
+
381
+ @attr.s(auto_attribs=True)
382
+ class ShipmentDryIceDetailType:
383
+ totalWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
384
+ packageCount: typing.Optional[int] = None
385
+
386
+
387
+ @attr.s(auto_attribs=True)
388
+ class PendingShipmentDetailType:
389
+ pendingShipmentType: typing.Optional[str] = None
390
+ processingOptions: typing.Optional[ProcessingOptionsType] = jstruct.JStruct[ProcessingOptionsType]
391
+ recommendedDocumentSpecification: typing.Optional[RecommendedDocumentSpecificationType] = jstruct.JStruct[RecommendedDocumentSpecificationType]
392
+ emailLabelDetail: typing.Optional[EmailLabelDetailType] = jstruct.JStruct[EmailLabelDetailType]
393
+ documentReferences: typing.Optional[typing.List[DocumentReferenceType]] = jstruct.JList[DocumentReferenceType]
394
+ expirationTimeStamp: typing.Optional[str] = None
395
+ shipmentDryIceDetail: typing.Optional[ShipmentDryIceDetailType] = jstruct.JStruct[ShipmentDryIceDetailType]
396
+
397
+
398
+ @attr.s(auto_attribs=True)
399
+ class ReturnShipmentDetailType:
400
+ returnType: typing.Optional[str] = None
401
+
402
+
403
+ @attr.s(auto_attribs=True)
404
+ class AddTransportationChargesDetailType:
405
+ rateType: typing.Optional[str] = None
406
+ rateLevelType: typing.Optional[str] = None
407
+ chargeLevelType: typing.Optional[str] = None
408
+ chargeType: typing.Optional[str] = None
409
+
410
+
411
+ @attr.s(auto_attribs=True)
412
+ class CodRecipientType:
413
+ accountNumber: typing.Optional[RecipientAccountNumberType] = jstruct.JStruct[RecipientAccountNumberType]
414
+
415
+
416
+ @attr.s(auto_attribs=True)
417
+ class ShipmentCODDetailType:
418
+ addTransportationChargesDetail: typing.Optional[AddTransportationChargesDetailType] = jstruct.JStruct[AddTransportationChargesDetailType]
419
+ codRecipient: typing.Optional[CodRecipientType] = jstruct.JStruct[CodRecipientType]
420
+ remitToName: typing.Optional[str] = None
421
+ codCollectionType: typing.Optional[str] = None
422
+ financialInstitutionContactAndAddress: typing.Optional[TionContactAndAddressType] = jstruct.JStruct[TionContactAndAddressType]
423
+ returnReferenceIndicatorType: typing.Optional[str] = None
424
+
425
+
426
+ @attr.s(auto_attribs=True)
427
+ class ShipmentSpecialServicesType:
428
+ returnShipmentDetail: typing.Optional[ReturnShipmentDetailType] = jstruct.JStruct[ReturnShipmentDetailType]
429
+ deliveryOnInvoiceAcceptanceDetail: typing.Optional[DeliveryOnInvoiceAcceptanceDetailType] = jstruct.JStruct[DeliveryOnInvoiceAcceptanceDetailType]
430
+ internationalTrafficInArmsRegulationsDetail: typing.Optional[InternationalTrafficInArmsRegulationsDetailType] = jstruct.JStruct[InternationalTrafficInArmsRegulationsDetailType]
431
+ pendingShipmentDetail: typing.Optional[PendingShipmentDetailType] = jstruct.JStruct[PendingShipmentDetailType]
432
+ holdAtLocationDetail: typing.Optional[HoldAtLocationDetailType] = jstruct.JStruct[HoldAtLocationDetailType]
433
+ shipmentCODDetail: typing.Optional[ShipmentCODDetailType] = jstruct.JStruct[ShipmentCODDetailType]
434
+ shipmentDryIceDetail: typing.Optional[ShipmentDryIceDetailType] = jstruct.JStruct[ShipmentDryIceDetailType]
435
+ internationalControlledExportDetail: typing.Optional[InternationalControlledExportDetailType] = jstruct.JStruct[InternationalControlledExportDetailType]
436
+ homeDeliveryPremiumDetail: typing.Optional[HomeDeliveryPremiumDetailType] = jstruct.JStruct[HomeDeliveryPremiumDetailType]
437
+ specialServiceTypes: typing.Optional[typing.List[str]] = None
438
+
439
+
440
+ @attr.s(auto_attribs=True)
441
+ class SmartPostInfoDetailType:
442
+ ancillaryEndorsement: typing.Optional[str] = None
443
+ hubId: typing.Optional[int] = None
444
+ indicia: typing.Optional[str] = None
445
+ specialServices: typing.Optional[str] = None
446
+
447
+
448
+ @attr.s(auto_attribs=True)
449
+ class RequestedShipmentType:
450
+ shipper: typing.Optional[ShipperClassType] = jstruct.JStruct[ShipperClassType]
451
+ recipient: typing.Optional[ShipperClassType] = jstruct.JStruct[ShipperClassType]
452
+ serviceType: typing.Optional[str] = None
453
+ emailNotificationDetail: typing.Optional[EmailNotificationDetailType] = jstruct.JStruct[EmailNotificationDetailType]
454
+ preferredCurrency: typing.Optional[str] = None
455
+ rateRequestType: typing.Optional[typing.List[str]] = None
456
+ shipDateStamp: typing.Optional[str] = None
457
+ pickupType: typing.Optional[str] = None
458
+ requestedPackageLineItems: typing.Optional[typing.List[RequestedPackageLineItemType]] = jstruct.JList[RequestedPackageLineItemType]
459
+ documentShipment: typing.Optional[bool] = None
460
+ variableHandlingChargeDetail: typing.Optional[VariableHandlingChargeDetailType] = jstruct.JStruct[VariableHandlingChargeDetailType]
461
+ packagingType: typing.Optional[str] = None
462
+ totalPackageCount: typing.Optional[int] = None
463
+ totalWeight: typing.Optional[float] = None
464
+ shipmentSpecialServices: typing.Optional[ShipmentSpecialServicesType] = jstruct.JStruct[ShipmentSpecialServicesType]
465
+ customsClearanceDetail: typing.Optional[CustomsClearanceDetailType] = jstruct.JStruct[CustomsClearanceDetailType]
466
+ groupShipment: typing.Optional[bool] = None
467
+ serviceTypeDetail: typing.Optional[ServiceTypeDetailType] = jstruct.JStruct[ServiceTypeDetailType]
468
+ smartPostInfoDetail: typing.Optional[SmartPostInfoDetailType] = jstruct.JStruct[SmartPostInfoDetailType]
469
+ expressFreightDetail: typing.Optional[ExpressFreightDetailType] = jstruct.JStruct[ExpressFreightDetailType]
470
+ groundShipment: typing.Optional[bool] = None
471
+
472
+
473
+ @attr.s(auto_attribs=True)
474
+ class RatingRequestType:
475
+ accountNumber: typing.Optional[RatingRequestAccountNumberType] = jstruct.JStruct[RatingRequestAccountNumberType]
476
+ rateRequestControlParameters: typing.Optional[RateRequestControlParametersType] = jstruct.JStruct[RateRequestControlParametersType]
477
+ requestedShipment: typing.Optional[RequestedShipmentType] = jstruct.JStruct[RequestedShipmentType]
478
+ carrierCodes: typing.Optional[typing.List[str]] = None
@@ -0,0 +1,208 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class AlertType:
8
+ code: typing.Optional[str] = None
9
+ message: typing.Optional[str] = None
10
+ alertType: typing.Optional[str] = None
11
+ parameterList: typing.Optional[typing.List[typing.Any]] = None
12
+
13
+
14
+ @attr.s(auto_attribs=True)
15
+ class DateDetailType:
16
+ dayOfWeek: typing.Optional[str] = None
17
+ dayFormat: typing.Optional[str] = None
18
+
19
+
20
+ @attr.s(auto_attribs=True)
21
+ class DerivedNDetailType:
22
+ countryCode: typing.Optional[str] = None
23
+ stateOrProvinceCode: typing.Optional[str] = None
24
+ postalCode: typing.Optional[str] = None
25
+ serviceArea: typing.Optional[str] = None
26
+ locationId: typing.Optional[str] = None
27
+ locationNumber: typing.Optional[int] = None
28
+ airportId: typing.Optional[str] = None
29
+
30
+
31
+ @attr.s(auto_attribs=True)
32
+ class TransitDaysType:
33
+ minimumTransitTime: typing.Optional[str] = None
34
+ description: typing.Optional[str] = None
35
+
36
+
37
+ @attr.s(auto_attribs=True)
38
+ class CommitType:
39
+ label: typing.Optional[str] = None
40
+ commitMessageDetails: typing.Optional[str] = None
41
+ commodityName: typing.Optional[str] = None
42
+ deliveryMessages: typing.Optional[typing.List[str]] = None
43
+ derivedOriginDetail: typing.Optional[DerivedNDetailType] = jstruct.JStruct[DerivedNDetailType]
44
+ derivedDestinationDetail: typing.Optional[DerivedNDetailType] = jstruct.JStruct[DerivedNDetailType]
45
+ saturdayDelivery: typing.Optional[bool] = None
46
+ dateDetail: typing.Optional[DateDetailType] = jstruct.JStruct[DateDetailType]
47
+ transitDays: typing.Optional[TransitDaysType] = jstruct.JStruct[TransitDaysType]
48
+
49
+
50
+ @attr.s(auto_attribs=True)
51
+ class CustomerMessageType:
52
+ code: typing.Optional[str] = None
53
+ message: typing.Optional[str] = None
54
+
55
+
56
+ @attr.s(auto_attribs=True)
57
+ class OperationalDetailType:
58
+ originLocationIds: typing.Optional[typing.List[str]] = None
59
+ originLocationNumbers: typing.Optional[typing.List[int]] = None
60
+ originServiceAreas: typing.Optional[typing.List[str]] = None
61
+ destinationLocationIds: typing.Optional[typing.List[str]] = None
62
+ destinationLocationNumbers: typing.Optional[typing.List[int]] = None
63
+ destinationServiceAreas: typing.Optional[typing.List[str]] = None
64
+ destinationLocationStateOrProvinceCodes: typing.Optional[typing.List[str]] = None
65
+ ineligibleForMoneyBackGuarantee: typing.Optional[bool] = None
66
+ astraDescription: typing.Optional[str] = None
67
+ originPostalCodes: typing.Optional[typing.List[str]] = None
68
+ stateOrProvinceCodes: typing.Optional[typing.List[str]] = None
69
+ countryCodes: typing.Optional[typing.List[str]] = None
70
+ airportId: typing.Optional[str] = None
71
+ serviceCode: typing.Optional[str] = None
72
+ destinationPostalCode: typing.Optional[str] = None
73
+ deliveryDate: typing.Optional[str] = None
74
+ deliveryDay: typing.Optional[str] = None
75
+ commitDate: typing.Optional[str] = None
76
+ commitDays: typing.Optional[typing.List[str]] = None
77
+ transitTime: typing.Optional[str] = None
78
+
79
+
80
+ @attr.s(auto_attribs=True)
81
+ class AncillaryFeesAndTaxType:
82
+ type: typing.Optional[str] = None
83
+ description: typing.Optional[str] = None
84
+ amount: typing.Optional[float] = None
85
+ level: typing.Optional[str] = None
86
+
87
+
88
+ @attr.s(auto_attribs=True)
89
+ class WeightType:
90
+ units: typing.Optional[str] = None
91
+ value: typing.Optional[float] = None
92
+
93
+
94
+ @attr.s(auto_attribs=True)
95
+ class PackageRateDetailType:
96
+ rateType: typing.Optional[str] = None
97
+ ratedWeightMethod: typing.Optional[str] = None
98
+ baseCharge: typing.Optional[float] = None
99
+ netFreight: typing.Optional[float] = None
100
+ totalSurcharges: typing.Optional[float] = None
101
+ netFedExCharge: typing.Optional[float] = None
102
+ totalTaxes: typing.Optional[float] = None
103
+ netCharge: typing.Optional[float] = None
104
+ totalRebates: typing.Optional[int] = None
105
+ billingWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
106
+ totalFreightDiscounts: typing.Optional[int] = None
107
+ surcharges: typing.Optional[typing.List[AncillaryFeesAndTaxType]] = jstruct.JList[AncillaryFeesAndTaxType]
108
+ dimWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
109
+ currency: typing.Optional[str] = None
110
+
111
+
112
+ @attr.s(auto_attribs=True)
113
+ class RatedPackageType:
114
+ groupNumber: typing.Optional[int] = None
115
+ effectiveNetDiscount: typing.Optional[int] = None
116
+ packageRateDetail: typing.Optional[PackageRateDetailType] = jstruct.JStruct[PackageRateDetailType]
117
+ sequenceNumber: typing.Optional[int] = None
118
+
119
+
120
+ @attr.s(auto_attribs=True)
121
+ class CurrencyExchangeRateType:
122
+ fromCurrency: typing.Optional[str] = None
123
+ intoCurrency: typing.Optional[str] = None
124
+ rate: typing.Optional[float] = None
125
+
126
+
127
+ @attr.s(auto_attribs=True)
128
+ class ShipmentRateDetailType:
129
+ rateZone: typing.Optional[str] = None
130
+ dimDivisor: typing.Optional[int] = None
131
+ fuelSurchargePercent: typing.Optional[float] = None
132
+ totalSurcharges: typing.Optional[float] = None
133
+ totalFreightDiscount: typing.Optional[int] = None
134
+ surCharges: typing.Optional[typing.List[AncillaryFeesAndTaxType]] = jstruct.JList[AncillaryFeesAndTaxType]
135
+ pricingCode: typing.Optional[str] = None
136
+ currencyExchangeRate: typing.Optional[CurrencyExchangeRateType] = jstruct.JStruct[CurrencyExchangeRateType]
137
+ totalBillingWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
138
+ dimDivisorType: typing.Optional[str] = None
139
+ totalDimWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
140
+ currency: typing.Optional[str] = None
141
+ rateScale: typing.Optional[str] = None
142
+ totalRateScaleWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
143
+ taxes: typing.Optional[typing.List[AncillaryFeesAndTaxType]] = jstruct.JList[AncillaryFeesAndTaxType]
144
+
145
+
146
+ @attr.s(auto_attribs=True)
147
+ class RatedShipmentDetailType:
148
+ rateType: typing.Optional[str] = None
149
+ ratedWeightMethod: typing.Optional[str] = None
150
+ totalDiscounts: typing.Optional[int] = None
151
+ totalBaseCharge: typing.Optional[float] = None
152
+ totalNetCharge: typing.Optional[float] = None
153
+ totalVatCharge: typing.Optional[int] = None
154
+ totalNetFedExCharge: typing.Optional[float] = None
155
+ totalDutiesAndTaxes: typing.Optional[int] = None
156
+ totalNetChargeWithDutiesAndTaxes: typing.Optional[float] = None
157
+ totalDutiesTaxesAndFees: typing.Optional[float] = None
158
+ totalAncillaryFeesAndTaxes: typing.Optional[float] = None
159
+ shipmentRateDetail: typing.Optional[ShipmentRateDetailType] = jstruct.JStruct[ShipmentRateDetailType]
160
+ ratedPackages: typing.Optional[typing.List[RatedPackageType]] = jstruct.JList[RatedPackageType]
161
+ currency: typing.Optional[str] = None
162
+ ancillaryFeesAndTaxes: typing.Optional[typing.List[AncillaryFeesAndTaxType]] = jstruct.JList[AncillaryFeesAndTaxType]
163
+
164
+
165
+ @attr.s(auto_attribs=True)
166
+ class NameType:
167
+ type: typing.Optional[str] = None
168
+ encoding: typing.Optional[str] = None
169
+ value: typing.Optional[str] = None
170
+
171
+
172
+ @attr.s(auto_attribs=True)
173
+ class ServiceDescriptionType:
174
+ serviceId: typing.Optional[str] = None
175
+ serviceType: typing.Optional[str] = None
176
+ code: typing.Optional[str] = None
177
+ names: typing.Optional[typing.List[NameType]] = jstruct.JList[NameType]
178
+ serviceCategory: typing.Optional[str] = None
179
+ description: typing.Optional[str] = None
180
+ astraDescription: typing.Optional[str] = None
181
+
182
+
183
+ @attr.s(auto_attribs=True)
184
+ class RateReplyDetailType:
185
+ serviceType: typing.Optional[str] = None
186
+ serviceName: typing.Optional[str] = None
187
+ packagingType: typing.Optional[str] = None
188
+ commit: typing.Optional[CommitType] = jstruct.JStruct[CommitType]
189
+ customerMessages: typing.Optional[typing.List[CustomerMessageType]] = jstruct.JList[CustomerMessageType]
190
+ ratedShipmentDetails: typing.Optional[typing.List[RatedShipmentDetailType]] = jstruct.JList[RatedShipmentDetailType]
191
+ operationalDetail: typing.Optional[OperationalDetailType] = jstruct.JStruct[OperationalDetailType]
192
+ signatureOptionType: typing.Optional[str] = None
193
+ serviceDescription: typing.Optional[ServiceDescriptionType] = jstruct.JStruct[ServiceDescriptionType]
194
+ deliveryStation: typing.Optional[str] = None
195
+
196
+
197
+ @attr.s(auto_attribs=True)
198
+ class OutputType:
199
+ alerts: typing.Optional[typing.List[AlertType]] = jstruct.JList[AlertType]
200
+ rateReplyDetails: typing.Optional[typing.List[RateReplyDetailType]] = jstruct.JList[RateReplyDetailType]
201
+ quoteDate: typing.Optional[str] = None
202
+ encoded: typing.Optional[bool] = None
203
+
204
+
205
+ @attr.s(auto_attribs=True)
206
+ class RatingResponseType:
207
+ transactionId: typing.Optional[str] = None
208
+ output: typing.Optional[OutputType] = jstruct.JStruct[OutputType]