karrio-teleship 2025.5__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 (49) hide show
  1. karrio/mappers/teleship/__init__.py +4 -0
  2. karrio/mappers/teleship/hooks.py +27 -0
  3. karrio/mappers/teleship/mapper.py +114 -0
  4. karrio/mappers/teleship/proxy.py +239 -0
  5. karrio/mappers/teleship/settings.py +21 -0
  6. karrio/plugins/teleship/__init__.py +32 -0
  7. karrio/providers/teleship/__init__.py +41 -0
  8. karrio/providers/teleship/duties.py +115 -0
  9. karrio/providers/teleship/error.py +44 -0
  10. karrio/providers/teleship/hooks/__init__.py +5 -0
  11. karrio/providers/teleship/hooks/event.py +163 -0
  12. karrio/providers/teleship/hooks/oauth.py +103 -0
  13. karrio/providers/teleship/manifest.py +68 -0
  14. karrio/providers/teleship/pickup/__init__.py +8 -0
  15. karrio/providers/teleship/pickup/cancel.py +43 -0
  16. karrio/providers/teleship/pickup/schedule.py +66 -0
  17. karrio/providers/teleship/rate.py +287 -0
  18. karrio/providers/teleship/shipment/__init__.py +9 -0
  19. karrio/providers/teleship/shipment/cancel.py +48 -0
  20. karrio/providers/teleship/shipment/create.py +322 -0
  21. karrio/providers/teleship/tracking.py +100 -0
  22. karrio/providers/teleship/units.py +154 -0
  23. karrio/providers/teleship/utils.py +57 -0
  24. karrio/providers/teleship/webhook/__init__.py +8 -0
  25. karrio/providers/teleship/webhook/deregister.py +47 -0
  26. karrio/providers/teleship/webhook/register.py +48 -0
  27. karrio/schemas/teleship/__init__.py +0 -0
  28. karrio/schemas/teleship/duties_taxes_request.py +82 -0
  29. karrio/schemas/teleship/duties_taxes_response.py +28 -0
  30. karrio/schemas/teleship/error_response.py +17 -0
  31. karrio/schemas/teleship/manifest_request.py +39 -0
  32. karrio/schemas/teleship/manifest_response.py +31 -0
  33. karrio/schemas/teleship/pickup_request.py +31 -0
  34. karrio/schemas/teleship/pickup_response.py +48 -0
  35. karrio/schemas/teleship/rate_request.py +128 -0
  36. karrio/schemas/teleship/rate_response.py +66 -0
  37. karrio/schemas/teleship/shipment_cancel_request.py +8 -0
  38. karrio/schemas/teleship/shipment_cancel_response.py +17 -0
  39. karrio/schemas/teleship/shipment_request.py +137 -0
  40. karrio/schemas/teleship/shipment_response.py +247 -0
  41. karrio/schemas/teleship/tracking_request.py +8 -0
  42. karrio/schemas/teleship/tracking_response.py +52 -0
  43. karrio/schemas/teleship/webhook_request.py +18 -0
  44. karrio/schemas/teleship/webhook_response.py +20 -0
  45. karrio_teleship-2025.5.dist-info/METADATA +44 -0
  46. karrio_teleship-2025.5.dist-info/RECORD +49 -0
  47. karrio_teleship-2025.5.dist-info/WHEEL +5 -0
  48. karrio_teleship-2025.5.dist-info/entry_points.txt +2 -0
  49. karrio_teleship-2025.5.dist-info/top_level.txt +4 -0
