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,731 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class AccountNumberType:
8
+ value: typing.Optional[str] = None
9
+
10
+
11
+ @attr.s(auto_attribs=True)
12
+ class AddressType:
13
+ streetLines: typing.Optional[typing.List[str]] = None
14
+ city: typing.Optional[str] = None
15
+ stateOrProvinceCode: typing.Optional[str] = None
16
+ postalCode: typing.Optional[int] = None
17
+ countryCode: typing.Optional[str] = None
18
+ residential: typing.Optional[bool] = None
19
+
20
+
21
+ @attr.s(auto_attribs=True)
22
+ class BrokerContactType:
23
+ personName: typing.Optional[str] = None
24
+ emailAddress: typing.Optional[str] = None
25
+ phoneNumber: typing.Optional[int] = None
26
+ phoneExtension: typing.Optional[int] = None
27
+ companyName: typing.Optional[str] = None
28
+ faxNumber: typing.Optional[int] = None
29
+
30
+
31
+ @attr.s(auto_attribs=True)
32
+ class TinType:
33
+ number: typing.Optional[str] = None
34
+ tinType: typing.Optional[str] = None
35
+ usage: typing.Optional[str] = None
36
+ effectiveDate: typing.Optional[str] = None
37
+ expirationDate: typing.Optional[str] = None
38
+
39
+
40
+ @attr.s(auto_attribs=True)
41
+ class BrokerBrokerType:
42
+ address: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
43
+ contact: typing.Optional[BrokerContactType] = jstruct.JStruct[BrokerContactType]
44
+ accountNumber: typing.Optional[AccountNumberType] = jstruct.JStruct[AccountNumberType]
45
+ tins: typing.Optional[typing.List[TinType]] = jstruct.JList[TinType]
46
+ deliveryInstructions: typing.Optional[str] = None
47
+
48
+
49
+ @attr.s(auto_attribs=True)
50
+ class BrokerElementType:
51
+ broker: typing.Optional[BrokerBrokerType] = jstruct.JStruct[BrokerBrokerType]
52
+ type: typing.Optional[str] = None
53
+
54
+
55
+ @attr.s(auto_attribs=True)
56
+ class CustomerReferenceType:
57
+ customerReferenceType: typing.Optional[str] = None
58
+ value: typing.Optional[int] = None
59
+
60
+
61
+ @attr.s(auto_attribs=True)
62
+ class CommercialInvoiceEmailNotificationDetailType:
63
+ emailAddress: typing.Optional[str] = None
64
+ type: typing.Optional[str] = None
65
+ recipientType: typing.Optional[str] = None
66
+
67
+
68
+ @attr.s(auto_attribs=True)
69
+ class TotalDeclaredValueType:
70
+ amount: typing.Optional[float] = None
71
+ currency: typing.Optional[str] = None
72
+
73
+
74
+ @attr.s(auto_attribs=True)
75
+ class CommercialInvoiceType:
76
+ originatorName: typing.Optional[str] = None
77
+ comments: typing.Optional[typing.List[str]] = None
78
+ customerReferences: typing.Optional[typing.List[CustomerReferenceType]] = jstruct.JList[CustomerReferenceType]
79
+ taxesOrMiscellaneousCharge: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
80
+ taxesOrMiscellaneousChargeType: typing.Optional[str] = None
81
+ freightCharge: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
82
+ packingCosts: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
83
+ handlingCosts: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
84
+ declarationStatement: typing.Optional[str] = None
85
+ termsOfSale: typing.Optional[str] = None
86
+ specialInstructions: typing.Optional[str] = None
87
+ shipmentPurpose: typing.Optional[str] = None
88
+ emailNotificationDetail: typing.Optional[CommercialInvoiceEmailNotificationDetailType] = jstruct.JStruct[CommercialInvoiceEmailNotificationDetailType]
89
+
90
+
91
+ @attr.s(auto_attribs=True)
92
+ class AdditionalMeasureType:
93
+ quantity: typing.Optional[float] = None
94
+ units: typing.Optional[str] = None
95
+
96
+
97
+ @attr.s(auto_attribs=True)
98
+ class CustomsValueType:
99
+ amount: typing.Optional[str] = None
100
+ currency: typing.Optional[str] = None
101
+
102
+
103
+ @attr.s(auto_attribs=True)
104
+ class UsmcaDetailType:
105
+ originCriterion: typing.Optional[str] = None
106
+
107
+
108
+ @attr.s(auto_attribs=True)
109
+ class WeightType:
110
+ units: typing.Optional[str] = None
111
+ value: typing.Optional[float] = None
112
+
113
+
114
+ @attr.s(auto_attribs=True)
115
+ class CommodityType:
116
+ unitPrice: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
117
+ additionalMeasures: typing.Optional[typing.List[AdditionalMeasureType]] = jstruct.JList[AdditionalMeasureType]
118
+ numberOfPieces: typing.Optional[int] = None
119
+ quantity: typing.Optional[int] = None
120
+ quantityUnits: typing.Optional[str] = None
121
+ customsValue: typing.Optional[CustomsValueType] = jstruct.JStruct[CustomsValueType]
122
+ countryOfManufacture: typing.Optional[str] = None
123
+ cIMarksAndNumbers: typing.Optional[int] = None
124
+ harmonizedCode: typing.Optional[str] = None
125
+ description: typing.Optional[str] = None
126
+ name: typing.Optional[str] = None
127
+ weight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
128
+ exportLicenseNumber: typing.Optional[int] = None
129
+ exportLicenseExpirationDate: typing.Optional[str] = None
130
+ partNumber: typing.Optional[int] = None
131
+ purpose: typing.Optional[str] = None
132
+ usmcaDetail: typing.Optional[UsmcaDetailType] = jstruct.JStruct[UsmcaDetailType]
133
+
134
+
135
+ @attr.s(auto_attribs=True)
136
+ class CustomsOptionType:
137
+ description: typing.Optional[str] = None
138
+ type: typing.Optional[str] = None
139
+
140
+
141
+ @attr.s(auto_attribs=True)
142
+ class UsmcaLowValueStatementDetailType:
143
+ countryOfOriginLowValueDocumentRequested: typing.Optional[bool] = None
144
+ customsRole: typing.Optional[str] = None
145
+
146
+
147
+ @attr.s(auto_attribs=True)
148
+ class DeclarationStatementDetailType:
149
+ usmcaLowValueStatementDetail: typing.Optional[UsmcaLowValueStatementDetailType] = jstruct.JStruct[UsmcaLowValueStatementDetailType]
150
+
151
+
152
+ @attr.s(auto_attribs=True)
153
+ class BillingDetailsType:
154
+ billingCode: typing.Optional[str] = None
155
+ billingType: typing.Optional[str] = None
156
+ aliasId: typing.Optional[str] = None
157
+ accountNickname: typing.Optional[str] = None
158
+ accountNumber: typing.Optional[str] = None
159
+ accountNumberCountryCode: typing.Optional[str] = None
160
+
161
+
162
+ @attr.s(auto_attribs=True)
163
+ class ResponsiblePartyContactType:
164
+ personName: typing.Optional[str] = None
165
+ emailAddress: typing.Optional[str] = None
166
+ phoneNumber: typing.Optional[str] = None
167
+ phoneExtension: typing.Optional[str] = None
168
+ companyName: typing.Optional[str] = None
169
+ faxNumber: typing.Optional[str] = None
170
+
171
+
172
+ @attr.s(auto_attribs=True)
173
+ class ResponsiblePartyType:
174
+ address: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
175
+ contact: typing.Optional[ResponsiblePartyContactType] = jstruct.JStruct[ResponsiblePartyContactType]
176
+ accountNumber: typing.Optional[AccountNumberType] = jstruct.JStruct[AccountNumberType]
177
+ tins: typing.Optional[typing.List[TinType]] = jstruct.JList[TinType]
178
+
179
+
180
+ @attr.s(auto_attribs=True)
181
+ class PayorType:
182
+ responsibleParty: typing.Optional[ResponsiblePartyType] = jstruct.JStruct[ResponsiblePartyType]
183
+
184
+
185
+ @attr.s(auto_attribs=True)
186
+ class DutiesPaymentType:
187
+ payor: typing.Optional[PayorType] = jstruct.JStruct[PayorType]
188
+ billingDetails: typing.Optional[BillingDetailsType] = jstruct.JStruct[BillingDetailsType]
189
+ paymentType: typing.Optional[str] = None
190
+
191
+
192
+ @attr.s(auto_attribs=True)
193
+ class DestinationControlDetailType:
194
+ endUser: typing.Optional[str] = None
195
+ statementTypes: typing.Optional[str] = None
196
+ destinationCountries: typing.Optional[typing.List[str]] = None
197
+
198
+
199
+ @attr.s(auto_attribs=True)
200
+ class ExportDetailType:
201
+ destinationControlDetail: typing.Optional[DestinationControlDetailType] = jstruct.JStruct[DestinationControlDetailType]
202
+ b13AFilingOption: typing.Optional[str] = None
203
+ exportComplianceStatement: typing.Optional[str] = None
204
+ permitNumber: typing.Optional[int] = None
205
+
206
+
207
+ @attr.s(auto_attribs=True)
208
+ class ShipperType:
209
+ address: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
210
+ contact: typing.Optional[ResponsiblePartyContactType] = jstruct.JStruct[ResponsiblePartyContactType]
211
+ accountNumber: typing.Optional[AccountNumberType] = jstruct.JStruct[AccountNumberType]
212
+ tins: typing.Optional[typing.List[TinType]] = jstruct.JList[TinType]
213
+ deliveryInstructions: typing.Optional[str] = None
214
+
215
+
216
+ @attr.s(auto_attribs=True)
217
+ class RecipientCustomsIDType:
218
+ type: typing.Optional[str] = None
219
+ value: typing.Optional[int] = None
220
+
221
+
222
+ @attr.s(auto_attribs=True)
223
+ class CustomsClearanceDetailType:
224
+ regulatoryControls: typing.Optional[str] = None
225
+ brokers: typing.Optional[typing.List[BrokerElementType]] = jstruct.JList[BrokerElementType]
226
+ commercialInvoice: typing.Optional[CommercialInvoiceType] = jstruct.JStruct[CommercialInvoiceType]
227
+ freightOnValue: typing.Optional[str] = None
228
+ dutiesPayment: typing.Optional[DutiesPaymentType] = jstruct.JStruct[DutiesPaymentType]
229
+ commodities: typing.Optional[typing.List[CommodityType]] = jstruct.JList[CommodityType]
230
+ isDocumentOnly: typing.Optional[bool] = None
231
+ recipientCustomsId: typing.Optional[RecipientCustomsIDType] = jstruct.JStruct[RecipientCustomsIDType]
232
+ customsOption: typing.Optional[CustomsOptionType] = jstruct.JStruct[CustomsOptionType]
233
+ importerOfRecord: typing.Optional[ShipperType] = jstruct.JStruct[ShipperType]
234
+ generatedDocumentLocale: typing.Optional[str] = None
235
+ exportDetail: typing.Optional[ExportDetailType] = jstruct.JStruct[ExportDetailType]
236
+ totalCustomsValue: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
237
+ partiesToTransactionAreRelated: typing.Optional[bool] = None
238
+ declarationStatementDetail: typing.Optional[DeclarationStatementDetailType] = jstruct.JStruct[DeclarationStatementDetailType]
239
+ insuranceCharge: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
240
+
241
+
242
+ @attr.s(auto_attribs=True)
243
+ class EmailNotificationRecipientType:
244
+ name: typing.Optional[str] = None
245
+ emailNotificationRecipientType: typing.Optional[str] = None
246
+ emailAddress: typing.Optional[str] = None
247
+ notificationFormatType: typing.Optional[str] = None
248
+ notificationType: typing.Optional[str] = None
249
+ locale: typing.Optional[str] = None
250
+ notificationEventType: typing.Optional[typing.List[str]] = None
251
+
252
+
253
+ @attr.s(auto_attribs=True)
254
+ class RequestedShipmentEmailNotificationDetailType:
255
+ aggregationType: typing.Optional[str] = None
256
+ emailNotificationRecipients: typing.Optional[typing.List[EmailNotificationRecipientType]] = jstruct.JList[EmailNotificationRecipientType]
257
+ personalMessage: typing.Optional[str] = None
258
+
259
+
260
+ @attr.s(auto_attribs=True)
261
+ class ExpressFreightDetailType:
262
+ bookingConfirmationNumber: typing.Optional[str] = None
263
+ shippersLoadAndCount: typing.Optional[int] = None
264
+ packingListEnclosed: typing.Optional[bool] = None
265
+
266
+
267
+ @attr.s(auto_attribs=True)
268
+ class AdditionalLabelType:
269
+ type: typing.Optional[str] = None
270
+ count: typing.Optional[int] = None
271
+
272
+
273
+ @attr.s(auto_attribs=True)
274
+ class SpecificationType:
275
+ zoneNumber: typing.Optional[int] = None
276
+ header: typing.Optional[str] = None
277
+ dataField: typing.Optional[str] = None
278
+ literalValue: typing.Optional[str] = None
279
+ justification: typing.Optional[str] = None
280
+
281
+
282
+ @attr.s(auto_attribs=True)
283
+ class BarcodedType:
284
+ symbology: typing.Optional[str] = None
285
+ specification: typing.Optional[SpecificationType] = jstruct.JStruct[SpecificationType]
286
+
287
+
288
+ @attr.s(auto_attribs=True)
289
+ class Zone001Type:
290
+ docTabZoneSpecifications: typing.Optional[typing.List[SpecificationType]] = jstruct.JList[SpecificationType]
291
+
292
+
293
+ @attr.s(auto_attribs=True)
294
+ class DocTabContentType:
295
+ docTabContentType: typing.Optional[str] = None
296
+ zone001: typing.Optional[Zone001Type] = jstruct.JStruct[Zone001Type]
297
+ barcoded: typing.Optional[BarcodedType] = jstruct.JStruct[BarcodedType]
298
+
299
+
300
+ @attr.s(auto_attribs=True)
301
+ class RegulatoryLabelType:
302
+ generationOptions: typing.Optional[str] = None
303
+ type: typing.Optional[str] = None
304
+
305
+
306
+ @attr.s(auto_attribs=True)
307
+ class CustomerSpecifiedDetailType:
308
+ maskedData: typing.Optional[typing.List[str]] = None
309
+ regulatoryLabels: typing.Optional[typing.List[RegulatoryLabelType]] = jstruct.JList[RegulatoryLabelType]
310
+ additionalLabels: typing.Optional[typing.List[AdditionalLabelType]] = jstruct.JList[AdditionalLabelType]
311
+ docTabContent: typing.Optional[DocTabContentType] = jstruct.JStruct[DocTabContentType]
312
+
313
+
314
+ @attr.s(auto_attribs=True)
315
+ class OriginType:
316
+ address: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
317
+ contact: typing.Optional[ResponsiblePartyContactType] = jstruct.JStruct[ResponsiblePartyContactType]
318
+
319
+
320
+ @attr.s(auto_attribs=True)
321
+ class LabelSpecificationType:
322
+ labelFormatType: typing.Optional[str] = None
323
+ labelOrder: typing.Optional[str] = None
324
+ customerSpecifiedDetail: typing.Optional[CustomerSpecifiedDetailType] = jstruct.JStruct[CustomerSpecifiedDetailType]
325
+ printedLabelOrigin: typing.Optional[OriginType] = jstruct.JStruct[OriginType]
326
+ labelStockType: typing.Optional[str] = None
327
+ labelRotation: typing.Optional[str] = None
328
+ imageType: typing.Optional[str] = None
329
+ labelPrintingOrientation: typing.Optional[str] = None
330
+ returnedDispositionDetail: typing.Optional[bool] = None
331
+
332
+
333
+ @attr.s(auto_attribs=True)
334
+ class MasterTrackingIDType:
335
+ formId: typing.Optional[str] = None
336
+ trackingIdType: typing.Optional[str] = None
337
+ uspsApplicationId: typing.Optional[int] = None
338
+ trackingNumber: typing.Optional[str] = None
339
+
340
+
341
+ @attr.s(auto_attribs=True)
342
+ class ContentRecordType:
343
+ itemNumber: typing.Optional[int] = None
344
+ receivedQuantity: typing.Optional[int] = None
345
+ description: typing.Optional[str] = None
346
+ partNumber: typing.Optional[int] = None
347
+
348
+
349
+ @attr.s(auto_attribs=True)
350
+ class DimensionsType:
351
+ length: typing.Optional[int] = None
352
+ width: typing.Optional[int] = None
353
+ height: typing.Optional[int] = None
354
+ units: typing.Optional[str] = None
355
+
356
+
357
+ @attr.s(auto_attribs=True)
358
+ class AlcoholDetailType:
359
+ alcoholRecipientType: typing.Optional[str] = None
360
+ shipperAgreementType: typing.Optional[str] = None
361
+
362
+
363
+ @attr.s(auto_attribs=True)
364
+ class BatteryDetailType:
365
+ batteryPackingType: typing.Optional[str] = None
366
+ batteryRegulatoryType: typing.Optional[str] = None
367
+ batteryMaterialType: typing.Optional[str] = None
368
+
369
+
370
+ @attr.s(auto_attribs=True)
371
+ class DangerousGoodsDetailType:
372
+ cargoAircraftOnly: typing.Optional[bool] = None
373
+ accessibility: typing.Optional[str] = None
374
+ options: typing.Optional[typing.List[str]] = None
375
+
376
+
377
+ @attr.s(auto_attribs=True)
378
+ class PackageCODDetailType:
379
+ codCollectionAmount: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
380
+
381
+
382
+ @attr.s(auto_attribs=True)
383
+ class PriorityAlertDetailType:
384
+ enhancementTypes: typing.Optional[typing.List[str]] = None
385
+ content: typing.Optional[typing.List[str]] = None
386
+
387
+
388
+ @attr.s(auto_attribs=True)
389
+ class SignatureOptionDetailType:
390
+ signatureReleaseNumber: typing.Optional[int] = None
391
+
392
+
393
+ @attr.s(auto_attribs=True)
394
+ class PackageSpecialServicesType:
395
+ specialServiceTypes: typing.Optional[typing.List[str]] = None
396
+ signatureOptionType: typing.Optional[str] = None
397
+ priorityAlertDetail: typing.Optional[PriorityAlertDetailType] = jstruct.JStruct[PriorityAlertDetailType]
398
+ signatureOptionDetail: typing.Optional[SignatureOptionDetailType] = jstruct.JStruct[SignatureOptionDetailType]
399
+ alcoholDetail: typing.Optional[AlcoholDetailType] = jstruct.JStruct[AlcoholDetailType]
400
+ dangerousGoodsDetail: typing.Optional[DangerousGoodsDetailType] = jstruct.JStruct[DangerousGoodsDetailType]
401
+ packageCODDetail: typing.Optional[PackageCODDetailType] = jstruct.JStruct[PackageCODDetailType]
402
+ pieceCountVerificationBoxCount: typing.Optional[int] = None
403
+ batteryDetails: typing.Optional[typing.List[BatteryDetailType]] = jstruct.JList[BatteryDetailType]
404
+ dryIceWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
405
+
406
+
407
+ @attr.s(auto_attribs=True)
408
+ class VariableHandlingChargeDetailType:
409
+ rateType: typing.Optional[str] = None
410
+ percentValue: typing.Optional[float] = None
411
+ rateLevelType: typing.Optional[str] = None
412
+ fixedValue: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
413
+ rateElementBasis: typing.Optional[str] = None
414
+
415
+
416
+ @attr.s(auto_attribs=True)
417
+ class RequestedPackageLineItemType:
418
+ sequenceNumber: typing.Optional[int] = None
419
+ subPackagingType: typing.Optional[str] = None
420
+ customerReferences: typing.Optional[typing.List[CustomerReferenceType]] = jstruct.JList[CustomerReferenceType]
421
+ declaredValue: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
422
+ weight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
423
+ dimensions: typing.Optional[DimensionsType] = jstruct.JStruct[DimensionsType]
424
+ groupPackageCount: typing.Optional[int] = None
425
+ itemDescriptionForClearance: typing.Optional[str] = None
426
+ contentRecord: typing.Optional[typing.List[ContentRecordType]] = jstruct.JList[ContentRecordType]
427
+ itemDescription: typing.Optional[str] = None
428
+ variableHandlingChargeDetail: typing.Optional[VariableHandlingChargeDetailType] = jstruct.JStruct[VariableHandlingChargeDetailType]
429
+ packageSpecialServices: typing.Optional[PackageSpecialServicesType] = jstruct.JStruct[PackageSpecialServicesType]
430
+ trackingNumber: typing.Optional[int] = None
431
+
432
+
433
+ @attr.s(auto_attribs=True)
434
+ class DeliveryOnInvoiceAcceptanceDetailType:
435
+ recipient: typing.Optional[ShipperType] = jstruct.JStruct[ShipperType]
436
+
437
+
438
+ @attr.s(auto_attribs=True)
439
+ class AttachedDocumentType:
440
+ documentType: typing.Optional[str] = None
441
+ documentReference: typing.Optional[str] = None
442
+ description: typing.Optional[str] = None
443
+ documentId: typing.Optional[str] = None
444
+
445
+
446
+ @attr.s(auto_attribs=True)
447
+ class EtdDetailType:
448
+ attributes: typing.Optional[typing.List[str]] = None
449
+ attachedDocuments: typing.Optional[typing.List[AttachedDocumentType]] = jstruct.JList[AttachedDocumentType]
450
+ requestedDocumentTypes: typing.Optional[typing.List[str]] = None
451
+
452
+
453
+ @attr.s(auto_attribs=True)
454
+ class HoldAtLocationDetailType:
455
+ locationId: typing.Optional[str] = None
456
+ locationContactAndAddress: typing.Optional[OriginType] = jstruct.JStruct[OriginType]
457
+ locationType: typing.Optional[str] = None
458
+
459
+
460
+ @attr.s(auto_attribs=True)
461
+ class PhoneNumberType:
462
+ areaCode: typing.Optional[int] = None
463
+ localNumber: typing.Optional[int] = None
464
+ extension: typing.Optional[int] = None
465
+ personalIdentificationNumber: typing.Optional[int] = None
466
+
467
+
468
+ @attr.s(auto_attribs=True)
469
+ class HomeDeliveryPremiumDetailType:
470
+ phoneNumber: typing.Optional[PhoneNumberType] = jstruct.JStruct[PhoneNumberType]
471
+ deliveryDate: typing.Optional[str] = None
472
+ homedeliveryPremiumType: typing.Optional[str] = None
473
+
474
+
475
+ @attr.s(auto_attribs=True)
476
+ class InternationalControlledExportDetailType:
477
+ licenseOrPermitExpirationDate: typing.Optional[str] = None
478
+ licenseOrPermitNumber: typing.Optional[int] = None
479
+ entryNumber: typing.Optional[int] = None
480
+ foreignTradeZoneCode: typing.Optional[str] = None
481
+ type: typing.Optional[str] = None
482
+
483
+
484
+ @attr.s(auto_attribs=True)
485
+ class InternationalTrafficInArmsRegulationsDetailType:
486
+ licenseOrExemptionNumber: typing.Optional[int] = None
487
+
488
+
489
+ @attr.s(auto_attribs=True)
490
+ class ProcessingOptionsType:
491
+ options: typing.Optional[typing.List[str]] = None
492
+
493
+
494
+ @attr.s(auto_attribs=True)
495
+ class RecipientType:
496
+ emailAddress: typing.Optional[str] = None
497
+ optionsRequested: typing.Optional[ProcessingOptionsType] = jstruct.JStruct[ProcessingOptionsType]
498
+ role: typing.Optional[str] = None
499
+ locale: typing.Optional[str] = None
500
+
501
+
502
+ @attr.s(auto_attribs=True)
503
+ class EmailLabelDetailType:
504
+ recipients: typing.Optional[typing.List[RecipientType]] = jstruct.JList[RecipientType]
505
+ message: typing.Optional[str] = None
506
+
507
+
508
+ @attr.s(auto_attribs=True)
509
+ class RecommendedDocumentSpecificationType:
510
+ types: typing.Optional[str] = None
511
+
512
+
513
+ @attr.s(auto_attribs=True)
514
+ class PendingShipmentDetailType:
515
+ pendingShipmentType: typing.Optional[str] = None
516
+ processingOptions: typing.Optional[ProcessingOptionsType] = jstruct.JStruct[ProcessingOptionsType]
517
+ recommendedDocumentSpecification: typing.Optional[RecommendedDocumentSpecificationType] = jstruct.JStruct[RecommendedDocumentSpecificationType]
518
+ emailLabelDetail: typing.Optional[EmailLabelDetailType] = jstruct.JStruct[EmailLabelDetailType]
519
+ attachedDocuments: typing.Optional[typing.List[AttachedDocumentType]] = jstruct.JList[AttachedDocumentType]
520
+ expirationTimeStamp: typing.Optional[str] = None
521
+
522
+
523
+ @attr.s(auto_attribs=True)
524
+ class ReturnAssociationDetailType:
525
+ shipDatestamp: typing.Optional[str] = None
526
+ trackingNumber: typing.Optional[int] = None
527
+
528
+
529
+ @attr.s(auto_attribs=True)
530
+ class ReturnEmailDetailType:
531
+ merchantPhoneNumber: typing.Optional[str] = None
532
+ allowedSpecialService: typing.Optional[typing.List[str]] = None
533
+
534
+
535
+ @attr.s(auto_attribs=True)
536
+ class RmaType:
537
+ reason: typing.Optional[str] = None
538
+
539
+
540
+ @attr.s(auto_attribs=True)
541
+ class ReturnShipmentDetailType:
542
+ returnEmailDetail: typing.Optional[ReturnEmailDetailType] = jstruct.JStruct[ReturnEmailDetailType]
543
+ rma: typing.Optional[RmaType] = jstruct.JStruct[RmaType]
544
+ returnAssociationDetail: typing.Optional[ReturnAssociationDetailType] = jstruct.JStruct[ReturnAssociationDetailType]
545
+ returnType: typing.Optional[str] = None
546
+
547
+
548
+ @attr.s(auto_attribs=True)
549
+ class AddTransportationChargesDetailType:
550
+ rateType: typing.Optional[str] = None
551
+ rateLevelType: typing.Optional[str] = None
552
+ chargeLevelType: typing.Optional[str] = None
553
+ chargeType: typing.Optional[str] = None
554
+
555
+
556
+ @attr.s(auto_attribs=True)
557
+ class ShipmentCODDetailType:
558
+ addTransportationChargesDetail: typing.Optional[AddTransportationChargesDetailType] = jstruct.JStruct[AddTransportationChargesDetailType]
559
+ codRecipient: typing.Optional[ShipperType] = jstruct.JStruct[ShipperType]
560
+ remitToName: typing.Optional[str] = None
561
+ codCollectionType: typing.Optional[str] = None
562
+ financialInstitutionContactAndAddress: typing.Optional[OriginType] = jstruct.JStruct[OriginType]
563
+ codCollectionAmount: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
564
+ returnReferenceIndicatorType: typing.Optional[str] = None
565
+ shipmentCodAmount: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
566
+
567
+
568
+ @attr.s(auto_attribs=True)
569
+ class ShipmentDryIceDetailType:
570
+ totalWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
571
+ packageCount: typing.Optional[int] = None
572
+
573
+
574
+ @attr.s(auto_attribs=True)
575
+ class ShipmentSpecialServicesType:
576
+ specialServiceTypes: typing.Optional[typing.List[str]] = None
577
+ etdDetail: typing.Optional[EtdDetailType] = jstruct.JStruct[EtdDetailType]
578
+ returnShipmentDetail: typing.Optional[ReturnShipmentDetailType] = jstruct.JStruct[ReturnShipmentDetailType]
579
+ deliveryOnInvoiceAcceptanceDetail: typing.Optional[DeliveryOnInvoiceAcceptanceDetailType] = jstruct.JStruct[DeliveryOnInvoiceAcceptanceDetailType]
580
+ internationalTrafficInArmsRegulationsDetail: typing.Optional[InternationalTrafficInArmsRegulationsDetailType] = jstruct.JStruct[InternationalTrafficInArmsRegulationsDetailType]
581
+ pendingShipmentDetail: typing.Optional[PendingShipmentDetailType] = jstruct.JStruct[PendingShipmentDetailType]
582
+ holdAtLocationDetail: typing.Optional[HoldAtLocationDetailType] = jstruct.JStruct[HoldAtLocationDetailType]
583
+ shipmentCODDetail: typing.Optional[ShipmentCODDetailType] = jstruct.JStruct[ShipmentCODDetailType]
584
+ shipmentDryIceDetail: typing.Optional[ShipmentDryIceDetailType] = jstruct.JStruct[ShipmentDryIceDetailType]
585
+ internationalControlledExportDetail: typing.Optional[InternationalControlledExportDetailType] = jstruct.JStruct[InternationalControlledExportDetailType]
586
+ homeDeliveryPremiumDetail: typing.Optional[HomeDeliveryPremiumDetailType] = jstruct.JStruct[HomeDeliveryPremiumDetailType]
587
+
588
+
589
+ @attr.s(auto_attribs=True)
590
+ class ShippingChargesPaymentType:
591
+ paymentType: typing.Optional[str] = None
592
+ payor: typing.Optional[PayorType] = jstruct.JStruct[PayorType]
593
+
594
+
595
+ @attr.s(auto_attribs=True)
596
+ class CustomerImageUsageType:
597
+ id: typing.Optional[str] = None
598
+ type: typing.Optional[str] = None
599
+ providedImageType: typing.Optional[str] = None
600
+
601
+
602
+ @attr.s(auto_attribs=True)
603
+ class EMailRecipientType:
604
+ emailAddress: typing.Optional[str] = None
605
+ recipientType: typing.Optional[str] = None
606
+
607
+
608
+ @attr.s(auto_attribs=True)
609
+ class EMailDetailType:
610
+ eMailRecipients: typing.Optional[typing.List[EMailRecipientType]] = jstruct.JList[EMailRecipientType]
611
+ locale: typing.Optional[str] = None
612
+ grouping: typing.Optional[str] = None
613
+
614
+
615
+ @attr.s(auto_attribs=True)
616
+ class DispositionType:
617
+ eMailDetail: typing.Optional[EMailDetailType] = jstruct.JStruct[EMailDetailType]
618
+ dispositionType: typing.Optional[str] = None
619
+
620
+
621
+ @attr.s(auto_attribs=True)
622
+ class DocumentFormatType:
623
+ provideInstructions: typing.Optional[bool] = None
624
+ optionsRequested: typing.Optional[ProcessingOptionsType] = jstruct.JStruct[ProcessingOptionsType]
625
+ stockType: typing.Optional[str] = None
626
+ dispositions: typing.Optional[typing.List[DispositionType]] = jstruct.JList[DispositionType]
627
+ locale: typing.Optional[str] = None
628
+ docType: typing.Optional[str] = None
629
+
630
+
631
+ @attr.s(auto_attribs=True)
632
+ class CertificateOfOriginType:
633
+ customerImageUsages: typing.Optional[typing.List[CustomerImageUsageType]] = jstruct.JList[CustomerImageUsageType]
634
+ documentFormat: typing.Optional[DocumentFormatType] = jstruct.JStruct[DocumentFormatType]
635
+
636
+
637
+ @attr.s(auto_attribs=True)
638
+ class GeneralAgencyAgreementDetailType:
639
+ documentFormat: typing.Optional[DocumentFormatType] = jstruct.JStruct[DocumentFormatType]
640
+
641
+
642
+ @attr.s(auto_attribs=True)
643
+ class Op900DetailType:
644
+ customerImageUsages: typing.Optional[typing.List[CustomerImageUsageType]] = jstruct.JList[CustomerImageUsageType]
645
+ signatureName: typing.Optional[str] = None
646
+ documentFormat: typing.Optional[DocumentFormatType] = jstruct.JStruct[DocumentFormatType]
647
+
648
+
649
+ @attr.s(auto_attribs=True)
650
+ class ReturnInstructionsDetailType:
651
+ customText: typing.Optional[str] = None
652
+ documentFormat: typing.Optional[DocumentFormatType] = jstruct.JStruct[DocumentFormatType]
653
+
654
+
655
+ @attr.s(auto_attribs=True)
656
+ class BlanketPeriodType:
657
+ begins: typing.Optional[str] = None
658
+ ends: typing.Optional[str] = None
659
+
660
+
661
+ @attr.s(auto_attribs=True)
662
+ class UsmcaCCertificationOfOriginDetailType:
663
+ customerImageUsages: typing.Optional[typing.List[CustomerImageUsageType]] = jstruct.JList[CustomerImageUsageType]
664
+ documentFormat: typing.Optional[DocumentFormatType] = jstruct.JStruct[DocumentFormatType]
665
+ certifierSpecification: typing.Optional[str] = None
666
+ importerSpecification: typing.Optional[str] = None
667
+ producerSpecification: typing.Optional[str] = None
668
+ producer: typing.Optional[ShipperType] = jstruct.JStruct[ShipperType]
669
+ blanketPeriod: typing.Optional[BlanketPeriodType] = jstruct.JStruct[BlanketPeriodType]
670
+ certifierJobTitle: typing.Optional[str] = None
671
+
672
+
673
+ @attr.s(auto_attribs=True)
674
+ class ShippingDocumentSpecificationType:
675
+ generalAgencyAgreementDetail: typing.Optional[GeneralAgencyAgreementDetailType] = jstruct.JStruct[GeneralAgencyAgreementDetailType]
676
+ returnInstructionsDetail: typing.Optional[ReturnInstructionsDetailType] = jstruct.JStruct[ReturnInstructionsDetailType]
677
+ op900Detail: typing.Optional[Op900DetailType] = jstruct.JStruct[Op900DetailType]
678
+ usmcaCertificationOfOriginDetail: typing.Optional[UsmcaCCertificationOfOriginDetailType] = jstruct.JStruct[UsmcaCCertificationOfOriginDetailType]
679
+ usmcaCommercialInvoiceCertificationOfOriginDetail: typing.Optional[UsmcaCCertificationOfOriginDetailType] = jstruct.JStruct[UsmcaCCertificationOfOriginDetailType]
680
+ shippingDocumentTypes: typing.Optional[typing.List[str]] = None
681
+ certificateOfOrigin: typing.Optional[CertificateOfOriginType] = jstruct.JStruct[CertificateOfOriginType]
682
+ commercialInvoiceDetail: typing.Optional[CertificateOfOriginType] = jstruct.JStruct[CertificateOfOriginType]
683
+
684
+
685
+ @attr.s(auto_attribs=True)
686
+ class SmartPostInfoDetailType:
687
+ ancillaryEndorsement: typing.Optional[str] = None
688
+ hubId: typing.Optional[int] = None
689
+ indicia: typing.Optional[str] = None
690
+ specialServices: typing.Optional[str] = None
691
+
692
+
693
+ @attr.s(auto_attribs=True)
694
+ class RequestedShipmentType:
695
+ shipDatestamp: typing.Optional[str] = None
696
+ totalDeclaredValue: typing.Optional[TotalDeclaredValueType] = jstruct.JStruct[TotalDeclaredValueType]
697
+ shipper: typing.Optional[ShipperType] = jstruct.JStruct[ShipperType]
698
+ soldTo: typing.Optional[ShipperType] = jstruct.JStruct[ShipperType]
699
+ recipients: typing.Optional[typing.List[ShipperType]] = jstruct.JList[ShipperType]
700
+ recipientLocationNumber: typing.Optional[int] = None
701
+ pickupType: typing.Optional[str] = None
702
+ serviceType: typing.Optional[str] = None
703
+ packagingType: typing.Optional[str] = None
704
+ totalWeight: typing.Optional[float] = None
705
+ origin: typing.Optional[OriginType] = jstruct.JStruct[OriginType]
706
+ shippingChargesPayment: typing.Optional[ShippingChargesPaymentType] = jstruct.JStruct[ShippingChargesPaymentType]
707
+ shipmentSpecialServices: typing.Optional[ShipmentSpecialServicesType] = jstruct.JStruct[ShipmentSpecialServicesType]
708
+ emailNotificationDetail: typing.Optional[RequestedShipmentEmailNotificationDetailType] = jstruct.JStruct[RequestedShipmentEmailNotificationDetailType]
709
+ expressFreightDetail: typing.Optional[ExpressFreightDetailType] = jstruct.JStruct[ExpressFreightDetailType]
710
+ variableHandlingChargeDetail: typing.Optional[VariableHandlingChargeDetailType] = jstruct.JStruct[VariableHandlingChargeDetailType]
711
+ customsClearanceDetail: typing.Optional[CustomsClearanceDetailType] = jstruct.JStruct[CustomsClearanceDetailType]
712
+ smartPostInfoDetail: typing.Optional[SmartPostInfoDetailType] = jstruct.JStruct[SmartPostInfoDetailType]
713
+ blockInsightVisibility: typing.Optional[bool] = None
714
+ labelSpecification: typing.Optional[LabelSpecificationType] = jstruct.JStruct[LabelSpecificationType]
715
+ shippingDocumentSpecification: typing.Optional[ShippingDocumentSpecificationType] = jstruct.JStruct[ShippingDocumentSpecificationType]
716
+ rateRequestType: typing.Optional[typing.List[str]] = None
717
+ preferredCurrency: typing.Optional[str] = None
718
+ totalPackageCount: typing.Optional[int] = None
719
+ masterTrackingId: typing.Optional[MasterTrackingIDType] = jstruct.JStruct[MasterTrackingIDType]
720
+ requestedPackageLineItems: typing.Optional[typing.List[RequestedPackageLineItemType]] = jstruct.JList[RequestedPackageLineItemType]
721
+
722
+
723
+ @attr.s(auto_attribs=True)
724
+ class ShippingRequestType:
725
+ mergeLabelDocOption: typing.Optional[str] = None
726
+ requestedShipment: typing.Optional[RequestedShipmentType] = jstruct.JStruct[RequestedShipmentType]
727
+ labelResponseOptions: typing.Optional[str] = None
728
+ accountNumber: typing.Optional[AccountNumberType] = jstruct.JStruct[AccountNumberType]
729
+ shipAction: typing.Optional[str] = None
730
+ processingOptionType: typing.Optional[str] = None
731
+ oneLabelAtATime: typing.Optional[bool] = None