@@ -0,0 +1,48 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class MessageType:
8
+ code: typing.Optional[int] = None
9
+ level: typing.Optional[str] = None
10
+ timestamp: typing.Optional[str] = None
11
+ message: typing.Optional[str] = None
12
+ details: typing.Optional[typing.List[str]] = None
13
+
14
+
15
+ @attr.s(auto_attribs=True)
16
+ class AddressAddressType:
17
+ line1: typing.Optional[str] = None
18
+ line2: typing.Optional[str] = None
19
+ city: typing.Optional[str] = None
20
+ state: typing.Optional[str] = None
21
+ postcode: typing.Optional[str] = None
22
+ country: typing.Optional[str] = None
23
+
24
+
25
+ @attr.s(auto_attribs=True)
26
+ class PickupAddressType:
27
+ name: typing.Optional[str] = None
28
+ email: typing.Optional[str] = None
29
+ phone: typing.Optional[str] = None
30
+ company: typing.Optional[str] = None
31
+ address: typing.Optional[AddressAddressType] = jstruct.JStruct[AddressAddressType]
32
+
33
+
34
+ @attr.s(auto_attribs=True)
35
+ class PickupType:
36
+ id: typing.Optional[str] = None
37
+ status: typing.Optional[str] = None
38
+ startAt: typing.Optional[str] = None
39
+ endAt: typing.Optional[str] = None
40
+ address: typing.Optional[PickupAddressType] = jstruct.JStruct[PickupAddressType]
41
+ reference: typing.Optional[str] = None
42
+ createdAt: typing.Optional[str] = None
43
+
44
+
45
+ @attr.s(auto_attribs=True)
46
+ class PickupResponseType:
47
+ messages: typing.Optional[typing.List[MessageType]] = jstruct.JList[MessageType]
48
+ pickup: typing.Optional[PickupType] = jstruct.JStruct[PickupType]
@@ -0,0 +1,128 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class AdditionalServicesType:
8
+ signatureRequired: typing.Optional[bool] = None
9
+ deliveryWarranty: typing.Optional[bool] = None
10
+ deliveryPUDO: typing.Optional[bool] = None
11
+ lowCarbon: typing.Optional[bool] = None
12
+ dutyTaxCalculation: typing.Optional[bool] = None
13
+
14
+
15
+ @attr.s(auto_attribs=True)
16
+ class AddressType:
17
+ line1: typing.Optional[str] = None
18
+ line2: typing.Optional[str] = None
19
+ city: typing.Optional[str] = None
20
+ state: typing.Optional[str] = None
21
+ country: typing.Optional[str] = None
22
+ postcode: typing.Optional[str] = None
23
+
24
+
25
+ @attr.s(auto_attribs=True)
26
+ class BillToType:
27
+ name: typing.Optional[str] = None
28
+ company: typing.Optional[str] = None
29
+ email: typing.Optional[str] = None
30
+ phone: typing.Optional[str] = None
31
+ address: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
32
+ stateTaxId: typing.Optional[str] = None
33
+ countryTaxId: typing.Optional[str] = None
34
+
35
+
36
+ @attr.s(auto_attribs=True)
37
+ class ComplianceType:
38
+ requiresLicensing: typing.Optional[bool] = None
39
+ isHazardous: typing.Optional[bool] = None
40
+ isRestricted: typing.Optional[bool] = None
41
+ regulatoryInfo: typing.Optional[str] = None
42
+
43
+
44
+ @attr.s(auto_attribs=True)
45
+ class WeightType:
46
+ unit: typing.Optional[str] = None
47
+ value: typing.Optional[float] = None
48
+
49
+
50
+ @attr.s(auto_attribs=True)
51
+ class ValueType:
52
+ amount: typing.Optional[int] = None
53
+ currency: typing.Optional[str] = None
54
+
55
+
56
+ @attr.s(auto_attribs=True)
57
+ class CommodityType:
58
+ sku: typing.Optional[str] = None
59
+ hsCode: typing.Optional[int] = None
60
+ title: typing.Optional[str] = None
61
+ description: typing.Optional[str] = None
62
+ category: typing.Optional[str] = None
63
+ value: typing.Optional[ValueType] = jstruct.JStruct[ValueType]
64
+ quantity: typing.Optional[int] = None
65
+ unitWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
66
+ countryOfOrigin: typing.Optional[str] = None
67
+ imageUrl: typing.Optional[str] = None
68
+ productUrl: typing.Optional[str] = None
69
+ compliance: typing.Optional[ComplianceType] = jstruct.JStruct[ComplianceType]
70
+
71
+
72
+ @attr.s(auto_attribs=True)
73
+ class CustomsType:
74
+ EORI: typing.Optional[str] = None
75
+ IOSS: typing.Optional[str] = None
76
+ VAT: typing.Optional[str] = None
77
+ EIN: typing.Optional[str] = None
78
+ VOECNUMBER: typing.Optional[str] = None
79
+ importerGST: typing.Optional[str] = None
80
+ exporterGST: typing.Optional[str] = None
81
+ consigneeGST: typing.Optional[str] = None
82
+ contentType: typing.Optional[str] = None
83
+ invoiceDate: typing.Optional[str] = None
84
+ invoiceNumber: typing.Optional[str] = None
85
+ GPSRContactInfo: typing.Optional[str] = None
86
+ importerOfRecord: typing.Optional[BillToType] = jstruct.JStruct[BillToType]
87
+
88
+
89
+ @attr.s(auto_attribs=True)
90
+ class DimensionsType:
91
+ unit: typing.Optional[str] = None
92
+ width: typing.Optional[int] = None
93
+ height: typing.Optional[int] = None
94
+ length: typing.Optional[int] = None
95
+
96
+
97
+ @attr.s(auto_attribs=True)
98
+ class MetadataType:
99
+ fulfillmentOrderId: typing.Optional[str] = None
100
+
101
+
102
+ @attr.s(auto_attribs=True)
103
+ class ReturnToType:
104
+ name: typing.Optional[str] = None
105
+ company: typing.Optional[str] = None
106
+ email: typing.Optional[str] = None
107
+ phone: typing.Optional[str] = None
108
+ address: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
109
+
110
+
111
+ @attr.s(auto_attribs=True)
112
+ class RateRequestType:
113
+ customerReference: typing.Optional[str] = None
114
+ packageType: typing.Optional[str] = None
115
+ description: typing.Optional[str] = None
116
+ shipDate: typing.Optional[str] = None
117
+ orderTrackingReference: typing.Optional[str] = None
118
+ commercialInvoiceReference: typing.Optional[str] = None
119
+ shipTo: typing.Optional[ReturnToType] = jstruct.JStruct[ReturnToType]
120
+ shipFrom: typing.Optional[ReturnToType] = jstruct.JStruct[ReturnToType]
121
+ returnTo: typing.Optional[ReturnToType] = jstruct.JStruct[ReturnToType]
122
+ billTo: typing.Optional[BillToType] = jstruct.JStruct[BillToType]
123
+ weight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
124
+ dimensions: typing.Optional[DimensionsType] = jstruct.JStruct[DimensionsType]
125
+ additionalServices: typing.Optional[AdditionalServicesType] = jstruct.JStruct[AdditionalServicesType]
126
+ commodities: typing.Optional[typing.List[CommodityType]] = jstruct.JList[CommodityType]
127
+ metadata: typing.Optional[MetadataType] = jstruct.JStruct[MetadataType]
128
+ customs: typing.Optional[CustomsType] = jstruct.JStruct[CustomsType]
@@ -0,0 +1,66 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class WeightType:
8
+ value: typing.Optional[float] = None
9
+ unit: typing.Optional[str] = None
10
+
11
+
12
+ @attr.s(auto_attribs=True)
13
+ class ChargeType:
14
+ name: typing.Optional[str] = None
15
+ amount: typing.Optional[float] = None
16
+ currency: typing.Optional[str] = None
17
+ rate: typing.Optional[float] = None
18
+
19
+
20
+ @attr.s(auto_attribs=True)
21
+ class CommodityType:
22
+ itemNumber: typing.Optional[int] = None
23
+ title: typing.Optional[str] = None
24
+ charges: typing.Optional[typing.List[ChargeType]] = jstruct.JList[ChargeType]
25
+ restrictions: typing.Optional[typing.List[typing.Any]] = None
26
+
27
+
28
+ @attr.s(auto_attribs=True)
29
+ class MessageType:
30
+ code: typing.Optional[int] = None
31
+ level: typing.Optional[str] = None
32
+ timestamp: typing.Optional[str] = None
33
+ message: typing.Optional[str] = None
34
+ details: typing.Optional[typing.List[str]] = None
35
+
36
+
37
+ @attr.s(auto_attribs=True)
38
+ class ServiceType:
39
+ code: typing.Optional[str] = None
40
+ name: typing.Optional[str] = None
41
+ checkoutName: typing.Optional[str] = None
42
+ description: typing.Optional[str] = None
43
+ transit: typing.Optional[int] = None
44
+ dispatchDays: typing.Optional[int] = None
45
+ includeFirstMile: typing.Optional[bool] = None
46
+ isActive: typing.Optional[bool] = None
47
+
48
+
49
+ @attr.s(auto_attribs=True)
50
+ class RateType:
51
+ price: typing.Optional[float] = None
52
+ currency: typing.Optional[str] = None
53
+ transit: typing.Optional[int] = None
54
+ estimatedDelivery: typing.Optional[str] = None
55
+ service: typing.Optional[ServiceType] = jstruct.JStruct[ServiceType]
56
+ charges: typing.Optional[typing.List[ChargeType]] = jstruct.JList[ChargeType]
57
+
58
+
59
+ @attr.s(auto_attribs=True)
60
+ class RateResponseType:
61
+ messages: typing.Optional[typing.List[MessageType]] = jstruct.JList[MessageType]
62
+ rates: typing.Optional[typing.List[RateType]] = jstruct.JList[RateType]
63
+ commodities: typing.Optional[typing.List[CommodityType]] = jstruct.JList[CommodityType]
64
+ scaleWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
65
+ dimWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
66
+ billWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
@@ -0,0 +1,8 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class ShipmentCancelRequestType:
8
+ shipmentId: typing.Optional[str] = None
@@ -0,0 +1,17 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class MetadataType:
8
+ voidedAt: typing.Optional[str] = None
9
+ voidedBy: typing.Optional[str] = None
10
+
11
+
12
+ @attr.s(auto_attribs=True)
13
+ class ShipmentCancelResponseType:
14
+ shipmentId: typing.Optional[str] = None
15
+ trackingNumber: typing.Optional[str] = None
16
+ status: typing.Optional[str] = None
17
+ metadata: typing.Optional[MetadataType] = jstruct.JStruct[MetadataType]
@@ -0,0 +1,137 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class AdditionalServicesType:
8
+ signatureRequired: typing.Optional[bool] = None
9
+ deliveryWarranty: typing.Optional[bool] = None
10
+ deliveryPUDO: typing.Optional[bool] = None
11
+ lowCarbon: typing.Optional[bool] = None
12
+ dutyTaxCalculation: typing.Optional[bool] = None
13
+
14
+
15
+ @attr.s(auto_attribs=True)
16
+ class AddressType:
17
+ line1: typing.Optional[str] = None
18
+ line2: typing.Optional[str] = None
19
+ city: typing.Optional[str] = None
20
+ state: typing.Optional[str] = None
21
+ country: typing.Optional[str] = None
22
+ postcode: typing.Optional[str] = None
23
+
24
+
25
+ @attr.s(auto_attribs=True)
26
+ class BillToType:
27
+ name: typing.Optional[str] = None
28
+ company: typing.Optional[str] = None
29
+ email: typing.Optional[str] = None
30
+ phone: typing.Optional[str] = None
31
+ address: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
32
+ stateTaxId: typing.Optional[str] = None
33
+ countryTaxId: typing.Optional[str] = None
34
+
35
+
36
+ @attr.s(auto_attribs=True)
37
+ class ComplianceType:
38
+ requiresLicensing: typing.Optional[bool] = None
39
+ isHazardous: typing.Optional[bool] = None
40
+ isRestricted: typing.Optional[bool] = None
41
+ regulatoryInfo: typing.Optional[str] = None
42
+
43
+
44
+ @attr.s(auto_attribs=True)
45
+ class WeightType:
46
+ unit: typing.Optional[str] = None
47
+ value: typing.Optional[float] = None
48
+
49
+
50
+ @attr.s(auto_attribs=True)
51
+ class ValueType:
52
+ amount: typing.Optional[int] = None
53
+ currency: typing.Optional[str] = None
54
+
55
+
56
+ @attr.s(auto_attribs=True)
57
+ class CommodityType:
58
+ sku: typing.Optional[str] = None
59
+ hsCode: typing.Optional[int] = None
60
+ title: typing.Optional[str] = None
61
+ description: typing.Optional[str] = None
62
+ category: typing.Optional[str] = None
63
+ value: typing.Optional[ValueType] = jstruct.JStruct[ValueType]
64
+ quantity: typing.Optional[int] = None
65
+ unitWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
66
+ countryOfOrigin: typing.Optional[str] = None
67
+ imageUrl: typing.Optional[str] = None
68
+ productUrl: typing.Optional[str] = None
69
+ compliance: typing.Optional[ComplianceType] = jstruct.JStruct[ComplianceType]
70
+
71
+
72
+ @attr.s(auto_attribs=True)
73
+ class CustomsType:
74
+ EORI: typing.Optional[str] = None
75
+ IOSS: typing.Optional[str] = None
76
+ VAT: typing.Optional[str] = None
77
+ EIN: typing.Optional[str] = None
78
+ VOECNUMBER: typing.Optional[str] = None
79
+ importerGST: typing.Optional[str] = None
80
+ exporterGST: typing.Optional[str] = None
81
+ consigneeGST: typing.Optional[str] = None
82
+ contentType: typing.Optional[str] = None
83
+ invoiceDate: typing.Optional[str] = None
84
+ invoiceNumber: typing.Optional[str] = None
85
+ GPSRContactInfo: typing.Optional[str] = None
86
+ importerOfRecord: typing.Optional[BillToType] = jstruct.JStruct[BillToType]
87
+
88
+
89
+ @attr.s(auto_attribs=True)
90
+ class DimensionsType:
91
+ unit: typing.Optional[str] = None
92
+ width: typing.Optional[int] = None
93
+ height: typing.Optional[int] = None
94
+ length: typing.Optional[int] = None
95
+
96
+
97
+ @attr.s(auto_attribs=True)
98
+ class ElectronicTradeDocumentType:
99
+ type: typing.Optional[str] = None
100
+ format: typing.Optional[str] = None
101
+ base64String: typing.Optional[str] = None
102
+
103
+
104
+ @attr.s(auto_attribs=True)
105
+ class MetadataType:
106
+ fulfillmentOrderId: typing.Optional[str] = None
107
+
108
+
109
+ @attr.s(auto_attribs=True)
110
+ class ReturnToType:
111
+ name: typing.Optional[str] = None
112
+ company: typing.Optional[str] = None
113
+ email: typing.Optional[str] = None
114
+ phone: typing.Optional[str] = None
115
+ address: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
116
+
117
+
118
+ @attr.s(auto_attribs=True)
119
+ class ShipmentRequestType:
120
+ serviceCode: typing.Optional[str] = None
121
+ customerReference: typing.Optional[str] = None
122
+ packageType: typing.Optional[str] = None
123
+ description: typing.Optional[str] = None
124
+ shipDate: typing.Optional[str] = None
125
+ orderTrackingReference: typing.Optional[str] = None
126
+ commercialInvoiceReference: typing.Optional[str] = None
127
+ shipTo: typing.Optional[ReturnToType] = jstruct.JStruct[ReturnToType]
128
+ shipFrom: typing.Optional[ReturnToType] = jstruct.JStruct[ReturnToType]
129
+ returnTo: typing.Optional[ReturnToType] = jstruct.JStruct[ReturnToType]
130
+ billTo: typing.Optional[BillToType] = jstruct.JStruct[BillToType]
131
+ weight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
132
+ dimensions: typing.Optional[DimensionsType] = jstruct.JStruct[DimensionsType]
133
+ additionalServices: typing.Optional[AdditionalServicesType] = jstruct.JStruct[AdditionalServicesType]
134
+ commodities: typing.Optional[typing.List[CommodityType]] = jstruct.JList[CommodityType]
135
+ electronicTradeDocuments: typing.Optional[typing.List[ElectronicTradeDocumentType]] = jstruct.JList[ElectronicTradeDocumentType]
136
+ metadata: typing.Optional[MetadataType] = jstruct.JStruct[MetadataType]
137
+ customs: typing.Optional[CustomsType] = jstruct.JStruct[CustomsType]
@@ -0,0 +1,247 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class MessageType:
8
+ code: typing.Optional[int] = None
9
+ level: typing.Optional[str] = None
10
+ timestamp: typing.Optional[str] = None
11
+ message: typing.Optional[str] = None
12
+ details: typing.Optional[typing.List[str]] = None
13
+
14
+
15
+ @attr.s(auto_attribs=True)
16
+ class WeightType:
17
+ value: typing.Optional[int] = None
18
+ unit: typing.Optional[str] = None
19
+
20
+
21
+ @attr.s(auto_attribs=True)
22
+ class DimensionsType:
23
+ length: typing.Optional[int] = None
24
+ width: typing.Optional[int] = None
25
+ height: typing.Optional[int] = None
26
+ unit: typing.Optional[str] = None
27
+
28
+
29
+ @attr.s(auto_attribs=True)
30
+ class AdditionalServicesType:
31
+ signatureRequired: typing.Optional[bool] = None
32
+ deliveryWarranty: typing.Optional[bool] = None
33
+ deliveryPUDO: typing.Optional[bool] = None
34
+ lowCarbon: typing.Optional[bool] = None
35
+ dutyTaxCalculation: typing.Optional[str] = None
36
+
37
+
38
+ @attr.s(auto_attribs=True)
39
+ class AddressType:
40
+ line1: typing.Optional[str] = None
41
+ city: typing.Optional[str] = None
42
+ postcode: typing.Optional[str] = None
43
+ country: typing.Optional[str] = None
44
+ state: typing.Optional[str] = None
45
+
46
+
47
+ @attr.s(auto_attribs=True)
48
+ class BillToType:
49
+ name: typing.Optional[str] = None
50
+ email: typing.Optional[str] = None
51
+ phone: typing.Optional[str] = None
52
+ company: typing.Optional[str] = None
53
+ stateTaxId: typing.Optional[str] = None
54
+ countryTaxId: typing.Optional[str] = None
55
+ address: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
56
+
57
+
58
+ @attr.s(auto_attribs=True)
59
+ class ComplianceType:
60
+ isControlGood: typing.Optional[bool] = None
61
+ controlType: typing.Optional[str] = None
62
+ regulatoryAgency: typing.Optional[str] = None
63
+ regulatoryProgram: typing.Optional[str] = None
64
+ regulatoryCategoryCode: typing.Optional[str] = None
65
+ EIN: typing.Optional[str] = None
66
+ iossNumber: typing.Optional[str] = None
67
+ importLicenseNumber: typing.Optional[str] = None
68
+ certificationType: typing.Optional[str] = None
69
+ certificationReference: typing.Optional[str] = None
70
+
71
+
72
+ @attr.s(auto_attribs=True)
73
+ class MetadataType:
74
+ pass
75
+
76
+
77
+ @attr.s(auto_attribs=True)
78
+ class ValueType:
79
+ amount: typing.Optional[int] = None
80
+ currency: typing.Optional[str] = None
81
+
82
+
83
+ @attr.s(auto_attribs=True)
84
+ class CommodityType:
85
+ title: typing.Optional[str] = None
86
+ description: typing.Optional[str] = None
87
+ hsCode: typing.Optional[str] = None
88
+ predictedHsCode: typing.Optional[str] = None
89
+ predictedTaxCode: typing.Optional[str] = None
90
+ sku: typing.Optional[str] = None
91
+ quantity: typing.Optional[int] = None
92
+ value: typing.Optional[ValueType] = jstruct.JStruct[ValueType]
93
+ unitWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
94
+ countryOfOrigin: typing.Optional[str] = None
95
+ category: typing.Optional[str] = None
96
+ imageUrl: typing.Optional[str] = None
97
+ productUrl: typing.Optional[str] = None
98
+ productId: typing.Optional[str] = None
99
+ variantId: typing.Optional[str] = None
100
+ compliance: typing.Optional[ComplianceType] = jstruct.JStruct[ComplianceType]
101
+ dutiesAndTaxes: typing.Optional[typing.List[str]] = None
102
+ metadata: typing.Optional[MetadataType] = jstruct.JStruct[MetadataType]
103
+
104
+
105
+ @attr.s(auto_attribs=True)
106
+ class CustomsType:
107
+ contentType: typing.Optional[str] = None
108
+ incoterms: typing.Optional[str] = None
109
+ invoiceNumber: typing.Optional[str] = None
110
+ invoiceDate: typing.Optional[str] = None
111
+ orderId: typing.Optional[str] = None
112
+ orderTotalValue: typing.Optional[ValueType] = jstruct.JStruct[ValueType]
113
+ certified: typing.Optional[bool] = None
114
+ signedBy: typing.Optional[str] = None
115
+ EORI: typing.Optional[str] = None
116
+ IOSS: typing.Optional[str] = None
117
+ VAT: typing.Optional[str] = None
118
+ EIN: typing.Optional[str] = None
119
+ VOECNUMBER: typing.Optional[str] = None
120
+ SWISSVAT: typing.Optional[str] = None
121
+ KARVAT: typing.Optional[str] = None
122
+ CAGST: typing.Optional[str] = None
123
+ AUGST: typing.Optional[str] = None
124
+ NZGST: typing.Optional[str] = None
125
+ JPConsumptionTax: typing.Optional[str] = None
126
+ GPSRContactInfo: typing.Optional[str] = None
127
+ importerOfRecord: typing.Optional[BillToType] = jstruct.JStruct[BillToType]
128
+
129
+
130
+ @attr.s(auto_attribs=True)
131
+ class DocumentType:
132
+ type: typing.Optional[str] = None
133
+ format: typing.Optional[str] = None
134
+ url: typing.Optional[str] = None
135
+ base64String: typing.Optional[str] = None
136
+
137
+
138
+ @attr.s(auto_attribs=True)
139
+ class EventType:
140
+ timestamp: typing.Optional[str] = None
141
+ code: typing.Optional[str] = None
142
+ description: typing.Optional[str] = None
143
+ location: typing.Optional[str] = None
144
+
145
+
146
+ @attr.s(auto_attribs=True)
147
+ class StMileType:
148
+ carrier: typing.Optional[str] = None
149
+ trackingNumber: typing.Optional[str] = None
150
+ trackingUrl: typing.Optional[str] = None
151
+
152
+
153
+ @attr.s(auto_attribs=True)
154
+ class ChargeType:
155
+ name: typing.Optional[str] = None
156
+ amount: typing.Optional[float] = None
157
+ currency: typing.Optional[str] = None
158
+
159
+
160
+ @attr.s(auto_attribs=True)
161
+ class ServiceType:
162
+ name: typing.Optional[str] = None
163
+ checkoutName: typing.Optional[str] = None
164
+ code: typing.Optional[str] = None
165
+ description: typing.Optional[str] = None
166
+ transit: typing.Optional[int] = None
167
+ dispatchDays: typing.Optional[int] = None
168
+ includeFirstMile: typing.Optional[bool] = None
169
+ isActive: typing.Optional[bool] = None
170
+ id: typing.Optional[str] = None
171
+
172
+
173
+ @attr.s(auto_attribs=True)
174
+ class RateType:
175
+ price: typing.Optional[float] = None
176
+ currency: typing.Optional[str] = None
177
+ transit: typing.Optional[int] = None
178
+ estimatedDelivery: typing.Optional[str] = None
179
+ service: typing.Optional[ServiceType] = jstruct.JStruct[ServiceType]
180
+ charges: typing.Optional[typing.List[ChargeType]] = jstruct.JList[ChargeType]
181
+
182
+
183
+ @attr.s(auto_attribs=True)
184
+ class ReturnToType:
185
+ name: typing.Optional[str] = None
186
+ email: typing.Optional[str] = None
187
+ phone: typing.Optional[str] = None
188
+ company: typing.Optional[str] = None
189
+ address: typing.Optional[AddressType] = jstruct.JStruct[AddressType]
190
+
191
+
192
+ @attr.s(auto_attribs=True)
193
+ class SurchargeType:
194
+ id: typing.Optional[str] = None
195
+ type: typing.Optional[str] = None
196
+ name: typing.Optional[str] = None
197
+ amount: typing.Optional[int] = None
198
+ currency: typing.Optional[str] = None
199
+ metadata: typing.Optional[MetadataType] = jstruct.JStruct[MetadataType]
200
+ shipmentId: typing.Optional[str] = None
201
+ updatedAt: typing.Optional[str] = None
202
+ createdAt: typing.Optional[str] = None
203
+
204
+
205
+ @attr.s(auto_attribs=True)
206
+ class ShipmentType:
207
+ shipmentId: typing.Optional[str] = None
208
+ trackingNumber: typing.Optional[str] = None
209
+ status: typing.Optional[str] = None
210
+ shipDate: typing.Optional[str] = None
211
+ estimatedDelivery: typing.Optional[str] = None
212
+ documents: typing.Optional[typing.List[DocumentType]] = jstruct.JList[DocumentType]
213
+ shipTo: typing.Optional[ReturnToType] = jstruct.JStruct[ReturnToType]
214
+ shipFrom: typing.Optional[ReturnToType] = jstruct.JStruct[ReturnToType]
215
+ returnTo: typing.Optional[ReturnToType] = jstruct.JStruct[ReturnToType]
216
+ billTo: typing.Optional[BillToType] = jstruct.JStruct[BillToType]
217
+ weight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
218
+ dimensions: typing.Optional[DimensionsType] = jstruct.JStruct[DimensionsType]
219
+ packageType: typing.Optional[str] = None
220
+ description: typing.Optional[str] = None
221
+ commodities: typing.Optional[typing.List[CommodityType]] = jstruct.JList[CommodityType]
222
+ customs: typing.Optional[CustomsType] = jstruct.JStruct[CustomsType]
223
+ additionalServices: typing.Optional[AdditionalServicesType] = jstruct.JStruct[AdditionalServicesType]
224
+ rate: typing.Optional[RateType] = jstruct.JStruct[RateType]
225
+ scaleWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
226
+ dimWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
227
+ billWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
228
+ actualBillWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
229
+ actualScaleWeight: typing.Optional[WeightType] = jstruct.JStruct[WeightType]
230
+ actualDimensions: typing.Optional[DimensionsType] = jstruct.JStruct[DimensionsType]
231
+ customerReference: typing.Optional[str] = None
232
+ commercialInvoiceReference: typing.Optional[str] = None
233
+ metadata: typing.Optional[MetadataType] = jstruct.JStruct[MetadataType]
234
+ firstMile: typing.Optional[StMileType] = jstruct.JStruct[StMileType]
235
+ lastMile: typing.Optional[StMileType] = jstruct.JStruct[StMileType]
236
+ dropOffLocation: typing.Optional[BillToType] = jstruct.JStruct[BillToType]
237
+ events: typing.Optional[typing.List[EventType]] = jstruct.JList[EventType]
238
+ surcharges: typing.Optional[typing.List[SurchargeType]] = jstruct.JList[SurchargeType]
239
+ trackingURL: typing.Optional[str] = None
240
+ createdAt: typing.Optional[str] = None
241
+ updatedAt: typing.Optional[str] = None
242
+
243
+
244
+ @attr.s(auto_attribs=True)
245
+ class ShipmentResponseType:
246
+ messages: typing.Optional[typing.List[MessageType]] = jstruct.JList[MessageType]
247
+ shipment: typing.Optional[ShipmentType] = jstruct.JStruct[ShipmentType]
@@ -0,0 +1,8 @@
1
+ import attr
2
+ import jstruct
3
+ import typing
4
+
5
+
6
+ @attr.s(auto_attribs=True)
7
+ class TrackingRequestType:
8
+ trackingNumber: typing.Optional[str] = None